├── .editorconfig ├── .eslintrc ├── .gitattributes ├── .github └── workflows │ └── build.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── bin └── csso ├── lib └── index.js ├── package-lock.json ├── package.json └── test ├── basic.js └── fixture ├── 1-no-restructure.min.css ├── 1-source-map-file.min.css ├── 1-source-map-file.min.css.map ├── 1-source-map-filepath.min.css ├── 1.css ├── 1.min.css ├── 1.min.css.map ├── bootstrap-grid-source-map-filepath.css ├── bootstrap-grid-source-map-filepath.css.map ├── bootstrap-grid-source-map-filepath.min.css ├── bootstrap-grid-source-map-filepath.min.css.map ├── bootstrap-grid.css ├── bootstrap-grid.css.map ├── bootstrap-grid.min.css ├── bootstrap-grid.min.css.map ├── usage.css ├── usage.css.json ├── usage.min.css └── write-hack └── .gitignore /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 4 8 | end_of_line = lf 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true, 4 | "mocha": true, 5 | "es6": true 6 | }, 7 | "parserOptions": { 8 | "ecmaVersion": 2020, 9 | "sourceType": "module" 10 | }, 11 | "rules": { 12 | "no-duplicate-case": 2, 13 | "no-undef": 2, 14 | "no-unused-vars": [ 15 | 2, 16 | { 17 | "vars": "all", 18 | "args": "after-used" 19 | } 20 | ], 21 | "no-empty": [ 22 | 2, 23 | { 24 | "allowEmptyCatch": true 25 | } 26 | ], 27 | "no-implicit-coercion": [ 28 | 2, 29 | { 30 | "boolean": true, 31 | "string": true, 32 | "number": true 33 | } 34 | ], 35 | "no-with": 2, 36 | "brace-style": 2, 37 | "no-mixed-spaces-and-tabs": 2, 38 | "no-multiple-empty-lines": 2, 39 | "no-multi-str": 2, 40 | "dot-location": [ 41 | 2, 42 | "property" 43 | ], 44 | "operator-linebreak": [ 45 | 2, 46 | "after", 47 | { 48 | "overrides": { 49 | "?": "before", 50 | ":": "before" 51 | } 52 | } 53 | ], 54 | "key-spacing": [ 55 | 2, 56 | { 57 | "beforeColon": false, 58 | "afterColon": true 59 | } 60 | ], 61 | "space-unary-ops": [ 62 | 2, 63 | { 64 | "words": false, 65 | "nonwords": false 66 | } 67 | ], 68 | "no-spaced-func": 2, 69 | "space-before-function-paren": [ 70 | 2, 71 | { 72 | "anonymous": "ignore", 73 | "named": "never" 74 | } 75 | ], 76 | "array-bracket-spacing": [ 77 | 2, 78 | "never" 79 | ], 80 | "space-in-parens": [ 81 | 2, 82 | "never" 83 | ], 84 | "comma-dangle": [ 85 | 2, 86 | "never" 87 | ], 88 | "no-trailing-spaces": 2, 89 | "yoda": [ 90 | 2, 91 | "never" 92 | ], 93 | "camelcase": [ 94 | 2, 95 | { 96 | "properties": "never" 97 | } 98 | ], 99 | "comma-style": [ 100 | 2, 101 | "last" 102 | ], 103 | "curly": [ 104 | 2, 105 | "all" 106 | ], 107 | "dot-notation": 2, 108 | "eol-last": 2, 109 | "one-var": [ 110 | 2, 111 | "never" 112 | ], 113 | "wrap-iife": 2, 114 | "space-infix-ops": 2, 115 | "keyword-spacing": [ 116 | 2, 117 | { 118 | "overrides": { 119 | "else": { 120 | "before": true 121 | }, 122 | "while": { 123 | "before": true 124 | }, 125 | "catch": { 126 | "before": true 127 | }, 128 | "finally": { 129 | "before": true 130 | } 131 | } 132 | } 133 | ], 134 | "spaced-comment": [ 135 | 2, 136 | "always" 137 | ], 138 | "space-before-blocks": [ 139 | 2, 140 | "always" 141 | ], 142 | "semi": [ 143 | 2, 144 | "always" 145 | ], 146 | "indent": [ 147 | 2, 148 | 4, 149 | { 150 | "SwitchCase": 1 151 | } 152 | ], 153 | "linebreak-style": [ 154 | 2, 155 | "unix" 156 | ], 157 | "quotes": [ 158 | 2, 159 | "single", 160 | { 161 | "avoidEscape": true 162 | } 163 | ] 164 | } 165 | } 166 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Enforce Unix newlines 2 | bin/* text eol=lf 3 | *.css text eol=lf 4 | *.map text eol=lf 5 | *.js text eol=lf 6 | *.json text eol=lf 7 | *.md text eol=lf 8 | *.yml text eol=lf 9 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | 3 | on: 4 | push: 5 | pull_request: 6 | 7 | env: 8 | PRIMARY_NODEJS_VERSION: 18 9 | REPORTER: 'min' 10 | 11 | jobs: 12 | lint: 13 | name: Lint 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v2 17 | - name: Setup node ${{ env.PRIMARY_NODEJS_VERSION }} 18 | uses: actions/setup-node@v2 19 | with: 20 | node-version: ${{ env.PRIMARY_NODEJS_VERSION }} 21 | cache: 'npm' 22 | - run: npm ci 23 | - run: npm run lint 24 | 25 | unit-tests: 26 | name: Unit tests 27 | runs-on: ${{ matrix.os }} 28 | 29 | strategy: 30 | matrix: 31 | os: [ubuntu-latest, macOS-latest, windows-latest] 32 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 33 | node_version: 34 | - 12.20.0 35 | - 14.13.0 36 | - 16 37 | - 18 38 | 39 | steps: 40 | - uses: actions/checkout@v2 41 | - name: Setup node ${{ matrix.node_version }} 42 | uses: actions/setup-node@v2 43 | with: 44 | node-version: ${{ matrix.node_version }} 45 | cache: 'npm' 46 | - run: npm ci 47 | - run: npm run test 48 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | /coverage/ 3 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 4.0.2 (February 28, 2023) 2 | 3 | - Fixed help output (#30) 4 | - Fixed engine field to `>=12.20` 5 | 6 | ## 4.0.1 (July 14, 2022) 7 | 8 | - Fixed missed `lib` folder in the package (#27) 9 | 10 | ## 4.0.0 (July 14, 2022) 11 | 12 | - Stop support Node.js prior `12.20` 13 | - Bumped `CSSO` to `5.0.4` 14 | - Bumped all the dependencies 15 | 16 | ## 3.0.0 (October 22, 2019) 17 | 18 | - Stop support Node.js prior `8.0` 19 | - Updated dependencies and fixed known security issues (#15) 20 | - Fixed `--usage` option that didn't actually work 21 | - Fixed source map generation inconsistency across Node.js versions 22 | 23 | ## 2.0.2 (December 28, 2018) 24 | 25 | - Fixed one more issue with paths in source maps on Windows platform 26 | 27 | ## 2.0.1 (December 26, 2018) 28 | 29 | - Fixed source map paths when perform on Windows platform (path should be in unix format) 30 | 31 | ## 2.0.0 (December 11, 2018) 32 | 33 | - Use relative paths to files in generated source map (#7) 34 | - Removed setting output file with no option label, i.e. `--output` is required 35 | - Renamed options 36 | - `--restructure-off` → `--no-restructure` 37 | - `--map` → `--source-map` 38 | - `--input-map` → `--input-source-map` 39 | 40 | ## 1.1.0 (September 10, 2017) 41 | 42 | - Bumped `CSSO` to `3.2.0` 43 | - Added `--watch` option to run CLI in watch mode (@rijkvanzanten, #4) 44 | - Added `--declaration-list` option to take input as a declaration list (@amarcu5, #8) 45 | - Added `--force-media-merge` option to force `@media` rules merge (see [forceMediaMerge](https://github.com/css/csso#compressast-options) option for details) (@lahmatiy) 46 | 47 | ## 1.0.0 (March 13, 2017) 48 | 49 | - Initial release as standalone package 50 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2017-2022 by Roman Dvornov 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![NPM version](https://img.shields.io/npm/v/csso-cli.svg)](https://www.npmjs.com/package/csso-cli) 2 | [![Build Status](https://travis-ci.org/css/csso-cli.svg?branch=master)](https://travis-ci.org/css/csso-cli) 3 | [![Twitter](https://img.shields.io/badge/Twitter-@cssoptimizer-blue.svg)](https://twitter.com/cssoptimizer) 4 | 5 | Command line interface for [CSSO](https://github.com/css/csso). 6 | 7 | 8 | 9 | - [Install](#install) 10 | - [Usage](#usage) 11 | - [Source maps](#source-maps) 12 | - [Usage data](#usage-data) 13 | - [Debugging](#debugging) 14 | - [Related projects](#related-projects) 15 | - [License](#license) 16 | 17 | 18 | 19 | ## Install 20 | 21 | ``` 22 | npm install -g csso-cli 23 | ``` 24 | 25 | ## Usage 26 | 27 | ``` 28 | Usage: 29 | 30 | csso [input] [options] 31 | 32 | Options: 33 | 34 | --comments Comments to keep: exclamation (default), first-exclamation or none 35 | --debug [level] Output intermediate state of CSS during a compression 36 | -d, --declaration-list Treat input as a declaration list 37 | --force-media-merge Enable unsafe merge of @media rules 38 | -h, --help Output usage information 39 | -i, --input Input file 40 | --input-source-map Input source map: none, auto (default) or 41 | -o, --output Output file (result outputs to stdout if not set) 42 | --no-restructure Disable structural optimisations 43 | -s, --source-map Generate source map: none (default), inline, file or 44 | --stat Output statistics in stderr 45 | -u, --usage Usage data file 46 | -v, --version Output version 47 | --watch Watch source file for changes 48 | ``` 49 | 50 | Some examples: 51 | 52 | ``` 53 | > csso in.css 54 | ...output result in stdout... 55 | 56 | > csso in.css --output out.css 57 | 58 | > echo '.test { color: #ff0000; }' | csso 59 | .test{color:red} 60 | 61 | > cat source1.css source2.css | csso | gzip -9 -c > production.css.gz 62 | ``` 63 | 64 | ### Source maps 65 | 66 | Source map doesn't generate by default. To generate map use `--source-map` CLI option, that can be: 67 | 68 | - `none` (default) – don't generate source map 69 | - `inline` – add source map into result CSS (via `/*# sourceMappingURL=application/json;base64,... */`) 70 | - `file` – write source map into file with same name as output file, but with `.map` extension (in this case `--output` option is required) 71 | - any other values treat as filename for generated source map 72 | 73 | Examples: 74 | 75 | ``` 76 | > csso my.css --source-map inline 77 | > csso my.css --output my.min.css --source-map file 78 | > csso my.css --output my.min.css --source-map maps/my.min.map 79 | ``` 80 | 81 | Use `--input-source-map` option to specify input source map if needed. Possible values for option: 82 | 83 | - `auto` (default) - attempt to fetch input source map by follow steps: 84 | - try to fetch inline map from input 85 | - try to fetch source map filename from input and read its content 86 | - (when `--input` is specified) check file with same name as input file but with `.map` extension exists and read its content 87 | - `none` - don't use input source map; actually it's using to disable `auto`-fetching 88 | - any other values treat as filename for input source map 89 | 90 | Generally you shouldn't care about the input source map since defaults behaviour (`auto`) covers most use cases. 91 | 92 | > NOTE: Input source map is using only if output source map is generating. 93 | 94 | ### Usage data 95 | 96 | `CSSO` can use data about how `CSS` is using for better compression. File with this data (`JSON` format) can be set using `--usage` option. Read more about [Usage data](https://github.com/css/csso#usage-data) in [CSSO](https://github.com/css/csso) repository. 97 | 98 | ### Debugging 99 | 100 | All debug information outputs to `stderr`. 101 | 102 | To get brief info about compression use `--stat` option. 103 | 104 | ``` 105 | > echo '.test { color: #ff0000 }' | csso --stat >/dev/null 106 | Source: 107 | Original: 25 bytes 108 | Compressed: 16 bytes (64.00%) 109 | Saving: 9 bytes (36.00%) 110 | Time: 7 ms 111 | Memory: 0.204 MB 112 | ``` 113 | 114 | To get details about compression steps use `--debug` option. 115 | 116 | ``` 117 | > echo '.test { color: green; color: #ff0000 } .foo { color: red }' | csso --debug 118 | ## parsing done in 4 ms 119 | 120 | Compress block #1 121 | [0.000s] init 122 | [0.001s] clean 123 | [0.003s] replace 124 | [0.001s] prepare 125 | [0.001s] mergeAtrule 126 | [0.000s] initialMergeRuleset 127 | [0.000s] disjoinRuleset 128 | [0.000s] restructShorthand 129 | [0.001s] restructBlock 130 | [0.000s] mergeRuleset 131 | [0.000s] restructRuleset 132 | ## compress done in 9 ms 133 | 134 | ## generate done in 0 ms 135 | 136 | .foo,.test{color:red} 137 | ``` 138 | 139 | More details are providing when `--debug` option has a number greater than `1`: 140 | 141 | ``` 142 | > echo '.test { color: green; color: #ff0000 } .foo { color: red }' | csso --debug 2 143 | ## parsing done in 4 ms 144 | 145 | Compress block #1 146 | [0.001s] init 147 | .test{color:green;color:#ff0000}.foo{color:red} 148 | 149 | [0.001s] clean 150 | .test{color:green;color:#ff0000}.foo{color:red} 151 | 152 | [0.004s] replace 153 | .test{color:green;color:red}.foo{color:red} 154 | 155 | ... 156 | 157 | [0.000s] mergeRuleset 158 | .foo,.test{color:red} 159 | 160 | [0.000s] restructRuleset 161 | .foo,.test{color:red} 162 | 163 | ## compress done in 12 ms 164 | 165 | ## generate done in 0 ms 166 | 167 | .foo,.test{color:red} 168 | ``` 169 | 170 | Using `--debug` option adds stack trace to CSS parse error output. That can help to find out problem in parser. 171 | 172 | ``` 173 | > echo '.a { color }' | csso --debug 174 | 175 | Parse error : Colon is expected 176 | 1 |.a { color } 177 | ------------------^ 178 | 2 | 179 | 180 | /usr/local/lib/node_modules/csso/lib/cli.js:243 181 | throw e; 182 | ^ 183 | 184 | Error: Colon is expected 185 | at parseError (/usr/local/lib/node_modules/csso/lib/parser/index.js:54:17) 186 | at eat (/usr/local/lib/node_modules/csso/lib/parser/index.js:88:5) 187 | at getDeclaration (/usr/local/lib/node_modules/csso/lib/parser/index.js:394:5) 188 | at getBlock (/usr/local/lib/node_modules/csso/lib/parser/index.js:380:27) 189 | ... 190 | ``` 191 | 192 | ## Related projects 193 | 194 | - [CSSO](https://github.com/css/csso) – CSS minifier itself 195 | - Gulp: [gulp-csso](https://github.com/ben-eb/gulp-csso) 196 | - Grunt: [grunt-csso](https://github.com/t32k/grunt-csso) 197 | - Broccoli: [broccoli-csso](https://github.com/sindresorhus/broccoli-csso) 198 | - PostCSS: [postcss-csso](https://github.com/lahmatiy/postcss-csso) 199 | - Webpack: [csso-loader](https://github.com/sandark7/csso-loader) 200 | 201 | ## License 202 | 203 | MIT 204 | -------------------------------------------------------------------------------- /bin/csso: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const cli = require('../lib/index.js'); 4 | 5 | try { 6 | cli.run(); 7 | } catch (e) { 8 | // output user frendly message if cli error 9 | if (cli.isCliError(e)) { 10 | console.error(e.message || e); 11 | process.exit(2); 12 | } 13 | 14 | // otherwise re-throw exception 15 | throw e; 16 | } 17 | -------------------------------------------------------------------------------- /lib/index.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | const cli = require('clap'); 4 | const csso = require('csso'); 5 | const SourceMapConsumer = require('source-map-js').SourceMapConsumer; 6 | 7 | function unixPathname(pathname) { 8 | return pathname.replace(/\\/g, '/'); 9 | } 10 | 11 | function readFromStream(stream, minify) { 12 | const buffer = []; 13 | 14 | stream 15 | .setEncoding('utf8') 16 | .on('data', (chunk) => buffer.push(chunk)) 17 | .on('end', () => minify(buffer.join(''))); 18 | } 19 | 20 | function showStat(filename, source, result, inputMap, map, time, mem) { 21 | function fmt(size) { 22 | return String(size).split('').reverse().reduce((size, digit, idx) => { 23 | if (idx && idx % 3 === 0) { 24 | size = ' ' + size; 25 | } 26 | 27 | return digit + size; 28 | }, ''); 29 | } 30 | 31 | map = map || 0; 32 | result -= map; 33 | 34 | console.error('Source: ', filename === '' ? filename : path.relative(process.cwd(), filename)); 35 | if (inputMap) { 36 | console.error('Map source:', inputMap); 37 | } 38 | console.error('Original: ', fmt(source), 'bytes'); 39 | console.error('Compressed:', fmt(result), 'bytes', '(' + (100 * result / source).toFixed(2) + '%)'); 40 | console.error('Saving: ', fmt(source - result), 'bytes', '(' + (100 * (source - result) / source).toFixed(2) + '%)'); 41 | if (map) { 42 | console.error('Source map:', fmt(map), 'bytes', '(' + (100 * map / (result + map)).toFixed(2) + '% of total)'); 43 | console.error('Total: ', fmt(map + result), 'bytes'); 44 | } 45 | console.error('Time: ', time, 'ms'); 46 | console.error('Memory: ', (mem / (1024 * 1024)).toFixed(3), 'MB'); 47 | } 48 | 49 | function debugLevel(level) { 50 | // level is undefined when no param -> 1 51 | return isNaN(level) ? 1 : Math.max(Number(level), 0); 52 | } 53 | 54 | function resolveSourceMap(source, inputMap, outputMap, inputFile, outputFile) { 55 | let inputMapContent = null; 56 | let inputMapFile = null; 57 | let outputMapFile = null; 58 | 59 | switch (outputMap) { 60 | case 'none': 61 | // don't generate source map 62 | outputMap = false; 63 | inputMap = 'none'; 64 | break; 65 | 66 | case 'inline': 67 | // nothing to do 68 | break; 69 | 70 | case 'file': 71 | if (!outputFile) { 72 | console.error('Output filename should be specified when `--source-map file` is used'); 73 | process.exit(2); 74 | } 75 | 76 | outputMapFile = outputFile + '.map'; 77 | break; 78 | 79 | default: 80 | // process filename 81 | if (outputMap) { 82 | // check path is reachable 83 | if (!fs.existsSync(path.dirname(outputMap))) { 84 | console.error('Directory for map file should exists:', path.dirname(path.resolve(outputMap))); 85 | process.exit(2); 86 | } 87 | 88 | // resolve to absolute path 89 | outputMapFile = path.resolve(process.cwd(), outputMap); 90 | } 91 | } 92 | 93 | switch (inputMap) { 94 | case 'none': 95 | // nothing to do 96 | break; 97 | 98 | case 'auto': 99 | if (outputMap) { 100 | // try fetch source map from source 101 | let inputMapComment = source.match(/\/\*# sourceMappingURL=(\S+)\s*\*\/\s*$/); 102 | 103 | if (inputFile === '') { 104 | inputFile = false; 105 | } 106 | 107 | if (inputMapComment) { 108 | // if comment found – value is filename or base64-encoded source map 109 | inputMapComment = inputMapComment[1]; 110 | 111 | if (inputMapComment.substr(0, 5) === 'data:') { 112 | // decode source map content from comment 113 | inputMapContent = Buffer.from(inputMapComment.substr(inputMapComment.indexOf('base64,') + 7), 'base64').toString(); 114 | } else { 115 | // value is filename – resolve it as absolute path 116 | if (inputFile) { 117 | inputMapFile = path.resolve(path.dirname(inputFile), inputMapComment); 118 | } 119 | } 120 | } else { 121 | // comment doesn't found - look up file with `.map` extension nearby input file 122 | if (inputFile && fs.existsSync(inputFile + '.map')) { 123 | inputMapFile = inputFile + '.map'; 124 | } 125 | } 126 | 127 | } 128 | break; 129 | 130 | default: 131 | if (inputMap) { 132 | inputMapFile = inputMap; 133 | } 134 | } 135 | 136 | // source map placed in external file 137 | if (inputMapFile) { 138 | inputMapContent = fs.readFileSync(inputMapFile, 'utf8'); 139 | } 140 | 141 | return { 142 | input: inputMapContent, 143 | inputFile: inputMapFile || (inputMapContent ? '' : false), 144 | output: outputMap, 145 | outputFile: outputMapFile 146 | }; 147 | } 148 | 149 | function processCommentsOption(value) { 150 | switch (value) { 151 | case 'exclamation': 152 | case 'first-exclamation': 153 | case 'none': 154 | return value; 155 | } 156 | 157 | console.error('Wrong value for `comments` option: %s', value); 158 | process.exit(2); 159 | } 160 | 161 | function processOptions(options, args) { 162 | let inputFile = options.input || args[0]; 163 | let outputFile = options.output; 164 | const usageFile = options.usage; 165 | let usageData = false; 166 | const sourceMap = options.sourceMap; 167 | const inputSourceMap = options.inputSourceMap; 168 | const declarationList = options.declarationList; 169 | const restructure = Boolean(options.restructure); 170 | const forceMediaMerge = Boolean(options.forceMediaMerge); 171 | const comments = processCommentsOption(options.comments); 172 | const debug = options.debug; 173 | const statistics = options.stat; 174 | const watch = options.watch; 175 | 176 | if (process.stdin.isTTY && !inputFile && !outputFile) { 177 | return null; 178 | } 179 | 180 | if (!inputFile) { 181 | inputFile = ''; 182 | } else { 183 | inputFile = path.resolve(process.cwd(), inputFile); 184 | } 185 | 186 | if (outputFile) { 187 | outputFile = path.resolve(process.cwd(), outputFile); 188 | } 189 | 190 | if (usageFile) { 191 | if (!fs.existsSync(usageFile)) { 192 | console.error('Usage data file doesn\'t found (%s)', usageFile); 193 | process.exit(2); 194 | } 195 | 196 | usageData = fs.readFileSync(usageFile, 'utf-8'); 197 | 198 | try { 199 | usageData = JSON.parse(usageData); 200 | } catch (e) { 201 | console.error('Usage data parse error (%s)', usageFile); 202 | process.exit(2); 203 | } 204 | } 205 | 206 | return { 207 | inputFile, 208 | outputFile, 209 | usageData, 210 | sourceMap, 211 | inputSourceMap, 212 | declarationList, 213 | restructure, 214 | forceMediaMerge, 215 | comments, 216 | statistics, 217 | debug, 218 | watch 219 | }; 220 | } 221 | 222 | function minifyStream(options) { 223 | const inputStream = options.inputFile !== '' 224 | ? fs.createReadStream(options.inputFile) 225 | : process.stdin; 226 | 227 | readFromStream(inputStream, (source) => { 228 | const startTime = Date.now(); 229 | const mem = process.memoryUsage().heapUsed; 230 | const relInputFilename = path.relative(process.cwd(), options.inputFile); 231 | const sourceMap = resolveSourceMap( 232 | source, 233 | options.inputSourceMap, 234 | options.sourceMap, 235 | options.inputFile, 236 | options.outputFile 237 | ); 238 | let sourceMapAnnotation = ''; 239 | let result; 240 | 241 | // main action 242 | const minifyFunc = options.declarationList ? csso.minifyBlock : csso.minify; 243 | result = minifyFunc(source, { 244 | filename: unixPathname(relInputFilename), 245 | sourceMap: Boolean(sourceMap.output), 246 | usage: options.usageData, 247 | restructure: options.restructure, 248 | forceMediaMerge: options.forceMediaMerge, 249 | comments: options.comments, 250 | debug: options.debug 251 | }); 252 | 253 | // for backward capability minify returns a string 254 | if (typeof result === 'string') { 255 | result = { 256 | css: result, 257 | map: null 258 | }; 259 | } 260 | 261 | if (sourceMap.output && result.map) { 262 | // apply input map 263 | if (sourceMap.input) { 264 | result.map.applySourceMap( 265 | new SourceMapConsumer(sourceMap.input), 266 | unixPathname(relInputFilename) 267 | ); 268 | } 269 | 270 | // add source map to result 271 | if (sourceMap.outputFile) { 272 | // write source map to file 273 | fs.writeFileSync(sourceMap.outputFile, result.map.toString(), 'utf-8'); 274 | sourceMapAnnotation = '\n' + 275 | '/*# sourceMappingURL=' + 276 | unixPathname(path.relative(options.outputFile ? path.dirname(options.outputFile) : process.cwd(), sourceMap.outputFile)) + 277 | ' */'; 278 | } else { 279 | // inline source map 280 | sourceMapAnnotation = '\n' + 281 | '/*# sourceMappingURL=data:application/json;base64,' + 282 | Buffer.from(result.map.toString()).toString('base64') + 283 | ' */'; 284 | } 285 | 286 | result.css += sourceMapAnnotation; 287 | } 288 | 289 | // output result 290 | if (options.outputFile) { 291 | fs.writeFileSync(options.outputFile, result.css, 'utf-8'); 292 | } else { 293 | console.log(result.css); 294 | } 295 | 296 | // output statistics 297 | if (options.statistics) { 298 | showStat( 299 | relInputFilename, 300 | source.length, 301 | result.css.length, 302 | sourceMap.inputFile, 303 | sourceMapAnnotation.length, 304 | Date.now() - startTime, 305 | process.memoryUsage().heapUsed - mem 306 | ); 307 | } 308 | }); 309 | } 310 | 311 | const command = cli.command('csso [input]') 312 | .version(require('csso/package.json').version) 313 | .option('-i, --input ', 'Input file') 314 | .option('-o, --output ', 'Output file (result outputs to stdout if not set)') 315 | .option('-s, --source-map ', 'Generate source map: none (default), inline, file or ', 'none') 316 | .option('-u, --usage ', 'Usage data file') 317 | .option('--input-source-map ', 'Input source map: none, auto (default) or ', 'auto') 318 | .option('-d, --declaration-list', 'Treat input as a declaration list') 319 | .option('--no-restructure', 'Disable structural optimisations') 320 | .option('--force-media-merge', 'Enable unsafe merge of @media rules') 321 | .option('--comments ', 'Comments to keep: exclamation (default), first-exclamation or none', 'exclamation') 322 | .option('--stat', 'Output statistics in stderr') 323 | .option('--debug [level]', 'Output intermediate state of CSS during a compression', debugLevel, 0) 324 | .option('--watch', 'Watch source file for changes') 325 | .action(({ options, args }) => { 326 | options = processOptions(options, args); 327 | 328 | if (options === null) { 329 | this.outputHelp(); 330 | return; 331 | } 332 | 333 | minifyStream(options); 334 | 335 | // enable watch mode only when input is a file 336 | if (options.watch && options.inputFile !== '') { 337 | // NOTE: require chokidar here to keep down start up time when --watch doesn't use 338 | // (yep, chokidar adds a penalty ~0.2-0.3s on its init) 339 | require('chokidar') 340 | .watch(options.inputFile) 341 | .on('change', () => minifyStream(options)); 342 | } 343 | }); 344 | 345 | module.exports = { 346 | run: (...args) =>command.run(...args), 347 | isCliError: (err) => err instanceof cli.Error 348 | }; 349 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "csso-cli", 3 | "version": "4.0.2", 4 | "description": "Command line interface for CSSO", 5 | "repository": "css/csso-cli", 6 | "license": "MIT", 7 | "author": "Roman Dvornov (https://github.com/lahmatiy)", 8 | "keywords": [ 9 | "cli", 10 | "css", 11 | "minifier", 12 | "minify", 13 | "compress", 14 | "optimisation" 15 | ], 16 | "bin": { 17 | "csso": "./bin/csso" 18 | }, 19 | "main": "./lib/index.js", 20 | "engines": { 21 | "node": ">=12.20.0" 22 | }, 23 | "scripts": { 24 | "test": "mocha --reporter dot", 25 | "lint": "eslint bin/* test lib", 26 | "lint-and-test": "npm run lint && npm test", 27 | "travis": "npm run lint-and-test" 28 | }, 29 | "dependencies": { 30 | "chokidar": "^3.5.3", 31 | "clap": "^3.1.1", 32 | "csso": "^5.0.4", 33 | "source-map-js": "^1.0.2" 34 | }, 35 | "devDependencies": { 36 | "eslint": "^8.19.0", 37 | "mocha": "^9.2.2" 38 | }, 39 | "files": [ 40 | "bin", 41 | "lib" 42 | ] 43 | } 44 | -------------------------------------------------------------------------------- /test/basic.js: -------------------------------------------------------------------------------- 1 | const assert = require('assert'); 2 | const path = require('path'); 3 | const fs = require('fs'); 4 | const { spawn } = require('child_process'); 5 | 6 | function fixturePath(filepath) { 7 | return path.join(__dirname, 'fixture', filepath); 8 | } 9 | 10 | function fixtureContent(filepath) { 11 | return fs.readFileSync(fixturePath(filepath), 'utf-8').trim(); 12 | } 13 | 14 | function run(...cliArgs) { 15 | let stderr = ''; 16 | let stdout = ''; 17 | const args = [path.join(__dirname, '../bin/csso'), ...cliArgs]; 18 | const child = spawn('node', args, { stdio: 'pipe' }); 19 | const wrapper = new Promise(function(resolve, reject) { 20 | child.once('exit', () => 21 | stderr ? reject(new Error(stderr)) : resolve(stdout) 22 | ); 23 | }); 24 | 25 | child.stderr.on('data', chunk => stderr += chunk); 26 | child.stdout.on('data', chunk => stdout += chunk); 27 | 28 | wrapper.input = function(data) { 29 | child.stdin.write(data); 30 | child.stdin.end(); 31 | return wrapper; 32 | }; 33 | 34 | wrapper.output = expected => wrapper.then(actual => { 35 | if (typeof expected === 'function') { 36 | expected(actual.trim()); 37 | } else if (typeof expected === 'string') { 38 | assert.equal(actual.trim(), expected); 39 | } else { 40 | assert.deepStrictEqual(JSON.parse(actual), expected); 41 | } 42 | }); 43 | 44 | return wrapper; 45 | } 46 | 47 | it('should output version', () => 48 | run('-v') 49 | .output(require('csso/package.json').version) 50 | ); 51 | 52 | it('should read content from stdin if no file specified', () => 53 | run() 54 | .input(fixtureContent('1.css')) 55 | .output(fixtureContent('1.min.css')) 56 | ); 57 | 58 | it('should read from file', () => 59 | run(fixturePath('1.css')) 60 | .output(fixtureContent('1.min.css')) 61 | ); 62 | 63 | it('--source-map inline', () => 64 | run(fixturePath('1.css'), '--source-map', 'inline') 65 | .output(stdout => { 66 | const expected = fixtureContent('1.min.css.map'); 67 | const actual = Buffer.from(String(stdout).match(/data:application\/json;base64,(.+)/)[1], 'base64').toString('utf-8'); 68 | 69 | assert.equal(actual, expected); 70 | }) 71 | ); 72 | 73 | it('--source-map file', () => 74 | run( 75 | fixturePath('1.css'), 76 | '--source-map', 'file', 77 | '--output', fixturePath('write-hack/1-source-map-file.min.css') 78 | ).then(() => { 79 | assert.equal( 80 | fixtureContent('write-hack/1-source-map-file.min.css'), 81 | fixtureContent('1-source-map-file.min.css') 82 | ); 83 | assert.equal( 84 | fixtureContent('write-hack/1-source-map-file.min.css.map'), 85 | fixtureContent('1-source-map-file.min.css.map') 86 | ); 87 | }) 88 | ); 89 | 90 | it('--source-map ', () => 91 | run( 92 | fixturePath('1.css'), 93 | '--source-map', fixturePath('write-hack/1-source-map-file.min.css.map') 94 | ).output(actual => { 95 | assert.equal( 96 | actual, 97 | fixtureContent('1-source-map-filepath.min.css') 98 | ); 99 | assert.equal( 100 | fixtureContent('write-hack/1-source-map-file.min.css.map'), 101 | fixtureContent('1-source-map-file.min.css.map') 102 | ); 103 | }) 104 | ); 105 | 106 | it('should fetch a source map from a comment in source file', () => 107 | run( 108 | fixturePath('bootstrap-grid-source-map-filepath.css'), 109 | '--source-map', fixturePath('write-hack/bootstrap-grid-source-map-filepath.min.css.map') 110 | ).output(actual => { 111 | assert.equal( 112 | actual, 113 | fixtureContent('bootstrap-grid-source-map-filepath.min.css') 114 | ); 115 | assert.equal( 116 | fixtureContent('write-hack/bootstrap-grid-source-map-filepath.min.css.map'), 117 | fixtureContent('bootstrap-grid-source-map-filepath.min.css.map') 118 | ); 119 | }) 120 | ); 121 | 122 | it('should fetch a source map from a file with .map extension', () => 123 | run( 124 | fixturePath('bootstrap-grid.css'), 125 | '--source-map', fixturePath('write-hack/bootstrap-grid.min.css.map') 126 | ).output(actual => { 127 | assert.equal( 128 | actual, 129 | fixtureContent('bootstrap-grid.min.css') 130 | ); 131 | assert.equal( 132 | fixtureContent('write-hack/bootstrap-grid.min.css.map'), 133 | fixtureContent('bootstrap-grid.min.css.map') 134 | ); 135 | }) 136 | ); 137 | 138 | it('should disable structure optimisations with --no-restructure option', () => 139 | run(fixturePath('1.css'), '--no-restructure') 140 | .output(fixtureContent('1-no-restructure.min.css')) 141 | ); 142 | 143 | it('should use usage data', () => 144 | run(fixturePath('usage.css'), '--usage', fixturePath('usage.css.json')) 145 | .output(fixtureContent('usage.min.css')) 146 | ); 147 | -------------------------------------------------------------------------------- /test/fixture/1-no-restructure.min.css: -------------------------------------------------------------------------------- 1 | .foo{color:red}.bar{color:red} 2 | -------------------------------------------------------------------------------- /test/fixture/1-source-map-file.min.css: -------------------------------------------------------------------------------- 1 | .bar,.foo{color:red} 2 | /*# sourceMappingURL=1-source-map-file.min.css.map */ 3 | -------------------------------------------------------------------------------- /test/fixture/1-source-map-file.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["test/fixture/1.css"],"names":[],"mappings":"AACA,I,CADA,I,CAAO,S","file":"test/fixture/1.css","sourcesContent":[".foo { color: #ff0000; }\n.bar { color: rgba(255, 0, 0, 1); }\n"]} 2 | -------------------------------------------------------------------------------- /test/fixture/1-source-map-filepath.min.css: -------------------------------------------------------------------------------- 1 | .bar,.foo{color:red} 2 | /*# sourceMappingURL=test/fixture/write-hack/1-source-map-file.min.css.map */ 3 | -------------------------------------------------------------------------------- /test/fixture/1.css: -------------------------------------------------------------------------------- 1 | .foo { color: #ff0000; } 2 | .bar { color: rgba(255, 0, 0, 1); } 3 | -------------------------------------------------------------------------------- /test/fixture/1.min.css: -------------------------------------------------------------------------------- 1 | .bar,.foo{color:red} 2 | -------------------------------------------------------------------------------- /test/fixture/1.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["test/fixture/1.css"],"names":[],"mappings":"AACA,I,CADA,I,CAAO,S","file":"test/fixture/1.css","sourcesContent":[".foo { color: #ff0000; }\n.bar { color: rgba(255, 0, 0, 1); }\n"]} 2 | -------------------------------------------------------------------------------- /test/fixture/bootstrap-grid-source-map-filepath.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grid v4.2.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors 4 | * Copyright 2011-2018 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-auto{position:relative;padding-right:15px;padding-left:15px}.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.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-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{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@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{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-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{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-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{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-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{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!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}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!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}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!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}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!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}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.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-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!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}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-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}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}} 8 | /*# sourceMappingURL=test/fixture/write-hack/bootstrap-grid-source-map-filepath.min.css.map */ 9 | -------------------------------------------------------------------------------- /test/fixture/bootstrap-grid-source-map-filepath.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../scss/bootstrap-grid.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":";;;;;;AAOA,I,CACE,qB,CACA,4B,CAGF,C,CAEA,O,CADA,Q,CAEE,kB,CCVA,U,CCAA,U,CACA,kB,CACA,iB,CACA,iB,CACA,gB,CCmDE,yBFvDF,U,CCYI,iBC2CF,A,yBFvDF,U,CCYI,iBC2CF,A,yBFvDF,U,CCYI,iBC2CF,A,0BFvDF,U,CCYI,kBDAJ,gB,CCZA,U,CACA,kB,CACA,iB,CACA,iB,CACA,gB,CDkBA,I,CCJA,Y,CACA,c,CACA,kB,CACA,iB,CDOA,W,CACE,c,CACA,a,CAFF,gB,CAAA,yB,CAMI,e,CACA,c,CGjBF,I,CAhBF,M,CAYI,O,CAAA,O,CAAA,O,CAAA,M,CAAA,M,CAAA,M,CAAA,M,CAAA,M,CAAA,M,CAAA,M,CAAA,M,CAXF,iB,CACA,U,CACA,kB,CACA,iB,CAaA,S,CAhBA,iB,CAEA,kB,CACA,iB,CAYA,O,CAJE,S,CAAA,U,CAAA,U,CAAA,U,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAKF,Y,CADA,O,CAJE,S,CAAA,U,CAAA,U,CAAA,U,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAKF,Y,CADA,O,CAJE,S,CAAA,U,CAAA,U,CAAA,U,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAKF,Y,CADA,O,CAJE,S,CAAA,U,CAAA,U,CAAA,U,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAKF,Y,CAhBA,iB,CACA,U,CACA,kB,CACA,iB,CAmBE,I,CACE,Y,CACA,W,CACA,c,CAEF,S,CACE,a,CACA,U,CACA,c,CAIA,M,CFFN,kB,CAIA,mB,CEFM,M,CFFN,mB,CAIA,oB,CEFM,M,CFFN,Y,CAIA,a,CEFM,M,CFFN,mB,CAIA,oB,CEFM,M,CFFN,mB,CAIA,oB,CEFM,M,CFFN,Y,CAIA,a,CEFM,M,CFFN,mB,CAIA,oB,CEFM,M,CFFN,mB,CAIA,oB,CEFM,M,CFFN,Y,CAIA,a,CEFM,O,CFFN,mB,CAIA,oB,CEFM,O,CFFN,mB,CAIA,oB,CEFM,O,CFFN,a,CAIA,c,CEGI,Y,CAAwB,Q,CAExB,W,CAAuB,Q,CAGrB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,S,CAAwB,Q,CAAxB,S,CAAwB,Q,CAAxB,S,CAAwB,Q,CAMtB,S,CFTR,qB,CESQ,S,CFTR,sB,CESQ,S,CFTR,e,CESQ,S,CFTR,sB,CESQ,S,CFTR,sB,CESQ,S,CFTR,e,CESQ,S,CFTR,sB,CESQ,S,CFTR,sB,CESQ,S,CFTR,e,CESQ,U,CFTR,sB,CESQ,U,CFTR,sB,CCWE,yBC9BE,O,CACE,Y,CACA,W,CACA,c,CAEF,Y,CACE,a,CACA,U,CACA,c,CAIA,S,CFFN,kB,CAIA,mB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,a,CAIA,c,CEGI,e,CAAwB,Q,CAExB,c,CAAuB,Q,CAGrB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAMtB,Y,CFTR,a,CESQ,Y,CFTR,qB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,a,CFTR,sB,CESQ,a,CFTR,wBCWE,A,yBC9BE,O,CACE,Y,CACA,W,CACA,c,CAEF,Y,CACE,a,CACA,U,CACA,c,CAIA,S,CFFN,kB,CAIA,mB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,a,CAIA,c,CEGI,e,CAAwB,Q,CAExB,c,CAAuB,Q,CAGrB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAMtB,Y,CFTR,a,CESQ,Y,CFTR,qB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,a,CFTR,sB,CESQ,a,CFTR,wBCWE,A,yBC9BE,O,CACE,Y,CACA,W,CACA,c,CAEF,Y,CACE,a,CACA,U,CACA,c,CAIA,S,CFFN,kB,CAIA,mB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,a,CAIA,c,CEGI,e,CAAwB,Q,CAExB,c,CAAuB,Q,CAGrB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAMtB,Y,CFTR,a,CESQ,Y,CFTR,qB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,a,CFTR,sB,CESQ,a,CFTR,wBCWE,A,0BC9BE,O,CACE,Y,CACA,W,CACA,c,CAEF,Y,CACE,a,CACA,U,CACA,c,CAIA,S,CFFN,kB,CAIA,mB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,a,CAIA,c,CEGI,e,CAAwB,Q,CAExB,c,CAAuB,Q,CAGrB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAMtB,Y,CFTR,a,CESQ,Y,CFTR,qB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,a,CFTR,sB,CESQ,a,CFTR,wBGvCE,O,CAA2B,sB,CAC3B,S,CAA2B,wB,CAC3B,e,CAA2B,8B,CAC3B,Q,CAA2B,uB,CAC3B,Q,CAA2B,uB,CAC3B,Y,CAA2B,2B,CAC3B,a,CAA2B,4B,CAC3B,O,CAA2B,sB,CAC3B,c,CAA2B,6B,CF0C3B,yBElDA,U,CAA2B,sB,CAC3B,Y,CAA2B,wB,CAC3B,kB,CAA2B,8B,CAC3B,W,CAA2B,uB,CAC3B,W,CAA2B,uB,CAC3B,e,CAA2B,2B,CAC3B,gB,CAA2B,4B,CAC3B,U,CAA2B,sB,CAC3B,iB,CAA2B,+BF0C3B,A,yBElDA,U,CAA2B,sB,CAC3B,Y,CAA2B,wB,CAC3B,kB,CAA2B,8B,CAC3B,W,CAA2B,uB,CAC3B,W,CAA2B,uB,CAC3B,e,CAA2B,2B,CAC3B,gB,CAA2B,4B,CAC3B,U,CAA2B,sB,CAC3B,iB,CAA2B,+BF0C3B,A,yBElDA,U,CAA2B,sB,CAC3B,Y,CAA2B,wB,CAC3B,kB,CAA2B,8B,CAC3B,W,CAA2B,uB,CAC3B,W,CAA2B,uB,CAC3B,e,CAA2B,2B,CAC3B,gB,CAA2B,4B,CAC3B,U,CAA2B,sB,CAC3B,iB,CAA2B,+BF0C3B,A,0BElDA,U,CAA2B,sB,CAC3B,Y,CAA2B,wB,CAC3B,kB,CAA2B,8B,CAC3B,W,CAA2B,uB,CAC3B,W,CAA2B,uB,CAC3B,e,CAA2B,2B,CAC3B,gB,CAA2B,4B,CAC3B,U,CAA2B,sB,CAC3B,iB,CAA2B,+BAS/B,A,aACE,a,CAAwB,sB,CACxB,e,CAAwB,wB,CACxB,qB,CAAwB,8B,CACxB,c,CAAwB,uB,CACxB,c,CAAwB,uB,CACxB,kB,CAAwB,2B,CACxB,mB,CAAwB,4B,CACxB,a,CAAwB,sB,CACxB,oB,CAAwB,+BC1BtB,S,CAAgC,4B,CAChC,Y,CAAgC,+B,CAChC,iB,CAAgC,oC,CAChC,oB,CAAgC,uC,CAEhC,U,CAA8B,wB,CAC9B,Y,CAA8B,0B,CAC9B,kB,CAA8B,gC,CAC9B,U,CAA8B,uB,CAC9B,Y,CAA8B,qB,CAC9B,Y,CAA8B,qB,CAC9B,c,CAA8B,uB,CAC9B,c,CAA8B,uB,CAE9B,sB,CAAoC,oC,CACpC,oB,CAAoC,kC,CACpC,uB,CAAoC,gC,CACpC,wB,CAAoC,uC,CACpC,uB,CAAoC,sC,CAEpC,kB,CAAiC,gC,CACjC,gB,CAAiC,8B,CACjC,mB,CAAiC,4B,CACjC,qB,CAAiC,8B,CACjC,oB,CAAiC,6B,CAEjC,oB,CAAkC,kC,CAClC,kB,CAAkC,gC,CAClC,qB,CAAkC,8B,CAClC,sB,CAAkC,qC,CAClC,qB,CAAkC,oC,CAClC,sB,CAAkC,+B,CAElC,gB,CAAgC,yB,CAChC,iB,CAAgC,+B,CAChC,e,CAAgC,6B,CAChC,kB,CAAgC,2B,CAChC,oB,CAAgC,6B,CAChC,mB,CAAgC,4B,CHYhC,yBGlDA,Y,CAAgC,4B,CAChC,e,CAAgC,+B,CAChC,oB,CAAgC,oC,CAChC,uB,CAAgC,uC,CAEhC,a,CAA8B,wB,CAC9B,e,CAA8B,0B,CAC9B,qB,CAA8B,gC,CAC9B,a,CAA8B,uB,CAC9B,e,CAA8B,qB,CAC9B,e,CAA8B,qB,CAC9B,iB,CAA8B,uB,CAC9B,iB,CAA8B,uB,CAE9B,yB,CAAoC,oC,CACpC,uB,CAAoC,kC,CACpC,0B,CAAoC,gC,CACpC,2B,CAAoC,uC,CACpC,0B,CAAoC,sC,CAEpC,qB,CAAiC,gC,CACjC,mB,CAAiC,8B,CACjC,sB,CAAiC,4B,CACjC,wB,CAAiC,8B,CACjC,uB,CAAiC,6B,CAEjC,uB,CAAkC,kC,CAClC,qB,CAAkC,gC,CAClC,wB,CAAkC,8B,CAClC,yB,CAAkC,qC,CAClC,wB,CAAkC,oC,CAClC,yB,CAAkC,+B,CAElC,mB,CAAgC,yB,CAChC,oB,CAAgC,+B,CAChC,kB,CAAgC,6B,CAChC,qB,CAAgC,2B,CAChC,uB,CAAgC,6B,CAChC,sB,CAAgC,8BHYhC,A,yBGlDA,Y,CAAgC,4B,CAChC,e,CAAgC,+B,CAChC,oB,CAAgC,oC,CAChC,uB,CAAgC,uC,CAEhC,a,CAA8B,wB,CAC9B,e,CAA8B,0B,CAC9B,qB,CAA8B,gC,CAC9B,a,CAA8B,uB,CAC9B,e,CAA8B,qB,CAC9B,e,CAA8B,qB,CAC9B,iB,CAA8B,uB,CAC9B,iB,CAA8B,uB,CAE9B,yB,CAAoC,oC,CACpC,uB,CAAoC,kC,CACpC,0B,CAAoC,gC,CACpC,2B,CAAoC,uC,CACpC,0B,CAAoC,sC,CAEpC,qB,CAAiC,gC,CACjC,mB,CAAiC,8B,CACjC,sB,CAAiC,4B,CACjC,wB,CAAiC,8B,CACjC,uB,CAAiC,6B,CAEjC,uB,CAAkC,kC,CAClC,qB,CAAkC,gC,CAClC,wB,CAAkC,8B,CAClC,yB,CAAkC,qC,CAClC,wB,CAAkC,oC,CAClC,yB,CAAkC,+B,CAElC,mB,CAAgC,yB,CAChC,oB,CAAgC,+B,CAChC,kB,CAAgC,6B,CAChC,qB,CAAgC,2B,CAChC,uB,CAAgC,6B,CAChC,sB,CAAgC,8BHYhC,A,yBGlDA,Y,CAAgC,4B,CAChC,e,CAAgC,+B,CAChC,oB,CAAgC,oC,CAChC,uB,CAAgC,uC,CAEhC,a,CAA8B,wB,CAC9B,e,CAA8B,0B,CAC9B,qB,CAA8B,gC,CAC9B,a,CAA8B,uB,CAC9B,e,CAA8B,qB,CAC9B,e,CAA8B,qB,CAC9B,iB,CAA8B,uB,CAC9B,iB,CAA8B,uB,CAE9B,yB,CAAoC,oC,CACpC,uB,CAAoC,kC,CACpC,0B,CAAoC,gC,CACpC,2B,CAAoC,uC,CACpC,0B,CAAoC,sC,CAEpC,qB,CAAiC,gC,CACjC,mB,CAAiC,8B,CACjC,sB,CAAiC,4B,CACjC,wB,CAAiC,8B,CACjC,uB,CAAiC,6B,CAEjC,uB,CAAkC,kC,CAClC,qB,CAAkC,gC,CAClC,wB,CAAkC,8B,CAClC,yB,CAAkC,qC,CAClC,wB,CAAkC,oC,CAClC,yB,CAAkC,+B,CAElC,mB,CAAgC,yB,CAChC,oB,CAAgC,+B,CAChC,kB,CAAgC,6B,CAChC,qB,CAAgC,2B,CAChC,uB,CAAgC,6B,CAChC,sB,CAAgC,8BHYhC,A,0BGlDA,Y,CAAgC,4B,CAChC,e,CAAgC,+B,CAChC,oB,CAAgC,oC,CAChC,uB,CAAgC,uC,CAEhC,a,CAA8B,wB,CAC9B,e,CAA8B,0B,CAC9B,qB,CAA8B,gC,CAC9B,a,CAA8B,uB,CAC9B,e,CAA8B,qB,CAC9B,e,CAA8B,qB,CAC9B,iB,CAA8B,uB,CAC9B,iB,CAA8B,uB,CAE9B,yB,CAAoC,oC,CACpC,uB,CAAoC,kC,CACpC,0B,CAAoC,gC,CACpC,2B,CAAoC,uC,CACpC,0B,CAAoC,sC,CAEpC,qB,CAAiC,gC,CACjC,mB,CAAiC,8B,CACjC,sB,CAAiC,4B,CACjC,wB,CAAiC,8B,CACjC,uB,CAAiC,6B,CAEjC,uB,CAAkC,kC,CAClC,qB,CAAkC,gC,CAClC,wB,CAAkC,8B,CAClC,yB,CAAkC,qC,CAClC,wB,CAAkC,oC,CAClC,yB,CAAkC,+B,CAElC,mB,CAAgC,yB,CAChC,oB,CAAgC,+B,CAChC,kB,CAAgC,6B,CAChC,qB,CAAgC,2B,CAChC,uB,CAAgC,6B,CAChC,sB,CAAgC,8BCtC5B,I,CAAgC,kB,CAChC,K,CACA,K,CACE,sB,CAEF,K,CACA,K,CACE,wB,CAEF,K,CACA,K,CACE,yB,CAEF,K,CACA,K,CACE,uB,CAfF,I,CAAgC,uB,CAChC,K,CACA,K,CACE,2B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,8B,CAEF,K,CACA,K,CACE,4B,CAfF,I,CAAgC,sB,CAChC,K,CACA,K,CACE,0B,CAEF,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,2B,CAfF,I,CAAgC,qB,CAChC,K,CACA,K,CACE,yB,CAEF,K,CACA,K,CACE,2B,CAEF,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,0B,CAfF,I,CAAgC,uB,CAChC,K,CACA,K,CACE,2B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,8B,CAEF,K,CACA,K,CACE,4B,CAfF,I,CAAgC,qB,CAChC,K,CACA,K,CACE,yB,CAEF,K,CACA,K,CACE,2B,CAEF,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,0B,CAfF,I,CAAgC,mB,CAChC,K,CACA,K,CACE,uB,CAEF,K,CACA,K,CACE,yB,CAEF,K,CACA,K,CACE,0B,CAEF,K,CACA,K,CACE,wB,CAfF,I,CAAgC,wB,CAChC,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,8B,CAEF,K,CACA,K,CACE,+B,CAEF,K,CACA,K,CACE,6B,CAfF,I,CAAgC,uB,CAChC,K,CACA,K,CACE,2B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,8B,CAEF,K,CACA,K,CACE,4B,CAfF,I,CAAgC,sB,CAChC,K,CACA,K,CACE,0B,CAEF,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,2B,CAfF,I,CAAgC,wB,CAChC,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,8B,CAEF,K,CACA,K,CACE,+B,CAEF,K,CACA,K,CACE,6B,CAfF,I,CAAgC,sB,CAChC,K,CACA,K,CACE,0B,CAEF,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,2B,CAQF,K,CAAwB,wB,CACxB,M,CACA,M,CACE,4B,CAEF,M,CACA,M,CACE,8B,CAEF,M,CACA,M,CACE,+B,CAEF,M,CACA,M,CACE,6B,CAfF,K,CAAwB,uB,CACxB,M,CACA,M,CACE,2B,CAEF,M,CACA,M,CACE,6B,CAEF,M,CACA,M,CACE,8B,CAEF,M,CACA,M,CACE,4B,CAfF,K,CAAwB,sB,CACxB,M,CACA,M,CACE,0B,CAEF,M,CACA,M,CACE,4B,CAEF,M,CACA,M,CACE,6B,CAEF,M,CACA,M,CACE,2B,CAfF,K,CAAwB,wB,CACxB,M,CACA,M,CACE,4B,CAEF,M,CACA,M,CACE,8B,CAEF,M,CACA,M,CACE,+B,CAEF,M,CACA,M,CACE,6B,CAfF,K,CAAwB,sB,CACxB,M,CACA,M,CACE,0B,CAEF,M,CACA,M,CACE,4B,CAEF,M,CACA,M,CACE,6B,CAEF,M,CACA,M,CACE,2B,CAMN,O,CAAmB,qB,CACnB,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CJTF,yBIlDI,O,CAAgC,kB,CAChC,Q,CACA,Q,CACE,sB,CAEF,Q,CACA,Q,CACE,wB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,uB,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,mB,CAChC,Q,CACA,Q,CACE,uB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,wB,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAQF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,uB,CACxB,S,CACA,S,CACE,2B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,4B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAfF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAMN,U,CAAmB,qB,CACnB,W,CACA,W,CACE,yB,CAEF,W,CACA,W,CACE,2B,CAEF,W,CACA,W,CACE,4B,CAEF,W,CACA,W,CACE,4BJTF,A,yBIlDI,O,CAAgC,kB,CAChC,Q,CACA,Q,CACE,sB,CAEF,Q,CACA,Q,CACE,wB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,uB,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,mB,CAChC,Q,CACA,Q,CACE,uB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,wB,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAQF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,uB,CACxB,S,CACA,S,CACE,2B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,4B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAfF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAMN,U,CAAmB,qB,CACnB,W,CACA,W,CACE,yB,CAEF,W,CACA,W,CACE,2B,CAEF,W,CACA,W,CACE,4B,CAEF,W,CACA,W,CACE,4BJTF,A,yBIlDI,O,CAAgC,kB,CAChC,Q,CACA,Q,CACE,sB,CAEF,Q,CACA,Q,CACE,wB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,uB,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,mB,CAChC,Q,CACA,Q,CACE,uB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,wB,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAQF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,uB,CACxB,S,CACA,S,CACE,2B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,4B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAfF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAMN,U,CAAmB,qB,CACnB,W,CACA,W,CACE,yB,CAEF,W,CACA,W,CACE,2B,CAEF,W,CACA,W,CACE,4B,CAEF,W,CACA,W,CACE,4BJTF,A,0BIlDI,O,CAAgC,kB,CAChC,Q,CACA,Q,CACE,sB,CAEF,Q,CACA,Q,CACE,wB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,uB,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,mB,CAChC,Q,CACA,Q,CACE,uB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,wB,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAQF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,uB,CACxB,S,CACA,S,CACE,2B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,4B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAfF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAMN,U,CAAmB,qB,CACnB,W,CACA,W,CACE,yB,CAEF,W,CACA,W,CACE,2B,CAEF,W,CACA,W,CACE,4B,CAEF,W,CACA,W,CACE,4B","file":"test/fixture/bootstrap-grid-source-map-filepath.css","sourcesContent":["/*!\n * Bootstrap Grid v4.2.1 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} 2 | -------------------------------------------------------------------------------- /test/fixture/bootstrap-grid.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grid v4.2.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors 4 | * Copyright 2011-2018 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-auto{position:relative;padding-right:15px;padding-left:15px}.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.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-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{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@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{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-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{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-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{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-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{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!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}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!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}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!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}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!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}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.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-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!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}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-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}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}} 8 | /*# sourceMappingURL=test/fixture/write-hack/bootstrap-grid.min.css.map */ 9 | -------------------------------------------------------------------------------- /test/fixture/bootstrap-grid.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../scss/bootstrap-grid.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":";;;;;;AAOA,I,CACE,qB,CACA,4B,CAGF,C,CAEA,O,CADA,Q,CAEE,kB,CCVA,U,CCAA,U,CACA,kB,CACA,iB,CACA,iB,CACA,gB,CCmDE,yBFvDF,U,CCYI,iBC2CF,A,yBFvDF,U,CCYI,iBC2CF,A,yBFvDF,U,CCYI,iBC2CF,A,0BFvDF,U,CCYI,kBDAJ,gB,CCZA,U,CACA,kB,CACA,iB,CACA,iB,CACA,gB,CDkBA,I,CCJA,Y,CACA,c,CACA,kB,CACA,iB,CDOA,W,CACE,c,CACA,a,CAFF,gB,CAAA,yB,CAMI,e,CACA,c,CGjBF,I,CAhBF,M,CAYI,O,CAAA,O,CAAA,O,CAAA,M,CAAA,M,CAAA,M,CAAA,M,CAAA,M,CAAA,M,CAAA,M,CAAA,M,CAXF,iB,CACA,U,CACA,kB,CACA,iB,CAaA,S,CAhBA,iB,CAEA,kB,CACA,iB,CAYA,O,CAJE,S,CAAA,U,CAAA,U,CAAA,U,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAKF,Y,CADA,O,CAJE,S,CAAA,U,CAAA,U,CAAA,U,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAKF,Y,CADA,O,CAJE,S,CAAA,U,CAAA,U,CAAA,U,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAKF,Y,CADA,O,CAJE,S,CAAA,U,CAAA,U,CAAA,U,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAAA,S,CAKF,Y,CAhBA,iB,CACA,U,CACA,kB,CACA,iB,CAmBE,I,CACE,Y,CACA,W,CACA,c,CAEF,S,CACE,a,CACA,U,CACA,c,CAIA,M,CFFN,kB,CAIA,mB,CEFM,M,CFFN,mB,CAIA,oB,CEFM,M,CFFN,Y,CAIA,a,CEFM,M,CFFN,mB,CAIA,oB,CEFM,M,CFFN,mB,CAIA,oB,CEFM,M,CFFN,Y,CAIA,a,CEFM,M,CFFN,mB,CAIA,oB,CEFM,M,CFFN,mB,CAIA,oB,CEFM,M,CFFN,Y,CAIA,a,CEFM,O,CFFN,mB,CAIA,oB,CEFM,O,CFFN,mB,CAIA,oB,CEFM,O,CFFN,a,CAIA,c,CEGI,Y,CAAwB,Q,CAExB,W,CAAuB,Q,CAGrB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,Q,CAAwB,O,CAAxB,S,CAAwB,Q,CAAxB,S,CAAwB,Q,CAAxB,S,CAAwB,Q,CAMtB,S,CFTR,qB,CESQ,S,CFTR,sB,CESQ,S,CFTR,e,CESQ,S,CFTR,sB,CESQ,S,CFTR,sB,CESQ,S,CFTR,e,CESQ,S,CFTR,sB,CESQ,S,CFTR,sB,CESQ,S,CFTR,e,CESQ,U,CFTR,sB,CESQ,U,CFTR,sB,CCWE,yBC9BE,O,CACE,Y,CACA,W,CACA,c,CAEF,Y,CACE,a,CACA,U,CACA,c,CAIA,S,CFFN,kB,CAIA,mB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,a,CAIA,c,CEGI,e,CAAwB,Q,CAExB,c,CAAuB,Q,CAGrB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAMtB,Y,CFTR,a,CESQ,Y,CFTR,qB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,a,CFTR,sB,CESQ,a,CFTR,wBCWE,A,yBC9BE,O,CACE,Y,CACA,W,CACA,c,CAEF,Y,CACE,a,CACA,U,CACA,c,CAIA,S,CFFN,kB,CAIA,mB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,a,CAIA,c,CEGI,e,CAAwB,Q,CAExB,c,CAAuB,Q,CAGrB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAMtB,Y,CFTR,a,CESQ,Y,CFTR,qB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,a,CFTR,sB,CESQ,a,CFTR,wBCWE,A,yBC9BE,O,CACE,Y,CACA,W,CACA,c,CAEF,Y,CACE,a,CACA,U,CACA,c,CAIA,S,CFFN,kB,CAIA,mB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,a,CAIA,c,CEGI,e,CAAwB,Q,CAExB,c,CAAuB,Q,CAGrB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAMtB,Y,CFTR,a,CESQ,Y,CFTR,qB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,a,CFTR,sB,CESQ,a,CFTR,wBCWE,A,0BC9BE,O,CACE,Y,CACA,W,CACA,c,CAEF,Y,CACE,a,CACA,U,CACA,c,CAIA,S,CFFN,kB,CAIA,mB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,mB,CAIA,oB,CEFM,S,CFFN,Y,CAIA,a,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,mB,CAIA,oB,CEFM,U,CFFN,a,CAIA,c,CEGI,e,CAAwB,Q,CAExB,c,CAAuB,Q,CAGrB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,W,CAAwB,O,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAAxB,Y,CAAwB,Q,CAMtB,Y,CFTR,a,CESQ,Y,CFTR,qB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,sB,CESQ,Y,CFTR,e,CESQ,a,CFTR,sB,CESQ,a,CFTR,wBGvCE,O,CAA2B,sB,CAC3B,S,CAA2B,wB,CAC3B,e,CAA2B,8B,CAC3B,Q,CAA2B,uB,CAC3B,Q,CAA2B,uB,CAC3B,Y,CAA2B,2B,CAC3B,a,CAA2B,4B,CAC3B,O,CAA2B,sB,CAC3B,c,CAA2B,6B,CF0C3B,yBElDA,U,CAA2B,sB,CAC3B,Y,CAA2B,wB,CAC3B,kB,CAA2B,8B,CAC3B,W,CAA2B,uB,CAC3B,W,CAA2B,uB,CAC3B,e,CAA2B,2B,CAC3B,gB,CAA2B,4B,CAC3B,U,CAA2B,sB,CAC3B,iB,CAA2B,+BF0C3B,A,yBElDA,U,CAA2B,sB,CAC3B,Y,CAA2B,wB,CAC3B,kB,CAA2B,8B,CAC3B,W,CAA2B,uB,CAC3B,W,CAA2B,uB,CAC3B,e,CAA2B,2B,CAC3B,gB,CAA2B,4B,CAC3B,U,CAA2B,sB,CAC3B,iB,CAA2B,+BF0C3B,A,yBElDA,U,CAA2B,sB,CAC3B,Y,CAA2B,wB,CAC3B,kB,CAA2B,8B,CAC3B,W,CAA2B,uB,CAC3B,W,CAA2B,uB,CAC3B,e,CAA2B,2B,CAC3B,gB,CAA2B,4B,CAC3B,U,CAA2B,sB,CAC3B,iB,CAA2B,+BF0C3B,A,0BElDA,U,CAA2B,sB,CAC3B,Y,CAA2B,wB,CAC3B,kB,CAA2B,8B,CAC3B,W,CAA2B,uB,CAC3B,W,CAA2B,uB,CAC3B,e,CAA2B,2B,CAC3B,gB,CAA2B,4B,CAC3B,U,CAA2B,sB,CAC3B,iB,CAA2B,+BAS/B,A,aACE,a,CAAwB,sB,CACxB,e,CAAwB,wB,CACxB,qB,CAAwB,8B,CACxB,c,CAAwB,uB,CACxB,c,CAAwB,uB,CACxB,kB,CAAwB,2B,CACxB,mB,CAAwB,4B,CACxB,a,CAAwB,sB,CACxB,oB,CAAwB,+BC1BtB,S,CAAgC,4B,CAChC,Y,CAAgC,+B,CAChC,iB,CAAgC,oC,CAChC,oB,CAAgC,uC,CAEhC,U,CAA8B,wB,CAC9B,Y,CAA8B,0B,CAC9B,kB,CAA8B,gC,CAC9B,U,CAA8B,uB,CAC9B,Y,CAA8B,qB,CAC9B,Y,CAA8B,qB,CAC9B,c,CAA8B,uB,CAC9B,c,CAA8B,uB,CAE9B,sB,CAAoC,oC,CACpC,oB,CAAoC,kC,CACpC,uB,CAAoC,gC,CACpC,wB,CAAoC,uC,CACpC,uB,CAAoC,sC,CAEpC,kB,CAAiC,gC,CACjC,gB,CAAiC,8B,CACjC,mB,CAAiC,4B,CACjC,qB,CAAiC,8B,CACjC,oB,CAAiC,6B,CAEjC,oB,CAAkC,kC,CAClC,kB,CAAkC,gC,CAClC,qB,CAAkC,8B,CAClC,sB,CAAkC,qC,CAClC,qB,CAAkC,oC,CAClC,sB,CAAkC,+B,CAElC,gB,CAAgC,yB,CAChC,iB,CAAgC,+B,CAChC,e,CAAgC,6B,CAChC,kB,CAAgC,2B,CAChC,oB,CAAgC,6B,CAChC,mB,CAAgC,4B,CHYhC,yBGlDA,Y,CAAgC,4B,CAChC,e,CAAgC,+B,CAChC,oB,CAAgC,oC,CAChC,uB,CAAgC,uC,CAEhC,a,CAA8B,wB,CAC9B,e,CAA8B,0B,CAC9B,qB,CAA8B,gC,CAC9B,a,CAA8B,uB,CAC9B,e,CAA8B,qB,CAC9B,e,CAA8B,qB,CAC9B,iB,CAA8B,uB,CAC9B,iB,CAA8B,uB,CAE9B,yB,CAAoC,oC,CACpC,uB,CAAoC,kC,CACpC,0B,CAAoC,gC,CACpC,2B,CAAoC,uC,CACpC,0B,CAAoC,sC,CAEpC,qB,CAAiC,gC,CACjC,mB,CAAiC,8B,CACjC,sB,CAAiC,4B,CACjC,wB,CAAiC,8B,CACjC,uB,CAAiC,6B,CAEjC,uB,CAAkC,kC,CAClC,qB,CAAkC,gC,CAClC,wB,CAAkC,8B,CAClC,yB,CAAkC,qC,CAClC,wB,CAAkC,oC,CAClC,yB,CAAkC,+B,CAElC,mB,CAAgC,yB,CAChC,oB,CAAgC,+B,CAChC,kB,CAAgC,6B,CAChC,qB,CAAgC,2B,CAChC,uB,CAAgC,6B,CAChC,sB,CAAgC,8BHYhC,A,yBGlDA,Y,CAAgC,4B,CAChC,e,CAAgC,+B,CAChC,oB,CAAgC,oC,CAChC,uB,CAAgC,uC,CAEhC,a,CAA8B,wB,CAC9B,e,CAA8B,0B,CAC9B,qB,CAA8B,gC,CAC9B,a,CAA8B,uB,CAC9B,e,CAA8B,qB,CAC9B,e,CAA8B,qB,CAC9B,iB,CAA8B,uB,CAC9B,iB,CAA8B,uB,CAE9B,yB,CAAoC,oC,CACpC,uB,CAAoC,kC,CACpC,0B,CAAoC,gC,CACpC,2B,CAAoC,uC,CACpC,0B,CAAoC,sC,CAEpC,qB,CAAiC,gC,CACjC,mB,CAAiC,8B,CACjC,sB,CAAiC,4B,CACjC,wB,CAAiC,8B,CACjC,uB,CAAiC,6B,CAEjC,uB,CAAkC,kC,CAClC,qB,CAAkC,gC,CAClC,wB,CAAkC,8B,CAClC,yB,CAAkC,qC,CAClC,wB,CAAkC,oC,CAClC,yB,CAAkC,+B,CAElC,mB,CAAgC,yB,CAChC,oB,CAAgC,+B,CAChC,kB,CAAgC,6B,CAChC,qB,CAAgC,2B,CAChC,uB,CAAgC,6B,CAChC,sB,CAAgC,8BHYhC,A,yBGlDA,Y,CAAgC,4B,CAChC,e,CAAgC,+B,CAChC,oB,CAAgC,oC,CAChC,uB,CAAgC,uC,CAEhC,a,CAA8B,wB,CAC9B,e,CAA8B,0B,CAC9B,qB,CAA8B,gC,CAC9B,a,CAA8B,uB,CAC9B,e,CAA8B,qB,CAC9B,e,CAA8B,qB,CAC9B,iB,CAA8B,uB,CAC9B,iB,CAA8B,uB,CAE9B,yB,CAAoC,oC,CACpC,uB,CAAoC,kC,CACpC,0B,CAAoC,gC,CACpC,2B,CAAoC,uC,CACpC,0B,CAAoC,sC,CAEpC,qB,CAAiC,gC,CACjC,mB,CAAiC,8B,CACjC,sB,CAAiC,4B,CACjC,wB,CAAiC,8B,CACjC,uB,CAAiC,6B,CAEjC,uB,CAAkC,kC,CAClC,qB,CAAkC,gC,CAClC,wB,CAAkC,8B,CAClC,yB,CAAkC,qC,CAClC,wB,CAAkC,oC,CAClC,yB,CAAkC,+B,CAElC,mB,CAAgC,yB,CAChC,oB,CAAgC,+B,CAChC,kB,CAAgC,6B,CAChC,qB,CAAgC,2B,CAChC,uB,CAAgC,6B,CAChC,sB,CAAgC,8BHYhC,A,0BGlDA,Y,CAAgC,4B,CAChC,e,CAAgC,+B,CAChC,oB,CAAgC,oC,CAChC,uB,CAAgC,uC,CAEhC,a,CAA8B,wB,CAC9B,e,CAA8B,0B,CAC9B,qB,CAA8B,gC,CAC9B,a,CAA8B,uB,CAC9B,e,CAA8B,qB,CAC9B,e,CAA8B,qB,CAC9B,iB,CAA8B,uB,CAC9B,iB,CAA8B,uB,CAE9B,yB,CAAoC,oC,CACpC,uB,CAAoC,kC,CACpC,0B,CAAoC,gC,CACpC,2B,CAAoC,uC,CACpC,0B,CAAoC,sC,CAEpC,qB,CAAiC,gC,CACjC,mB,CAAiC,8B,CACjC,sB,CAAiC,4B,CACjC,wB,CAAiC,8B,CACjC,uB,CAAiC,6B,CAEjC,uB,CAAkC,kC,CAClC,qB,CAAkC,gC,CAClC,wB,CAAkC,8B,CAClC,yB,CAAkC,qC,CAClC,wB,CAAkC,oC,CAClC,yB,CAAkC,+B,CAElC,mB,CAAgC,yB,CAChC,oB,CAAgC,+B,CAChC,kB,CAAgC,6B,CAChC,qB,CAAgC,2B,CAChC,uB,CAAgC,6B,CAChC,sB,CAAgC,8BCtC5B,I,CAAgC,kB,CAChC,K,CACA,K,CACE,sB,CAEF,K,CACA,K,CACE,wB,CAEF,K,CACA,K,CACE,yB,CAEF,K,CACA,K,CACE,uB,CAfF,I,CAAgC,uB,CAChC,K,CACA,K,CACE,2B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,8B,CAEF,K,CACA,K,CACE,4B,CAfF,I,CAAgC,sB,CAChC,K,CACA,K,CACE,0B,CAEF,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,2B,CAfF,I,CAAgC,qB,CAChC,K,CACA,K,CACE,yB,CAEF,K,CACA,K,CACE,2B,CAEF,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,0B,CAfF,I,CAAgC,uB,CAChC,K,CACA,K,CACE,2B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,8B,CAEF,K,CACA,K,CACE,4B,CAfF,I,CAAgC,qB,CAChC,K,CACA,K,CACE,yB,CAEF,K,CACA,K,CACE,2B,CAEF,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,0B,CAfF,I,CAAgC,mB,CAChC,K,CACA,K,CACE,uB,CAEF,K,CACA,K,CACE,yB,CAEF,K,CACA,K,CACE,0B,CAEF,K,CACA,K,CACE,wB,CAfF,I,CAAgC,wB,CAChC,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,8B,CAEF,K,CACA,K,CACE,+B,CAEF,K,CACA,K,CACE,6B,CAfF,I,CAAgC,uB,CAChC,K,CACA,K,CACE,2B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,8B,CAEF,K,CACA,K,CACE,4B,CAfF,I,CAAgC,sB,CAChC,K,CACA,K,CACE,0B,CAEF,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,2B,CAfF,I,CAAgC,wB,CAChC,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,8B,CAEF,K,CACA,K,CACE,+B,CAEF,K,CACA,K,CACE,6B,CAfF,I,CAAgC,sB,CAChC,K,CACA,K,CACE,0B,CAEF,K,CACA,K,CACE,4B,CAEF,K,CACA,K,CACE,6B,CAEF,K,CACA,K,CACE,2B,CAQF,K,CAAwB,wB,CACxB,M,CACA,M,CACE,4B,CAEF,M,CACA,M,CACE,8B,CAEF,M,CACA,M,CACE,+B,CAEF,M,CACA,M,CACE,6B,CAfF,K,CAAwB,uB,CACxB,M,CACA,M,CACE,2B,CAEF,M,CACA,M,CACE,6B,CAEF,M,CACA,M,CACE,8B,CAEF,M,CACA,M,CACE,4B,CAfF,K,CAAwB,sB,CACxB,M,CACA,M,CACE,0B,CAEF,M,CACA,M,CACE,4B,CAEF,M,CACA,M,CACE,6B,CAEF,M,CACA,M,CACE,2B,CAfF,K,CAAwB,wB,CACxB,M,CACA,M,CACE,4B,CAEF,M,CACA,M,CACE,8B,CAEF,M,CACA,M,CACE,+B,CAEF,M,CACA,M,CACE,6B,CAfF,K,CAAwB,sB,CACxB,M,CACA,M,CACE,0B,CAEF,M,CACA,M,CACE,4B,CAEF,M,CACA,M,CACE,6B,CAEF,M,CACA,M,CACE,2B,CAMN,O,CAAmB,qB,CACnB,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CJTF,yBIlDI,O,CAAgC,kB,CAChC,Q,CACA,Q,CACE,sB,CAEF,Q,CACA,Q,CACE,wB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,uB,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,mB,CAChC,Q,CACA,Q,CACE,uB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,wB,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAQF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,uB,CACxB,S,CACA,S,CACE,2B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,4B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAfF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAMN,U,CAAmB,qB,CACnB,W,CACA,W,CACE,yB,CAEF,W,CACA,W,CACE,2B,CAEF,W,CACA,W,CACE,4B,CAEF,W,CACA,W,CACE,4BJTF,A,yBIlDI,O,CAAgC,kB,CAChC,Q,CACA,Q,CACE,sB,CAEF,Q,CACA,Q,CACE,wB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,uB,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,mB,CAChC,Q,CACA,Q,CACE,uB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,wB,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAQF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,uB,CACxB,S,CACA,S,CACE,2B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,4B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAfF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAMN,U,CAAmB,qB,CACnB,W,CACA,W,CACE,yB,CAEF,W,CACA,W,CACE,2B,CAEF,W,CACA,W,CACE,4B,CAEF,W,CACA,W,CACE,4BJTF,A,yBIlDI,O,CAAgC,kB,CAChC,Q,CACA,Q,CACE,sB,CAEF,Q,CACA,Q,CACE,wB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,uB,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,mB,CAChC,Q,CACA,Q,CACE,uB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,wB,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAQF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,uB,CACxB,S,CACA,S,CACE,2B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,4B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAfF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAMN,U,CAAmB,qB,CACnB,W,CACA,W,CACE,yB,CAEF,W,CACA,W,CACE,2B,CAEF,W,CACA,W,CACE,4B,CAEF,W,CACA,W,CACE,4BJTF,A,0BIlDI,O,CAAgC,kB,CAChC,Q,CACA,Q,CACE,sB,CAEF,Q,CACA,Q,CACE,wB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,uB,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,qB,CAChC,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,0B,CAfF,O,CAAgC,mB,CAChC,Q,CACA,Q,CACE,uB,CAEF,Q,CACA,Q,CACE,yB,CAEF,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,wB,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,uB,CAChC,Q,CACA,Q,CACE,2B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,4B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAfF,O,CAAgC,wB,CAChC,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,8B,CAEF,Q,CACA,Q,CACE,+B,CAEF,Q,CACA,Q,CACE,6B,CAfF,O,CAAgC,sB,CAChC,Q,CACA,Q,CACE,0B,CAEF,Q,CACA,Q,CACE,4B,CAEF,Q,CACA,Q,CACE,6B,CAEF,Q,CACA,Q,CACE,2B,CAQF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,uB,CACxB,S,CACA,S,CACE,2B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,4B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAfF,Q,CAAwB,wB,CACxB,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,8B,CAEF,S,CACA,S,CACE,+B,CAEF,S,CACA,S,CACE,6B,CAfF,Q,CAAwB,sB,CACxB,S,CACA,S,CACE,0B,CAEF,S,CACA,S,CACE,4B,CAEF,S,CACA,S,CACE,6B,CAEF,S,CACA,S,CACE,2B,CAMN,U,CAAmB,qB,CACnB,W,CACA,W,CACE,yB,CAEF,W,CACA,W,CACE,2B,CAEF,W,CACA,W,CACE,4B,CAEF,W,CACA,W,CACE,4B","file":"test/fixture/bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.2.1 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} 2 | -------------------------------------------------------------------------------- /test/fixture/usage.css: -------------------------------------------------------------------------------- 1 | .foo { p: 1 } 2 | #foo { p: 2 } 3 | foo { p: 3 } 4 | .foo, .bar, #foo, #bar, foo, bar { p: 4 } 5 | * { p: 5 } 6 | :not(.foo), :not(.bar) { p: 6 } 7 | -------------------------------------------------------------------------------- /test/fixture/usage.css.json: -------------------------------------------------------------------------------- 1 | { 2 | "blacklist": { 3 | "tags": ["foo"], 4 | "ids": ["foo"], 5 | "classes": ["foo"] 6 | }, 7 | "tags": ["foo", "bar"], 8 | "ids": ["foo", "bar"], 9 | "classes": ["foo", "bar"] 10 | } 11 | -------------------------------------------------------------------------------- /test/fixture/usage.min.css: -------------------------------------------------------------------------------- 1 | #bar,.bar,bar{p:4}*{p:5}:not(.bar),:not(.foo){p:6} 2 | -------------------------------------------------------------------------------- /test/fixture/write-hack/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | --------------------------------------------------------------------------------