From 0ad50a20b6c456f5ae2b5b0d727fe5dd3c61034e Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Sat, 19 Sep 2020 19:24:34 +0200 Subject: [PATCH] Ported framework from Stairs project --- .gitignore | 1 + devserver.js | 112 + gulp-cppstringify.js | 168 + gulpfile.js | 304 ++ package-lock.json | 8721 +++++++++++++++++++++++++++++++++ package.json | 42 + platformio.ini | 20 + src/assets/css.h | 106 + src/assets/html.h | 108 + src/assets/js.h | 2385 +++++++++ src/assets/version.h | 13 + src/charproperties.cpp | 44 + src/charproperties.h | 15 + src/config.cpp | 30 + src/config.h | 45 + src/debug.cpp | 18 + src/debug.h | 24 + src/global.cpp | 20 + src/global.h | 28 + src/main.cpp | 217 + src/main.debug.h | 68 + src/main.led.h | 70 + src/main.wifi.h | 121 + src/server/api.cpp | 192 + src/server/api.h | 13 + src/server/firmware.cpp | 74 + src/server/firmware.h | 13 + src/server/settings.cpp | 252 + src/server/settings.h | 13 + src/server/shared.cpp | 10 + src/server/shared.h | 15 + src/server/static.cpp | 29 + src/server/static.h | 14 + src/settings/abstractjson.cpp | 72 + src/settings/abstractjson.h | 28 + src/settings/connection.cpp | 97 + src/settings/connection.h | 74 + src/settings/system.cpp | 113 + src/settings/system.h | 47 + web/app.js | 555 +++ web/dist/bundle.css | 1 + web/dist/bundle.js | 1 + web/index.html | 172 + web/lang.js | 191 + web/logo.ai | 333 ++ web/logo.png | Bin 0 -> 462 bytes web/site.scss | 694 +++ web/variables.scss | 48 + 48 files changed, 15731 insertions(+) create mode 100644 devserver.js create mode 100644 gulp-cppstringify.js create mode 100644 gulpfile.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 platformio.ini create mode 100644 src/assets/css.h create mode 100644 src/assets/html.h create mode 100644 src/assets/js.h create mode 100644 src/assets/version.h create mode 100644 src/charproperties.cpp create mode 100644 src/charproperties.h create mode 100644 src/config.cpp create mode 100644 src/config.h create mode 100644 src/debug.cpp create mode 100644 src/debug.h create mode 100644 src/global.cpp create mode 100644 src/global.h create mode 100644 src/main.cpp create mode 100644 src/main.debug.h create mode 100644 src/main.led.h create mode 100644 src/main.wifi.h create mode 100644 src/server/api.cpp create mode 100644 src/server/api.h create mode 100644 src/server/firmware.cpp create mode 100644 src/server/firmware.h create mode 100644 src/server/settings.cpp create mode 100644 src/server/settings.h create mode 100644 src/server/shared.cpp create mode 100644 src/server/shared.h create mode 100644 src/server/static.cpp create mode 100644 src/server/static.h create mode 100644 src/settings/abstractjson.cpp create mode 100644 src/settings/abstractjson.h create mode 100644 src/settings/connection.cpp create mode 100644 src/settings/connection.h create mode 100644 src/settings/system.cpp create mode 100644 src/settings/system.h create mode 100644 web/app.js create mode 100644 web/dist/bundle.css create mode 100644 web/dist/bundle.js create mode 100644 web/index.html create mode 100644 web/lang.js create mode 100644 web/logo.ai create mode 100644 web/logo.png create mode 100644 web/site.scss create mode 100644 web/variables.scss diff --git a/.gitignore b/.gitignore index aeaebb2..cfcfb15 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ +node_modules .pio \ No newline at end of file diff --git a/devserver.js b/devserver.js new file mode 100644 index 0000000..7201233 --- /dev/null +++ b/devserver.js @@ -0,0 +1,112 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +const express = require('express'); +const bodyParser = require('body-parser'); + +const app = express(); + +app.use(bodyParser.json()); +app.use(express.static('web')); +app.use(express.static('web/dist')); + +app.get('/api/status', function(req, res) +{ + res.send({ + systemID: 'dev-server', + version: 'dev-server', + resetReason: 2, + stackTrace: true + }); +}); + +app.get('/api/connection', function(req, res) +{ + res.send({ + hostname: 'dev-server', + accesspoint: true, + station: true, + ssid: 'MyWiFiSSID', + password: 'supersecret', + dhcp: true, + ip: '192.168.1.234', + subnetmask: '255.255.255.0', + gateway: '192.168.1.0' + }); +}); + +app.get('/api/connection/status', function(req, res) +{ + res.send({ + "ap": { + "enabled": true, + "ip": "192.168.4.1" + }, + "station": { + "enabled": true, + "status": 1, + "ip": "0.0.0.0" + } + }); +}); + +app.post('/api/connection', function(req, res) +{ + res.sendStatus(200); +}); + +app.post('/api/firmware', function(req, res) +{ + res.sendStatus(200); +}); + + +var system = { + pins: { + ledAP: 4, + ledSTA: 5, + apButton: 2, + } +}; + +app.get('/api/system', function(req, res) +{ + res.send(system); +}); + +app.post('/api/system', function(req, res) +{ + var body = req.body; + if (body) + { + system.pins.ledAP = body.pins.ledAP || system.pins.ledAP; + system.pins.ledSTA = body.pins.ledSTA || system.pins.ledSTA; + system.pins.apButton = body.pins.apButton || system.pins.apButton; + + res.sendStatus(200); + } + else + res.sendStatus(400); +}); + + + +app.get('/api/stacktrace/get', function(req, res) +{ + res.send("Nothing to see here, move along!"); +}); + +app.get('/api/stacktrace/delete', function(req, res) +{ + res.sendStatus(200); +}); + + +app.listen(3000, function() +{ + console.log('Development server listening on port 3000') + console.log('Press Ctrl-C to stop') +}); \ No newline at end of file diff --git a/gulp-cppstringify.js b/gulp-cppstringify.js new file mode 100644 index 0000000..e21af9e --- /dev/null +++ b/gulp-cppstringify.js @@ -0,0 +1,168 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +'use strict'; + +// Borrowed heavily from gulp-concat: +// https://github.com/contra/gulp-concat/ +// +// It's very much hardcoded for the ESP8266 Arduino at the moment, +// but feel free to hack away at it if you need it for other purposes! +var through = require('through2'); +var path = require('path'); +var File = require('vinyl'); +var _ = require('lodash'); +var Readable = require('stream').Readable; + + +function escapeContent(content, lineLength) +{ + var lineRegexp = new RegExp('(.{1,' + (lineLength - 1) + '}[^\\\\])', 'g'); + + return content + .replace(/\\/g, '\\\\') + .replace(/"/g, '\\"') + .replace(/\r?\n/g, '\\r\\n') + .replace(lineRegexp, ' "$1"\r\n') + .replace(/\r\n$/, ''); +}; + + +function escapeContentAsByteArray(content, lineLength) +{ + var bytesPerLine = Math.floor(lineLength / 5); + var lineRegexp = new RegExp('((?:0x..,){1,' + bytesPerLine + '})', 'g'); + + return content + .replace(/(.{2})/g, '0x$1,') + .replace(lineRegexp, ' $1\r\n') + .replace(/,\r\n$/, ''); +}; + + +function encodeFile(file, opts) +{ + var variableName; + + if (opts.map.hasOwnProperty(file.relative)) + variableName = opts.map[file.relative]; + else + variableName = file.relative.replace(/[^a-zA-Z0-9_]/g, '_'); + + if (variableName === null) + return ''; + + variableName = opts.variablePrefix + variableName; + + var escapedContent; + var output; + + if (opts.byteArray) + { + escapedContent = escapeContentAsByteArray(file.contents.toString('hex'), opts.lineLength); + output = "const uint8_t " + variableName + "[] PROGMEM = {\r\n" + escapedContent + "};\r\n\r\n"; + } + else + { + escapedContent = escapeContent(file.contents.toString('utf-8'), opts.lineLength); + output = "const char " + variableName + "[] PROGMEM = \r\n" + escapedContent + ";\r\n\r\n"; + } + + return output; +} + + +module.exports = function(file, opts) +{ + if (!file) + throw new Error('gulp-cppstringify: Missing file option'); + + opts = _.extend({ + map: [], + headerDefineName: '__Embedded', + variablePrefix: 'Embedded', + lineLength: 100, + byteArray: false + }, opts || {}); + + var fileName; + var latestFile = false; + var latestMod = 0; + var output = null; + + + if (typeof file === 'string') + fileName = file; + else if (typeof file.path === 'string') + fileName = path.basename(file.path); + else + throw new Error('gulp-cppstringify: Missing path in file options'); + + + function bufferContents(file, enc, cb) + { + if (file.isNull()) + { + cb(); + return; + } + + if (file.isStream()) + { + this.emit('error', new Error('gulp-cppstringify: Streaming not supported')); + cb(); + return; + } + + if (!latestMod || file.stat && file.stat.mtime > latestMod) + { + latestFile = file; + latestMod = file.stat && file.stat.mtime; + } + + if (output == null) + { + output = new Readable(); + output._read = function noop() {}; + + output.push("#ifndef " + opts.headerDefineName + "\r\n"); + output.push("#define " + opts.headerDefineName + "\r\n\r\n"); + output.push("#include \r\n\r\n"); + } + + output.push(encodeFile(file, opts)); + cb(); + } + + + function endStream(cb) + { + if (!latestFile) + { + cb(); + return; + } + + var headerFile; + + if (typeof file === 'string') + { + headerFile = latestFile.clone({contents: false}); + headerFile.path = path.join(latestFile.base, file); + } + else + headerFile = new File(file); + + output.push("#endif\r\n"); + output.push(null); + headerFile.contents = output; + + this.push(headerFile); + cb(); + } + + return through.obj(bufferContents, endStream); +}; \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..e8edebb --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,304 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +'use strict'; + +const gulp = require('gulp'); +const htmlmin = require('gulp-htmlmin'); +const cppstringify = require('./gulp-cppstringify'); +const fs = require('fs'); +const plumber = require('gulp-plumber'); +const sass = require('gulp-sass'); +const cleanCSS = require('gulp-clean-css'); +const watch = require('gulp-debounced-watch'); +const uglify = require('gulp-uglify'); +const concat = require('gulp-concat'); +const print = require('gulp-print'); +const path = require('path'); +const gzip = require('gulp-gzip'); + + +const config = { + assetsPath: 'web/', + distPath: 'web/dist/', + outputPath: 'src/assets/', + + firmwareArtifact: '.pioenvs/esp12e/firmware.bin', + firmwareOutputPath: 'bin/' +}; + + +const HTMLMap = { + 'index.html': 'Index' +}; + +const JSMap = { + 'bundle.js': 'BundleJS' +}; + +const CSSMap = { + 'bundle.css': 'BundleCSS' +}; + + +// There is an issue in the AsyncWebServer where it's apparantly running +// out of memory on simultaneous requests. We'll work around it by +// merging all the JS into one big file. +// +// https://github.com/me-no-dev/ESPAsyncWebServer/issues/256 +const JSSrc = [ + 'node_modules/axios/dist/axios.min.js', + 'node_modules/vue/dist/vue.min.js', + 'node_modules/vue-i18n/dist/vue-i18n.min.js', + 'web/lang.js', + 'web/app.js' +]; + +const SCSSSrc = [ + 'web/site.scss' +] + + + + +gulp.task('embedHTML', () => +{ + return gulp.src(config.assetsPath + '*.html') + .pipe(print(filepath => { return 'HTML: ' + filepath; })) + .pipe(htmlmin({ + collapseWhitespace: true, + removeComments: true, + minifyCSS: true, + minifyJS: true + })) + .pipe(gzip({ append: false })) + .pipe(cppstringify('html.h', { + headerDefineName: '__assets_html', + map: HTMLMap, + byteArray: true + })) + .pipe(gulp.dest(config.outputPath)); +}); + + +gulp.task('compileScss', () => +{ + return gulp.src(SCSSSrc) + .pipe(plumber({ + errorHandler: error => + { + console.log(error.toString()); + this.emit('end'); + }})) + .pipe(print(filepath => { return 'SCSS: ' + filepath })) + .pipe(sass({ + includePaths: ['node_modules/milligram/src'] + })) + .pipe(cleanCSS({compatibility: 'ie9'})) + .pipe(concat('bundle.css')) + .pipe(gulp.dest(config.distPath)); +}); + + +gulp.task('compileJS', () => +{ + return gulp.src(JSSrc) + .pipe(plumber({ + errorHandler: error => + { + console.log(error.toString()); + this.emit('end'); + }})) + .pipe(print(filepath => { return 'JS: ' + filepath })) + .pipe(concat('bundle.js')) + .pipe(uglify()) + .pipe(gulp.dest(config.distPath)); +}); + + +gulp.task('embedJS', gulp.series('compileJS', () => +{ + return gulp.src([config.distPath + 'bundle.js']) + .pipe(gzip({ append: false })) + .pipe(cppstringify('js.h', { + headerDefineName: '__assets_js', + map: JSMap, + byteArray: true + })) + .pipe(gulp.dest(config.outputPath)); +})); + + +gulp.task('embedCSS', gulp.series('compileScss', () => +{ + return gulp.src([config.distPath + 'bundle.css']) + .pipe(gzip({ append: false })) + .pipe(cppstringify('css.h', { + headerDefineName: '__embed_css', + map: CSSMap, + byteArray: true + })) + .pipe(gulp.dest(config.outputPath)); +})); + + +gulp.task('watch', gulp.series( + 'compileScss', + 'compileJS', + () => + { + watch(config.assetsPath + '*.scss', () => { gulp.series('compileScss')(); }); + watch(config.assetsPath + '*.js', () => { gulp.series('compileJS')(); }); + } +)); + + + +var version = false; +function getVersion(callback) +{ + return new Promise((resolve, reject) => + { + if (version !== false) + { + resolve(version); + return; + } + + var versionData = ''; + const cmd = spawn('gitversion'); + + cmd.stdout.on('data', data => + { + versionData += data; + }); + + cmd.stderr.on('data', data => + { + console.log(data.toString().trim()); + }); + + cmd.on('exit', code => + { + if (code != 0) + { + reject(code); + return; + } + + var version = JSON.parse(versionData); + Promise.resolve(callback(version)) + .then(resolve) + .catch(reject); + }); + }); +} + + +gulp.task('embedVersion', () => +{ + return getVersion(version => + { + return new Promise((resolve, reject) => + { + var headerFile = "#ifndef __assets_version\r\n"; + headerFile += "#define __assets_version\r\n\r\n"; + headerFile += "const uint8_t VersionMajor = " + version.Major + ";\r\n"; + headerFile += "const uint8_t VersionMinor = " + version.Minor + ";\r\n"; + headerFile += "const uint8_t VersionPatch = " + version.Patch + ";\r\n"; + headerFile += "const uint8_t VersionMetadata = " + (version.BuildMetaData ? version.BuildMetaData : '0') + ";\r\n"; + + headerFile += "const char VersionBranch[] = \"" + version.BranchName + "\";\r\n"; + + headerFile += "const char VersionSemVer[] = \"" + version.SemVer + "\";\r\n"; + headerFile += "const char VersionFullSemVer[] = \"" + version.FullSemVer + "\";\r\n"; + + headerFile += "const char VersionCommitDate[] = \"" + version.CommitDate + "\";\r\n"; + + headerFile += "\r\n#endif\r\n"; + + fs.writeFile(config.outputPath + 'version.h', headerFile, err => + { + if (err) + reject(err); + else + resolve(); + }); + }) + }); +}); + + +gulp.task('copyBinary', () => +{ + if (!fs.existsSync(config.firmwareOutputPath)) + fs.mkdirSync(config.firmwareOutputPath, '0777', true); + + return getVersion(version => + { + return new Promise((resolve, reject) => + { + var target = path.join(config.firmwareOutputPath, version.FullSemVer + '.bin'); + console.log('Target: ' + target); + + var reader = fs.createReadStream(config.firmwareArtifact); + reader.pipe(fs.createWriteStream(target)); + reader.on('end', resolve); + }); + }); +}); + + +gulp.task('embedAssets', gulp.series('embedHTML', 'embedJS', 'embedCSS', 'embedVersion')); + + + +// PlatformIO +const spawn = require('child_process').spawn; +const argv = require('yargs').argv; + +var platformio = function(target) +{ + var args = ['run']; + if ("e" in argv) + { + args.push('-e'); + args.push(argv.e); + } + + if ("p" in argv) + { + args.push('--upload-port'); + args.push(argv.p); + } + + if (target) + { + args.push('-t'); + args.push(target); + } + + const cmd = spawn('platformio', args); + cmd.stdout.on('data', data => + { + console.log(data.toString().trim()); + }); + + cmd.stderr.on('data', data => + { + console.log(data.toString().trim()); + }); + + cmd.on('exit', code => + { + if (code != 0) return; + gulp.start('copyBinary'); + }); +} + +gulp.task('upload', gulp.series('embedAssets', () => { platformio('upload'); })); +gulp.task('build', gulp.series('embedAssets', () => { platformio(false); })); +gulp.task('default', gulp.series('embedAssets')); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2b0a1a3 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,8721 @@ +{ + "name": "rgbwifi", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "ajv": { + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "requires": { + "buffer-equal": "^1.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + }, + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "requires": { + "async-done": "^1.2.2" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", + "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", + "dev": true + }, + "axios": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz", + "integrity": "sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==", + "dev": true, + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "bufferstreams": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.3.tgz", + "integrity": "sha512-HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "child_process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", + "integrity": "sha1-sffn/HPSXn/R1FWtyU4UODAYK1o=", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "copy-props": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", + "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", + "requires": { + "each-props": "^1.3.0", + "is-plain-object": "^2.0.1" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "dev": true + }, + "debounce-hashed": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/debounce-hashed/-/debounce-hashed-0.1.2.tgz", + "integrity": "sha1-oN/jB8Gn2zD2kRyM+8DvhB831K8=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "requires": { + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "~1.1.9" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.0-next.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz", + "integrity": "sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escalade": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.0.tgz", + "integrity": "sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "first-chunk-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + } + }, + "glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "requires": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "requires": { + "sparkles": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yargs": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", + "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "5.0.0-security.0" + } + }, + "yargs-parser": { + "version": "5.0.0-security.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", + "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + } + } + }, + "gulp-clean-css": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.10.0.tgz", + "integrity": "sha512-7Isf9Y690o/Q5MVjEylH1H7L8WeZ89woW7DnhD5unTintOdZb67KdOayRgp9trUFo+f9UyJtuatV42e/+kghPg==", + "dev": true, + "requires": { + "clean-css": "4.2.1", + "plugin-error": "1.0.1", + "through2": "2.0.3", + "vinyl-sourcemaps-apply": "0.2.1" + }, + "dependencies": { + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + } + } + }, + "gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "requires": { + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^2.0.0" + } + }, + "gulp-debounced-watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/gulp-debounced-watch/-/gulp-debounced-watch-1.0.4.tgz", + "integrity": "sha1-WkfU4kzkY2XOguysMqKjA+QysSo=", + "dev": true, + "requires": { + "debounce-hashed": "^0.1.1", + "gulp-watch": "^4.3.4", + "object-assign": "^3.0.0" + } + }, + "gulp-gzip": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/gulp-gzip/-/gulp-gzip-1.4.2.tgz", + "integrity": "sha512-ZIxfkUwk2XmZPTT9pPHrHUQlZMyp9nPhg2sfoeN27mBGpi7OaHnOD+WCN41NXjfJQ69lV1nQ9LLm1hYxx4h3UQ==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "bytes": "^3.0.0", + "fancy-log": "^1.3.2", + "plugin-error": "^1.0.0", + "stream-to-array": "^2.3.0", + "through2": "^2.0.3" + } + }, + "gulp-htmlmin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-htmlmin/-/gulp-htmlmin-3.0.0.tgz", + "integrity": "sha1-GeqAAtEjHWsfGKEtIPKmand3D7M=", + "dev": true, + "requires": { + "bufferstreams": "^1.1.0", + "gulp-util": "^3.0.7", + "html-minifier": "^3.0.3", + "object-assign": "^4.0.1", + "readable-stream": "^2.0.2", + "tryit": "^1.0.1" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "gulp-plumber": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/gulp-plumber/-/gulp-plumber-1.2.1.tgz", + "integrity": "sha512-mctAi9msEAG7XzW5ytDVZ9PxWMzzi1pS2rBH7lA095DhMa6KEXjm+St0GOCc567pJKJ/oCvosVAZEpAey0q2eQ==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "fancy-log": "^1.3.2", + "plugin-error": "^0.1.2", + "through2": "^2.0.3" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + } + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dev": true, + "requires": { + "kind-of": "^1.1.0" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "dev": true + }, + "plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "dev": true, + "requires": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + } + } + } + }, + "gulp-print": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/gulp-print/-/gulp-print-2.0.1.tgz", + "integrity": "sha1-Gs7ljqyK8tPErTMp2+RldYOTxBQ=", + "dev": true, + "requires": { + "gulp-util": "^3.0.6", + "map-stream": "~0.0.6" + } + }, + "gulp-sass": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.2.1.tgz", + "integrity": "sha512-UATbRpSDsyXCnpYSPBUEvdvtSEzksJs7/oQ0CujIpzKqKrO6vlnYwhX2UTsGrf4rNLwqlSSaM271It0uHYvJ3Q==", + "dev": true, + "requires": { + "gulp-util": "^3.0", + "lodash.clonedeep": "^4.3.2", + "node-sass": "^4.8.3", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-uglify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", + "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "extend-shallow": "^3.0.2", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "isobject": "^3.0.1", + "make-error-cause": "^1.1.1", + "safe-buffer": "^5.1.2", + "through2": "^2.0.0", + "uglify-js": "^3.0.5", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "gulp-watch": { + "version": "4.3.11", + "resolved": "https://registry.npmjs.org/gulp-watch/-/gulp-watch-4.3.11.tgz", + "integrity": "sha1-Fi/FY96fx3DpH5p845VVE6mhGMA=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "chokidar": "^1.6.1", + "glob-parent": "^3.0.1", + "gulp-util": "^3.0.7", + "object-assign": "^4.1.0", + "path-is-absolute": "^1.0.1", + "readable-stream": "^2.2.2", + "slash": "^1.0.0", + "vinyl": "^1.2.0", + "vinyl-file": "^2.0.0" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "requires": { + "glogg": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + } + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.1.tgz", + "integrity": "sha512-wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg==" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" + }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=" + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true, + "requires": { + "make-error": "^1.2.0" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "dependencies": { + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "0.0.2" + } + }, + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "requires": { + "once": "^1.3.2" + } + }, + "npm": { + "version": "6.14.8", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.8.tgz", + "integrity": "sha512-HBZVBMYs5blsj94GTeQZel7s9odVuuSUHy1+AlZh7rPVux1os2ashvEGLy/STNK7vUjbrCg5Kq9/GXisJgdf6A==", + "requires": { + "JSONStream": "^1.3.5", + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "^2.0.0", + "archy": "~1.0.0", + "bin-links": "^1.1.8", + "bluebird": "^3.5.5", + "byte-size": "^5.0.1", + "cacache": "^12.0.3", + "call-limit": "^1.1.1", + "chownr": "^1.1.4", + "ci-info": "^2.0.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.1", + "cmd-shim": "^3.0.3", + "columnify": "~1.5.4", + "config-chain": "^1.1.12", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.3.1", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.8.8", + "iferr": "^1.0.2", + "imurmurhash": "*", + "infer-owner": "^1.0.4", + "inflight": "~1.0.6", + "inherits": "^2.0.4", + "ini": "^1.3.5", + "init-package-json": "^1.10.3", + "is-cidr": "^3.0.0", + "json-parse-better-errors": "^1.0.2", + "lazy-property": "~1.0.0", + "libcipm": "^4.0.8", + "libnpm": "^3.0.1", + "libnpmaccess": "^3.0.2", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "libnpx": "^10.2.4", + "lock-verify": "^2.1.0", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^5.1.1", + "meant": "^1.0.2", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.5", + "move-concurrently": "^1.0.1", + "node-gyp": "^5.1.0", + "nopt": "^4.0.3", + "normalize-package-data": "^2.5.0", + "npm-audit-report": "^1.3.3", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "^3.0.2", + "npm-lifecycle": "^3.1.5", + "npm-package-arg": "^6.1.1", + "npm-packlist": "^1.4.8", + "npm-pick-manifest": "^3.0.2", + "npm-profile": "^4.0.4", + "npm-registry-fetch": "^4.0.7", + "npm-user-validate": "~1.0.0", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.1", + "osenv": "^0.1.5", + "pacote": "^9.5.12", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.8.2", + "qw": "~1.0.1", + "read": "~1.0.7", + "read-cmd-shim": "^1.0.5", + "read-installed": "~4.0.3", + "read-package-json": "^2.1.1", + "read-package-tree": "^5.3.1", + "readable-stream": "^3.6.0", + "readdir-scoped-modules": "^1.1.0", + "request": "^2.88.0", + "retry": "^0.12.0", + "rimraf": "^2.7.1", + "safe-buffer": "^5.1.2", + "semver": "^5.7.1", + "sha": "^3.0.0", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.1", + "stringify-package": "^1.0.1", + "tar": "^4.4.13", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "^1.1.1", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.3.3", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.7.0", + "write-file-atomic": "^2.4.3" + }, + "dependencies": { + "JSONStream": { + "version": "1.3.5", + "bundled": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abbrev": { + "version": "1.1.1", + "bundled": true + }, + "agent-base": { + "version": "4.3.0", + "bundled": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "bundled": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "5.5.2", + "bundled": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-align": { + "version": "2.0.0", + "bundled": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "ansi-styles": { + "version": "3.2.1", + "bundled": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true + }, + "ansistyles": { + "version": "0.1.3", + "bundled": true + }, + "aproba": { + "version": "2.0.0", + "bundled": true + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "asap": { + "version": "2.0.6", + "bundled": true + }, + "asn1": { + "version": "0.2.4", + "bundled": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "bundled": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true + }, + "aws-sign2": { + "version": "0.7.0", + "bundled": true + }, + "aws4": { + "version": "1.8.0", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bin-links": { + "version": "1.1.8", + "bundled": true, + "requires": { + "bluebird": "^3.5.3", + "cmd-shim": "^3.0.0", + "gentle-fs": "^2.3.0", + "graceful-fs": "^4.1.15", + "npm-normalize-package-bin": "^1.0.0", + "write-file-atomic": "^2.3.0" + } + }, + "bluebird": { + "version": "3.5.5", + "bundled": true + }, + "boxen": { + "version": "1.3.0", + "bundled": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.0.0", + "bundled": true + }, + "builtins": { + "version": "1.0.3", + "bundled": true + }, + "byline": { + "version": "5.0.0", + "bundled": true + }, + "byte-size": { + "version": "5.0.1", + "bundled": true + }, + "cacache": { + "version": "12.0.3", + "bundled": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "call-limit": { + "version": "1.1.1", + "bundled": true + }, + "camelcase": { + "version": "4.1.0", + "bundled": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true + }, + "chalk": { + "version": "2.4.1", + "bundled": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chownr": { + "version": "1.1.4", + "bundled": true + }, + "ci-info": { + "version": "2.0.0", + "bundled": true + }, + "cidr-regex": { + "version": "2.0.10", + "bundled": true, + "requires": { + "ip-regex": "^2.1.0" + } + }, + "cli-boxes": { + "version": "1.0.0", + "bundled": true + }, + "cli-columns": { + "version": "3.1.2", + "bundled": true, + "requires": { + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" + } + }, + "cli-table3": { + "version": "0.5.1", + "bundled": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "bundled": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "bundled": true + }, + "cmd-shim": { + "version": "3.0.3", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "co": { + "version": "4.6.0", + "bundled": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "color-convert": { + "version": "1.9.1", + "bundled": true, + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "bundled": true + }, + "colors": { + "version": "1.3.3", + "bundled": true, + "optional": true + }, + "columnify": { + "version": "1.5.4", + "bundled": true, + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "combined-stream": { + "version": "1.0.6", + "bundled": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "concat-stream": { + "version": "1.6.2", + "bundled": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "config-chain": { + "version": "1.1.12", + "bundled": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "3.1.5", + "bundled": true, + "requires": { + "dot-prop": "^4.2.1", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "copy-concurrently": { + "version": "1.0.5", + "bundled": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "iferr": { + "version": "0.1.5", + "bundled": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "create-error-class": { + "version": "3.0.2", + "bundled": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "bundled": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "bundled": true + } + } + }, + "crypto-random-string": { + "version": "1.0.0", + "bundled": true + }, + "cyclist": { + "version": "0.2.2", + "bundled": true + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true + } + } + }, + "debuglog": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true + }, + "defaults": { + "version": "1.0.3", + "bundled": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "bundled": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true + }, + "detect-indent": { + "version": "5.0.0", + "bundled": true + }, + "detect-newline": { + "version": "2.1.0", + "bundled": true + }, + "dezalgo": { + "version": "1.0.3", + "bundled": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "dot-prop": { + "version": "4.2.1", + "bundled": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "5.0.1", + "bundled": true + }, + "duplexer3": { + "version": "0.1.4", + "bundled": true + }, + "duplexify": { + "version": "3.6.0", + "bundled": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editor": { + "version": "1.0.0", + "bundled": true + }, + "emoji-regex": { + "version": "7.0.3", + "bundled": true + }, + "encoding": { + "version": "0.1.12", + "bundled": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "2.2.0", + "bundled": true + }, + "err-code": { + "version": "1.1.2", + "bundled": true + }, + "errno": { + "version": "0.1.7", + "bundled": true, + "requires": { + "prr": "~1.0.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "bundled": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "bundled": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.8", + "bundled": true + }, + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "bundled": true + } + } + }, + "extend": { + "version": "3.0.2", + "bundled": true + }, + "extsprintf": { + "version": "1.3.0", + "bundled": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "bundled": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "bundled": true + }, + "figgy-pudding": { + "version": "3.5.1", + "bundled": true + }, + "find-npm-prefix": { + "version": "1.0.2", + "bundled": true + }, + "flush-write-stream": { + "version": "1.0.3", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true + }, + "form-data": { + "version": "2.3.2", + "bundled": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "requires": { + "minipass": "^2.6.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "fs-vacuum": { + "version": "1.2.10", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "function-bind": { + "version": "1.1.1", + "bundled": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "genfun": { + "version": "5.0.0", + "bundled": true + }, + "gentle-fs": { + "version": "2.3.1", + "bundled": true, + "requires": { + "aproba": "^1.1.2", + "chownr": "^1.1.2", + "cmd-shim": "^3.0.3", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "infer-owner": "^1.0.4", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "iferr": { + "version": "0.1.5", + "bundled": true + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "bundled": true + }, + "get-stream": { + "version": "4.1.0", + "bundled": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "bundled": true, + "requires": { + "ini": "^1.3.4" + } + }, + "got": { + "version": "6.7.1", + "bundled": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "bundled": true + } + } + }, + "graceful-fs": { + "version": "4.2.4", + "bundled": true + }, + "har-schema": { + "version": "2.0.0", + "bundled": true + }, + "har-validator": { + "version": "5.1.0", + "bundled": true, + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "bundled": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true + }, + "has-symbols": { + "version": "1.0.0", + "bundled": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true + }, + "hosted-git-info": { + "version": "2.8.8", + "bundled": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "bundled": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "bundled": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + } + }, + "http-signature": { + "version": "1.2.0", + "bundled": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "bundled": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, + "humanize-ms": { + "version": "1.2.1", + "bundled": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "bundled": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "1.0.2", + "bundled": true + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "infer-owner": { + "version": "1.0.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true + }, + "init-package-json": { + "version": "1.10.3", + "bundled": true, + "requires": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "ip": { + "version": "1.1.5", + "bundled": true + }, + "ip-regex": { + "version": "2.1.0", + "bundled": true + }, + "is-callable": { + "version": "1.1.4", + "bundled": true + }, + "is-ci": { + "version": "1.2.1", + "bundled": true, + "requires": { + "ci-info": "^1.5.0" + }, + "dependencies": { + "ci-info": { + "version": "1.6.0", + "bundled": true + } + } + }, + "is-cidr": { + "version": "3.0.0", + "bundled": true, + "requires": { + "cidr-regex": "^2.0.10" + } + }, + "is-date-object": { + "version": "1.0.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "bundled": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "bundled": true + }, + "is-obj": { + "version": "1.0.1", + "bundled": true + }, + "is-path-inside": { + "version": "1.0.1", + "bundled": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-redirect": { + "version": "1.0.0", + "bundled": true + }, + "is-regex": { + "version": "1.0.4", + "bundled": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-retry-allowed": { + "version": "1.2.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "is-symbol": { + "version": "1.0.2", + "bundled": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "bundled": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true + }, + "jsonparse": { + "version": "1.3.1", + "bundled": true + }, + "jsprim": { + "version": "1.4.1", + "bundled": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "latest-version": { + "version": "3.1.0", + "bundled": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lazy-property": { + "version": "1.0.0", + "bundled": true + }, + "libcipm": { + "version": "4.0.8", + "bundled": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "ini": "^1.3.5", + "lock-verify": "^2.1.0", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^9.1.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" + } + }, + "libnpm": { + "version": "3.0.1", + "bundled": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.3", + "find-npm-prefix": "^1.0.2", + "libnpmaccess": "^3.0.2", + "libnpmconfig": "^1.2.1", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmpublish": "^1.1.2", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "lock-verify": "^2.0.2", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "npm-profile": "^4.0.2", + "npm-registry-fetch": "^4.0.0", + "npmlog": "^4.1.2", + "pacote": "^9.5.3", + "read-package-json": "^2.0.13", + "stringify-package": "^1.0.0" + } + }, + "libnpmaccess": { + "version": "3.0.2", + "bundled": true, + "requires": { + "aproba": "^2.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmconfig": { + "version": "1.2.1", + "bundled": true, + "requires": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "bundled": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.0", + "bundled": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "bundled": true + } + } + }, + "libnpmhook": { + "version": "5.0.3", + "bundled": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmorg": { + "version": "1.0.1", + "bundled": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmpublish": { + "version": "1.1.2", + "bundled": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "lodash.clonedeep": "^4.5.0", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0", + "semver": "^5.5.1", + "ssri": "^6.0.1" + } + }, + "libnpmsearch": { + "version": "2.0.2", + "bundled": true, + "requires": { + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmteam": { + "version": "1.0.2", + "bundled": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpx": { + "version": "10.2.4", + "bundled": true, + "requires": { + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^14.2.3" + } + }, + "lock-verify": { + "version": "2.1.0", + "bundled": true, + "requires": { + "npm-package-arg": "^6.1.0", + "semver": "^5.4.1" + } + }, + "lockfile": { + "version": "1.0.4", + "bundled": true, + "requires": { + "signal-exit": "^3.0.2" + } + }, + "lodash._baseindexof": { + "version": "3.1.0", + "bundled": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "bundled": true, + "requires": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "lodash._bindcallback": { + "version": "3.0.1", + "bundled": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "bundled": true + }, + "lodash._createcache": { + "version": "3.1.2", + "bundled": true, + "requires": { + "lodash._getnative": "^3.0.0" + } + }, + "lodash._createset": { + "version": "4.0.3", + "bundled": true + }, + "lodash._getnative": { + "version": "3.9.1", + "bundled": true + }, + "lodash._root": { + "version": "3.0.1", + "bundled": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "bundled": true + }, + "lodash.restparam": { + "version": "3.6.1", + "bundled": true + }, + "lodash.union": { + "version": "4.6.0", + "bundled": true + }, + "lodash.uniq": { + "version": "4.5.0", + "bundled": true + }, + "lodash.without": { + "version": "4.4.0", + "bundled": true + }, + "lowercase-keys": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "5.1.1", + "bundled": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "5.0.2", + "bundled": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "meant": { + "version": "1.0.2", + "bundled": true + }, + "mime-db": { + "version": "1.35.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.19", + "bundled": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "bundled": true + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "requires": { + "minipass": "^2.9.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "mississippi": { + "version": "3.0.0", + "bundled": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "bundled": true, + "requires": { + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "bundled": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "bundled": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true + } + } + }, + "ms": { + "version": "2.1.1", + "bundled": true + }, + "mute-stream": { + "version": "0.0.7", + "bundled": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-gyp": { + "version": "5.1.0", + "bundled": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + } + }, + "nopt": { + "version": "4.0.3", + "bundled": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "bundled": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "resolve": { + "version": "1.10.0", + "bundled": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "npm-audit-report": { + "version": "1.3.3", + "bundled": true, + "requires": { + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-cache-filename": { + "version": "1.0.2", + "bundled": true + }, + "npm-install-checks": { + "version": "3.0.2", + "bundled": true, + "requires": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "npm-lifecycle": { + "version": "3.1.5", + "bundled": true, + "requires": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.15", + "node-gyp": "^5.0.2", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "npm-logical-tree": { + "version": "1.2.1", + "bundled": true + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true + }, + "npm-package-arg": { + "version": "6.1.1", + "bundled": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.4.8", + "bundled": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "bundled": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-profile": { + "version": "4.0.4", + "bundled": true, + "requires": { + "aproba": "^1.1.2 || 2", + "figgy-pudding": "^3.4.1", + "npm-registry-fetch": "^4.0.0" + } + }, + "npm-registry-fetch": { + "version": "4.0.7", + "bundled": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "bundled": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npm-user-validate": { + "version": "1.0.0", + "bundled": true + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.9.0", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "object-keys": { + "version": "1.0.12", + "bundled": true + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "bundled": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "opener": { + "version": "1.5.1", + "bundled": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "package-json": { + "version": "4.0.1", + "bundled": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "pacote": { + "version": "9.5.12", + "bundled": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-is-inside": { + "version": "1.0.2", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-parse": { + "version": "1.0.6", + "bundled": true + }, + "performance-now": { + "version": "2.1.0", + "bundled": true + }, + "pify": { + "version": "3.0.0", + "bundled": true + }, + "prepend-http": { + "version": "1.0.4", + "bundled": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true + }, + "promise-inflight": { + "version": "1.0.1", + "bundled": true + }, + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "bundled": true + } + } + }, + "promzard": { + "version": "0.3.0", + "bundled": true, + "requires": { + "read": "1" + } + }, + "proto-list": { + "version": "1.2.4", + "bundled": true + }, + "protoduck": { + "version": "5.0.1", + "bundled": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "prr": { + "version": "1.0.1", + "bundled": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "psl": { + "version": "1.1.29", + "bundled": true + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "bundled": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "1.4.1", + "bundled": true + }, + "qrcode-terminal": { + "version": "0.12.0", + "bundled": true + }, + "qs": { + "version": "6.5.2", + "bundled": true + }, + "query-string": { + "version": "6.8.2", + "bundled": true, + "requires": { + "decode-uri-component": "^0.2.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "qw": { + "version": "1.0.1", + "bundled": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read": { + "version": "1.0.7", + "bundled": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-cmd-shim": { + "version": "1.0.5", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "read-installed": { + "version": "4.0.3", + "bundled": true, + "requires": { + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + } + }, + "read-package-json": { + "version": "2.1.1", + "bundled": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "bundled": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "bundled": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "registry-auth-token": { + "version": "3.4.0", + "bundled": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "bundled": true, + "requires": { + "rc": "^1.0.1" + } + }, + "request": { + "version": "2.88.0", + "bundled": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "2.0.0", + "bundled": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true + }, + "retry": { + "version": "0.12.0", + "bundled": true + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-queue": { + "version": "1.0.3", + "bundled": true, + "requires": { + "aproba": "^1.1.1" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true + }, + "semver": { + "version": "5.7.1", + "bundled": true + }, + "semver-diff": { + "version": "2.1.0", + "bundled": true, + "requires": { + "semver": "^5.0.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "sha": { + "version": "3.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "slide": { + "version": "1.1.6", + "bundled": true + }, + "smart-buffer": { + "version": "4.1.0", + "bundled": true + }, + "socks": { + "version": "2.3.3", + "bundled": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "bundled": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "bundled": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "sorted-object": { + "version": "2.0.1", + "bundled": true + }, + "sorted-union-stream": { + "version": "2.1.3", + "bundled": true, + "requires": { + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + }, + "dependencies": { + "from2": { + "version": "1.3.0", + "bundled": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "isarray": { + "version": "0.0.1", + "bundled": true + }, + "readable-stream": { + "version": "1.1.14", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true + } + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "bundled": true + }, + "split-on-first": { + "version": "1.1.0", + "bundled": true + }, + "sshpk": { + "version": "1.14.2", + "bundled": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "bundled": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-iterate": { + "version": "1.2.0", + "bundled": true, + "requires": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-shift": { + "version": "1.0.0", + "bundled": true + }, + "strict-uri-encode": { + "version": "2.0.0", + "bundled": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "bundled": true + } + } + }, + "stringify-package": { + "version": "1.0.1", + "bundled": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "term-size": { + "version": "1.2.0", + "bundled": true, + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "bundled": true + }, + "through": { + "version": "2.3.8", + "bundled": true + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "timed-out": { + "version": "4.0.1", + "bundled": true + }, + "tiny-relative-date": { + "version": "1.3.0", + "bundled": true + }, + "tough-cookie": { + "version": "2.4.3", + "bundled": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "bundled": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true + }, + "umask": { + "version": "1.1.0", + "bundled": true + }, + "unique-filename": { + "version": "1.1.1", + "bundled": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "bundled": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "bundled": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "bundled": true + }, + "unzip-response": { + "version": "2.0.1", + "bundled": true + }, + "update-notifier": { + "version": "2.5.0", + "bundled": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "bundled": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "util-extend": { + "version": "1.0.3", + "bundled": true + }, + "util-promisify": { + "version": "2.1.0", + "bundled": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "uuid": { + "version": "3.3.3", + "bundled": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "bundled": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "bundled": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "bundled": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "bundled": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "requires": { + "string-width": "^1.0.2" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "2.0.1", + "bundled": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "worker-farm": { + "version": "1.7.0", + "bundled": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "bundled": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "2.4.3", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "bundled": true + }, + "xtend": { + "version": "4.0.1", + "bundled": true + }, + "y18n": { + "version": "4.0.0", + "bundled": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true + }, + "yargs": { + "version": "14.2.3", + "bundled": true, + "requires": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "bundled": true + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "bundled": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "bundled": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "15.0.1", + "bundled": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "bundled": true + } + } + } + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", + "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "requires": { + "readable-stream": "^2.0.1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "dev": true, + "requires": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" + }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "requires": { + "value-or-function": "^3.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + } + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "requires": { + "sver-compat": "^1.5.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "stream-to-array": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=", + "dev": true, + "requires": { + "any-promise": "^1.1.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "dev": true, + "requires": { + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "requires": { + "through2": "^2.0.3" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", + "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "requires": { + "source-map": "^0.5.1" + } + }, + "vue": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", + "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==", + "dev": true + }, + "vue-i18n": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-7.8.1.tgz", + "integrity": "sha512-BzB+EAPo/iFyFn/GXd/qVdDe67jfk+gmQaWUKD5BANhUclGrFxzRExzW2pYEAbhNm2pg0F12Oo+gL2IMLDcTAw==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.0.3.tgz", + "integrity": "sha512-6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA==", + "dev": true, + "requires": { + "cliui": "^7.0.0", + "escalade": "^3.0.2", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.1", + "yargs-parser": "^20.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.1.tgz", + "integrity": "sha512-rcvHOWyGyid6I1WjT/3NatKj2kDt9OdSHSXpyLXaMWFbKpGACNW8pRhhdPUq9MWUOdwn8Rz9AVETjF4105rZZQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.1.tgz", + "integrity": "sha512-/jJ831jEs4vGDbYPQp4yGKDYPSCCEQ45uZWJHE1AoYBzqdZi8+LDWas0z4HrmJXmKdpFsTiowSHXdxyFhpmdMg==", + "dev": true + }, + "yargs-parser": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.0.0.tgz", + "integrity": "sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..829921d --- /dev/null +++ b/package.json @@ -0,0 +1,42 @@ +{ + "name": "rgbwifi", + "version": "1.0.0", + "description": "RGBWifi", + "main": "gulpfile.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "dev": "node devserver.js" + }, + "repository": { + "type": "git", + "url": "https://git.x2software.net/pub/RGBWifi.git" + }, + "author": "Mark van Renswoude ", + "license": "Unlicense", + "devDependencies": { + "axios": "^0.20.0", + "body-parser": "^1.18.2", + "child_process": "^1.0.2", + "express": "^4.16.2", + "gulp-clean-css": "^3.9.0", + "gulp-concat": "^2.6.1", + "gulp-debounced-watch": "^1.0.4", + "gulp-gzip": "^1.4.1", + "gulp-htmlmin": "^3.0.0", + "gulp-plumber": "^1.1.0", + "gulp-print": "^2.0.1", + "gulp-sass": "^3.1.0", + "gulp-uglify": "^3.0.0", + "lodash": "^4.17.4", + "path": "^0.12.7", + "through2": "^2.0.3", + "vinyl": "^2.1.0", + "vue": "^2.5.13", + "vue-i18n": "^7.3.3", + "yargs": "^16.0.3" + }, + "dependencies": { + "gulp": "^4.0.2", + "npm": "^6.14.8" + } +} diff --git a/platformio.ini b/platformio.ini new file mode 100644 index 0000000..d742d8d --- /dev/null +++ b/platformio.ini @@ -0,0 +1,20 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; http://docs.platformio.org/page/projectconf.html + +[env:esp12e] +platform = https://github.com/platformio/platform-espressif8266.git +board = esp12e +framework = arduino +upload_speed = 115200 +lib_deps = + ArduinoJson + ESP Async WebServer + EspSaveCrash + NeoPixelBus \ No newline at end of file diff --git a/src/assets/css.h b/src/assets/css.h new file mode 100644 index 0000000..8d481c8 --- /dev/null +++ b/src/assets/css.h @@ -0,0 +1,106 @@ +#ifndef __embed_css +#define __embed_css + +#include + +const uint8_t EmbeddedBundleCSS[] PROGMEM = { + 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xad,0x59,0xdb,0x6e,0xa3,0x38,0x18,0x7e,0x95,0x48, + 0xd5,0x48,0xd3,0x15,0x20,0x92,0x94,0xb4,0x05,0xed,0x6a,0x57,0xfb,0x06,0x7b,0xb1,0x37,0xa3,0x5e,0x18, + 0x30,0xc1,0x2a,0xc1,0xc8,0x38,0x4d,0x5b,0xc4,0xbb,0xef,0xef,0x13,0xb1,0xc1,0xc9,0x64,0x66,0x47,0xa8, + 0x4d,0xb0,0xfd,0x1f,0xfd,0x1f,0x3e,0x3b,0x35,0x3f,0x34,0x43,0x4e,0xdf,0xc3,0x9e,0x7c,0x92,0x76,0x9f, + 0xe6,0x94,0x95,0x98,0x85,0x30,0x92,0x55,0xb4,0xe5,0x62,0x18,0xa7,0xbb,0x4d,0x94,0x7c,0x19,0x7f,0x0b, + 0x52,0x54,0x71,0xcc,0x82,0x34,0xc7,0x15,0x65,0xd8,0x26,0x23,0x6d,0x8d,0x19,0xe1,0x63,0x4e,0xcb,0x8f, + 0x21,0x47,0xc5,0xeb,0x9e,0xd1,0x63,0x5b,0x86,0x05,0x6d,0x28,0x4b,0xef,0xe2,0x38,0xce,0xf4,0xd7,0xaa, + 0xaa,0x14,0xe7,0x0a,0x1d,0x48,0xf3,0x91,0xfe,0x8b,0x59,0x89,0x5a,0x14,0xfc,0xc5,0x08,0x6a,0x82,0x1e, + 0xb5,0x7d,0xd8,0x03,0xab,0xca,0x12,0xbf,0x8e,0xb6,0xf8,0xa0,0xde,0x4f,0x98,0xec,0x6b,0x9e,0x6e,0x81, + 0x5f,0x83,0x39,0x28,0x13,0xf6,0x1d,0x2a,0x84,0x06,0x51,0xbc,0x86,0x45,0x0d,0x69,0x71,0x58,0xab,0x45, + 0x40,0x96,0x75,0xa8,0x2c,0x61,0x16,0xec,0xe1,0x9c,0x1e,0xd2,0x2d,0xc3,0x87,0xf1,0xcf,0x03,0x2e,0x09, + 0x5a,0xf5,0x05,0xc3,0xb8,0x5d,0xa1,0xb6,0x5c,0x7d,0x3d,0x90,0x36,0x3c,0x91,0x92,0xd7,0xe9,0xe3,0xee, + 0xa9,0x7b,0xbf,0x1f,0xa4,0x1d,0x86,0x98,0xd3,0x4e,0x51,0x8e,0x68,0xe0,0xf8,0x9d,0x87,0x25,0x2e,0x28, + 0x43,0x9c,0xd0,0x36,0x6d,0x69,0x8b,0xc7,0x6f,0x6f,0x61,0xd1,0x50,0xf4,0xfa,0x32,0x94,0xa4,0xef,0x1a, + 0xf4,0xa1,0x86,0xef,0x0a,0x50,0x19,0x81,0x46,0xcc,0x72,0x49,0x7a,0xb7,0x89,0xc5,0x93,0x1d,0x10,0xdb, + 0x83,0x58,0xc1,0x7c,0x03,0xcc,0x8d,0xaa,0xe9,0x5a,0xbc,0x48,0xd7,0xd6,0xa8,0xa4,0xa7,0x34,0x5e,0xc5, + 0xab,0x24,0xee,0xde,0x57,0x77,0x55,0x51,0xed,0x8a,0x2a,0x53,0x5b,0x94,0xf6,0xb4,0x21,0xe5,0x6a,0x2d, + 0x26,0xc0,0xbd,0x37,0x59,0x65,0x29,0x64,0x8d,0x1b,0x4d,0x1a,0x5c,0xf1,0x14,0x1d,0x39,0x35,0x03,0x4c, + 0xba,0x51,0x8c,0x8c,0x63,0x54,0x63,0x04,0x52,0x87,0x8e,0xf6,0x44,0x1a,0xce,0x70,0x03,0x1e,0x78,0xc3, + 0x66,0x66,0x45,0x0e,0xfb,0xa1,0x02,0x2f,0xf0,0x54,0x30,0x72,0x79,0xac,0x2f,0xf9,0x1d,0xbd,0x4f,0x1a, + 0x3e,0x0a,0x0d,0x0d,0xb3,0xe8,0x44,0x2a,0xd2,0x73,0xc4,0x8f,0xfd,0x50,0x34,0x18,0x31,0x08,0x4c,0x5e, + 0xdb,0x3e,0x53,0x1b,0x72,0x8b,0xd5,0x3e,0x9e,0x93,0x19,0x28,0x07,0x3f,0x1e,0x39,0xce,0x94,0xa2,0x71, + 0x26,0x78,0xc7,0x93,0xbd,0x36,0xd1,0x2a,0x22,0x6d,0x49,0x0a,0xc4,0x29,0x9b,0xf6,0x99,0xb4,0x32,0xe2, + 0xf2,0x86,0x16,0xaf,0x99,0x92,0x2a,0xf7,0xcf,0x84,0xa0,0xda,0x4b,0x99,0x52,0x0c,0x95,0xe4,0xd8,0xa7, + 0x49,0xfc,0xc5,0xf5,0x4d,0x94,0x08,0x4b,0xae,0xcb,0xfb,0x56,0x22,0x8e,0x42,0x35,0xfc,0x3b,0x6c,0x62, + 0x8b,0x0b,0x8e,0xcb,0x17,0x4f,0xa6,0x6d,0x9f,0x77,0x3f,0xc2,0x0b,0xec,0xb0,0xd9,0xcd,0x23,0x6b,0xcf, + 0xf0,0xc7,0x4f,0xa8,0x06,0x61,0xec,0xd3,0xad,0x7a,0xde,0xfe,0x08,0x33,0xcc,0x18,0x65,0x3e,0x3e,0x05, + 0x84,0x7b,0x94,0x1f,0x21,0xa3,0xdb,0x20,0x2a,0x6a,0x5c,0xbc,0xae,0x22,0x11,0xd9,0x8c,0x36,0x41,0xd4, + 0x52,0x0e,0x9c,0x0b,0x99,0x9d,0x41,0xd4,0xa1,0x16,0x37,0x2b,0xf5,0x11,0x8a,0xa4,0x9e,0x0d,0x29,0x6d, + 0x82,0x48,0x6c,0x0e,0xb5,0xb8,0x9c,0x10,0x6b,0xc1,0x8a,0x40,0x4b,0xa9,0xb7,0x01,0x69,0xbb,0x23,0xff, + 0xc6,0x3f,0x3a,0xfc,0x7b,0x7f,0xcc,0x0f,0x84,0xbf,0x04,0x3d,0x6e,0xc0,0x58,0xe3,0x35,0xe1,0x2f,0xe5, + 0xb9,0xbb,0xf5,0x7a,0x3d,0xdb,0xf5,0x2d,0xa4,0x99,0x95,0xd3,0xa4,0xed,0x31,0x87,0xbc,0x16,0x34,0x6c, + 0x9f,0xa3,0xaf,0x9b,0x24,0x09,0xcc,0x5f,0xb4,0xbe,0x0f,0xcc,0x82,0x50,0xac,0xd8,0x9a,0x55,0x71,0x20, + 0x9e,0x68,0x7b,0x9e,0x8f,0x2f,0x32,0x89,0x9f,0xee,0x03,0x35,0xb7,0x99,0x91,0xaf,0x93,0x7b,0xe3,0xbe, + 0x08,0x15,0x22,0x87,0x03,0xfd,0x9a,0xea,0x57,0x77,0xd2,0x9d,0x93,0x7e,0xd0,0x53,0xae,0x3b,0x2c,0x0f, + 0xb5,0xc7,0x43,0x8e,0x99,0x33,0xd4,0xa1,0xbe,0x3f,0x81,0x4f,0x5e,0x3c,0x9e,0x74,0x78,0xab,0x19,0x51, + 0x67,0x5f,0x02,0xf1,0x1f,0x31,0x8c,0xae,0xfb,0xf8,0xdc,0x64,0xe4,0xb0,0x99,0xf3,0x7a,0x7b,0xee,0x8c, + 0x4d,0x62,0xdc,0xe4,0x75,0xe1,0xa8,0x03,0x40,0x6a,0x36,0xdc,0xd2,0xb7,0x46,0xb5,0x14,0x3a,0x55,0xfe, + 0x4a,0x78,0x88,0xba,0x0e,0xaa,0x17,0x6a,0x0b,0x2c,0x7b,0x42,0x16,0x1e,0xe8,0xe7,0x62,0x70,0xf6,0x3e, + 0x05,0xb7,0x2d,0xdc,0x71,0x98,0xbf,0xfe,0x98,0x0e,0x02,0xf6,0x80,0x99,0xa6,0xe1,0x96,0x65,0x99,0xd9, + 0xed,0xe7,0x21,0x16,0x4f,0x56,0x1c,0x59,0x0f,0xd3,0x1d,0x25,0x2d,0xb4,0x51,0xa7,0x71,0xca,0xd2,0x6a, + 0x22,0xa4,0xa2,0xc5,0xb1,0x9f,0x02,0xc4,0x7d,0xab,0xe9,0x1b,0x24,0x8f,0xb3,0xd0,0x59,0xe7,0x2c,0x5b, + 0x5a,0xa1,0x49,0x3c,0xf1,0x70,0x71,0x42,0xb2,0x1a,0x2e,0x58,0x96,0xc4,0xe2,0xc9,0xe8,0x91,0x0b,0x6b, + 0xd2,0xf8,0xff,0x46,0xb9,0xab,0xec,0xc5,0x19,0x4d,0x63,0xb4,0x2a,0x8a,0xc2,0xd1,0x6a,0xf3,0x24,0x1e, + 0xa3,0x4b,0xd8,0x31,0x02,0xe5,0xff,0xc3,0xb7,0xa9,0x0e,0xd5,0x66,0x97,0xa0,0xf5,0x9c,0xca,0xdd,0x0d, + 0x33,0x9a,0xfa,0x47,0x7f,0xb9,0xdb,0x1d,0xfd,0x76,0x8f,0x9b,0x7c,0x37,0x22,0x2d,0xd4,0x8f,0x8b,0xa2, + 0x16,0xbd,0x91,0xbd,0x1c,0xb8,0xd6,0xc5,0x23,0x0e,0x5d,0xf8,0x0f,0xc3,0xc9,0x46,0x23,0xa2,0xfc,0xcd, + 0x2a,0x69,0xec,0x2e,0x4f,0x2b,0xc2,0x7a,0x1e,0x16,0x35,0x69,0x4a,0x87,0x34,0x5e,0x56,0x60,0x59,0x2d, + 0xe1,0x73,0xc6,0xa1,0x41,0x13,0x83,0x99,0x28,0x59,0x79,0x25,0xe1,0x5c,0xa8,0x70,0xd4,0x12,0x0b,0x65, + 0x9f,0x21,0xb4,0x32,0xfc,0x9e,0xc2,0xc6,0x81,0xc3,0x7a,0x69,0xb7,0x8c,0x0a,0xd1,0x48,0x2d,0x44,0xfb, + 0xd4,0xf1,0x4c,0x7a,0x0c,0x35,0x64,0xdf,0xa6,0x05,0x96,0x39,0x38,0x43,0x84,0xa3,0xd3,0xcb,0xfe,0x9e, + 0xa0,0xdb,0x24,0xb6,0x22,0xef,0xb8,0xcc,0x26,0x00,0x69,0x84,0xef,0x76,0xbb,0xdb,0x70,0x91,0x9f,0xbd, + 0x5a,0x93,0xc8,0x12,0x22,0x3d,0x09,0x88,0x65,0x74,0x75,0x71,0x23,0xe1,0xf9,0x11,0xe5,0x4f,0x73,0xc4, + 0xba,0x8e,0x35,0x30,0xb5,0x71,0xff,0xac,0xe6,0x98,0x7a,0x15,0x25,0xa0,0xbd,0x36,0x5e,0x03,0x75,0x85, + 0x88,0x17,0x58,0xf3,0x87,0xcd,0x1a,0x54,0x18,0x2d,0x4d,0x58,0x45,0x07,0xdc,0xf7,0x68,0x8f,0x87,0x53, + 0x4d,0x38,0x96,0xc7,0x08,0x9c,0x76,0x0c,0xbb,0xcb,0x22,0x09,0x42,0x1c,0x7b,0x9f,0x1f,0xb7,0x68,0x0b, + 0xf9,0x2c,0x81,0x87,0x46,0x0e,0xfe,0x7a,0x3c,0x33,0xf7,0xd8,0x8b,0xe3,0x8a,0xc4,0x0c,0xaa,0xec,0xdb, + 0x92,0x5b,0x7a,0x62,0xa8,0xb3,0x43,0xc0,0xe3,0x15,0x31,0x34,0x2e,0x10,0x8f,0x8b,0x5d,0x06,0x4f,0xad, + 0xbf,0x86,0x56,0x77,0xb0,0xcd,0x06,0xad,0x8a,0xef,0x1e,0x80,0xaf,0x05,0x36,0x28,0xc7,0x67,0x71,0xf2, + 0xcd,0x6f,0xb7,0x9d,0x86,0xd2,0x0a,0xc8,0x05,0x0e,0x0e,0x6d,0x74,0xb8,0x83,0x75,0x9a,0xa9,0xfa,0x8f, + 0xcb,0xb9,0x35,0x8b,0x71,0xc7,0xaa,0x5d,0x2c,0x1e,0xc3,0x02,0x54,0x40,0x79,0x83,0x4b,0x43,0x6a,0xde, + 0x07,0xed,0x7e,0xd8,0x4e,0x90,0xdb,0xd0,0x13,0x2e,0xe7,0x24,0xae,0x4d,0xf3,0x61,0x2b,0x75,0xc7,0x05, + 0x40,0x74,0xdf,0x05,0x84,0x95,0xc7,0xbc,0x39,0xd4,0x9f,0x13,0x9a,0x85,0xd6,0xb9,0x78,0x79,0x14,0x11, + 0xbb,0xff,0x60,0xb2,0x4f,0x7c,0x51,0x5b,0x65,0xed,0xd4,0x4e,0x14,0x31,0xbf,0xa7,0x26,0x55,0x2c,0x87, + 0xc9,0x96,0x64,0xe7,0xe7,0x7a,0x86,0x82,0x04,0x22,0x74,0xc3,0xca,0xb0,0xf1,0x6b,0x97,0x5c,0xd5,0x4e, + 0x96,0x58,0xff,0xfe,0xba,0x8e,0xd2,0x27,0x8d,0x25,0xf2,0x7a,0xba,0x37,0xd5,0x5b,0x31,0x17,0x15,0x65, + 0xa3,0xd0,0x5b,0xc6,0x01,0x28,0xf5,0x15,0x65,0x87,0x94,0x51,0x38,0x28,0xe0,0xaf,0xe1,0x43,0x52,0xe2, + 0xfd,0xbd,0x6d,0xa1,0x84,0xcd,0xb1,0x0b,0xf4,0x1c,0x9c,0x67,0xd9,0x2d,0x58,0x85,0x26,0xcc,0xac,0xfc, + 0x5b,0x43,0xae,0xfd,0x04,0xa4,0x9d,0x03,0x57,0x0f,0xf2,0x3a,0x17,0x44,0xa7,0x02,0xea,0x84,0x8c,0x21, + 0x6a,0xcc,0xc9,0xe2,0x2a,0xf1,0x4d,0xb7,0x28,0xb6,0x04,0xdb,0x1c,0x70,0xe2,0x1e,0xbf,0x38,0xf6,0xb2, + 0x45,0xbd,0x91,0xc7,0xf6,0x7a,0x3d,0x9c,0x1b,0xd7,0xe6,0xbc,0x08,0x3a,0x71,0xbd,0xd1,0x81,0xdc,0x93, + 0x06,0x72,0xdc,0xb9,0xb2,0x99,0xad,0xdc,0xda,0x8d,0x70,0x09,0x8f,0x96,0xa4,0x67,0xc5,0xa5,0x12,0x0f, + 0x83,0xbd,0xe2,0x81,0x4d,0xd6,0x98,0xa4,0x7d,0xf1,0xe4,0x7b,0x76,0x49,0xe6,0x4e,0x3c,0xa3,0x5b,0xc2, + 0x9c,0xda,0x75,0xb5,0x00,0x4b,0xba,0x50,0x95,0xbc,0xc1,0x39,0xcb,0x6f,0x6e,0xbd,0x5f,0x8a,0x6a,0xca, + 0xc8,0xa7,0xe8,0xb9,0x8d,0x85,0x8c,0x46,0x6b,0x78,0x75,0xb9,0xc0,0x3a,0xcb,0x3c,0x21,0x7a,0x61,0xfa, + 0x1c,0xae,0x17,0x16,0xa8,0xd0,0xb5,0x27,0xa7,0x30,0xf6,0xd6,0x79,0x75,0xdb,0x23,0x2d,0xd7,0xc1,0x2b, + 0x2b,0xde,0x99,0x5e,0xdd,0x17,0xda,0x06,0xc2,0x2c,0x34,0xc3,0x99,0xcf,0x5d,0x5c,0x64,0xed,0xd9,0x2c, + 0x1a,0xf5,0x4d,0x09,0x48,0x15,0x91,0x31,0xcc,0x60,0xe4,0x12,0x50,0x8d,0x11,0xe0,0x57,0xda,0x89,0xf2, + 0xd5,0x3b,0xd8,0x30,0xb1,0x0e,0x38,0xce,0xfd,0xd2,0x55,0x4c,0x26,0xb3,0x21,0xea,0xa1,0x62,0x01,0xb4, + 0x1b,0x16,0x60,0xad,0xe7,0xb8,0x73,0xa4,0x6c,0xad,0x84,0x62,0xd3,0xc1,0xca,0xd7,0x60,0x05,0xe9,0x4a, + 0x73,0x3e,0x5f,0xd1,0x39,0xa4,0x0f,0x46,0xc4,0x2a,0x7a,0x43,0xcd,0x11,0x7f,0xe7,0x06,0x2b,0x92,0xd9, + 0x6c,0x37,0xb0,0x0b,0xdc,0xe7,0x86,0x5d,0x3c,0xb8,0x9e,0xab,0x93,0x29,0xf3,0x72,0x3b,0x66,0x28,0x1b, + 0xce,0xd3,0x72,0x70,0x59,0xb8,0xac,0x53,0x99,0x92,0x94,0xa6,0x46,0x94,0x7a,0x0f,0x79,0x0d,0xf1,0x7b, + 0x51,0xbe,0x5f,0x9f,0x8d,0x75,0xd9,0xb6,0xf1,0x5f,0xb6,0xd9,0xba,0xe8,0x1b,0x54,0x17,0x98,0x59,0x0a, + 0x89,0xc3,0xb9,0xac,0x8c,0x5a,0x99,0x5f,0x29,0x44,0x5f,0x29,0x79,0xb0,0xe4,0x77,0x81,0xf0,0x62,0xaf, + 0x5a,0x2a,0x2e,0xca,0xec,0x92,0xea,0x09,0x7e,0x19,0xd7,0x4e,0x75,0x91,0x77,0x5e,0x83,0x0f,0x69,0x9b, + 0x9b,0x83,0xd1,0x77,0x3d,0x36,0x2c,0x4f,0x52,0xfa,0x34,0x95,0x4d,0x3f,0x17,0x08,0x5e,0xa6,0x59,0xbb, + 0xf6,0x5c,0x6d,0x62,0x5e,0x79,0xba,0xf4,0x59,0x05,0x5f,0xd8,0xec,0x5b,0x28,0x0f,0xe5,0x22,0x87,0xad, + 0x52,0x74,0x61,0xa5,0x46,0x7a,0xbe,0x39,0xe3,0x48,0x8f,0x42,0xea,0xf7,0x8c,0xd9,0xa9,0x70,0x3a,0x17, + 0x3a,0xb6,0x6d,0x63,0xf1,0x4c,0xb6,0xab,0xa2,0x20,0xb9,0xe8,0xab,0x83,0xb9,0x53,0x6d,0xda,0xfc,0x01, + 0x25,0x4f,0x8e,0x5f,0x74,0x7b,0xb9,0x02,0xdd,0xe5,0xc5,0x7c,0x74,0xc2,0xf8,0xb5,0x44,0x1f,0xfd,0x32, + 0xa1,0xcd,0x8c,0x81,0xb3,0x8a,0xea,0x49,0x4c,0x55,0xa0,0x41,0x28,0xc3,0x24,0x34,0x77,0x23,0x72,0x08, + 0x62,0xe5,0x0d,0xeb,0xa1,0x41,0x02,0x2d,0x55,0x63,0xa8,0xf8,0x91,0x85,0x7f,0xac,0xa2,0xa4,0xb7,0x89, + 0x1d,0x2a,0x4e,0x07,0xbd,0x4c,0x84,0x91,0xcc,0x22,0x27,0xf8,0xe4,0x08,0x54,0x39,0x68,0x28,0xdc,0x73, + 0x74,0xbe,0x62,0xe8,0xc3,0xf3,0x17,0x97,0xfc,0x96,0x5a,0xe9,0xae,0xbf,0xa5,0x66,0xaa,0xfe,0x92,0xb9, + 0xa8,0x5f,0x32,0xc1,0x6d,0x79,0xab,0xc6,0x17,0x7a,0xe2,0x99,0xd1,0x45,0xdd,0x15,0x9e,0xb6,0x54,0x97, + 0x8b,0x2f,0x29,0xae,0xef,0x38,0xae,0xe9,0xbd,0xec,0xbe,0x11,0xc3,0x3d,0xe6,0xff,0x60,0xd4,0xcf,0xee, + 0x59,0x36,0x20,0xf6,0x3f,0x57,0x7a,0x1c,0xe6,0x0a,0x1c,0x00,0x00}; + +#endif diff --git a/src/assets/html.h b/src/assets/html.h new file mode 100644 index 0000000..fba7631 --- /dev/null +++ b/src/assets/html.h @@ -0,0 +1,108 @@ +#ifndef __assets_html +#define __assets_html + +#include + +const uint8_t EmbeddedIndex[] PROGMEM = { + 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xcd,0x58,0xd9,0x7a,0xe2,0x38,0x16,0x7e,0x15,0x97, + 0x7b,0xa6,0xa9,0xfa,0xd2,0x61,0x0b,0x95,0xaa,0x64,0x20,0xd3,0x66,0xdf,0xc3,0x1e,0xe0,0x4e,0xb6,0x85, + 0xad,0x20,0x2f,0x91,0x04,0x84,0xaa,0xce,0xbb,0x8f,0xe4,0x05,0x8c,0xe3,0x6c,0xd5,0x7d,0x31,0x5c,0x00, + 0xd2,0xd9,0xfe,0x73,0x7c,0x16,0x59,0xc5,0x4f,0xd5,0xdb,0xca,0x64,0x31,0xa8,0x49,0x26,0xb3,0xf0,0x4d, + 0x31,0xf8,0x86,0x40,0xbf,0x29,0x5a,0x90,0x01,0x49,0x33,0x01,0xa1,0x90,0x95,0xe4,0xe9,0xa4,0x7e,0xfe, + 0x5d,0xbe,0x29,0x32,0xc4,0x30,0xbc,0x19,0x35,0xca,0x77,0x68,0x85,0x8a,0x19,0x7f,0xe9,0xf3,0xda,0xc0, + 0x82,0x25,0x99,0x99,0xd0,0x82,0xe7,0x9a,0x83,0x1d,0x22,0x4b,0x9a,0x63,0x33,0x68,0x73,0xf1,0xdf,0xb2, + 0xde,0x47,0x3e,0x61,0xdd,0x22,0xb8,0x73,0x1d,0xc2,0x22,0x7c,0x3b,0xa4,0x33,0xb3,0xa4,0xc3,0x2d,0xd2, + 0xe0,0xb9,0xb7,0xf8,0x03,0xd9,0x88,0x21,0x80,0xcf,0xa9,0x06,0x30,0x2c,0xe5,0xb8,0x0a,0x8c,0xec,0xb5, + 0x44,0x20,0x2e,0xc9,0x94,0xed,0x31,0xa4,0x26,0x84,0x5c,0x87,0x49,0xe0,0xaa,0x24,0xab,0x1b,0x5b,0xc7, + 0x30,0xad,0x51,0xca,0x19,0xa9,0x46,0x90,0xcb,0x24,0x4a,0xb4,0x03,0xe1,0x5e,0xec,0x67,0x7c,0x02,0xff, + 0xe3,0xbb,0xaa,0x3a,0xfa,0xfe,0xa6,0xa8,0xa3,0xad,0x84,0xf4,0x92,0x0c,0x5c,0x57,0xf6,0x57,0xdb,0x73, + 0x0d,0x3b,0x60,0xed,0x2f,0x34,0x0c,0x28,0x2d,0xc9,0xb6,0xc3,0xb8,0xe7,0x1a,0x60,0xc8,0xb1,0x2b,0x1c, + 0x36,0x40,0x36,0x24,0xf2,0x8b,0x2c,0xb2,0x74,0x1d,0xec,0xfe,0x94,0x20,0x21,0x0e,0xb9,0x96,0xa2,0x64, + 0xe9,0x53,0x49,0xb2,0x37,0x18,0x4b,0xbf,0xff,0x7e,0xb2,0x9f,0xf6,0x78,0xa5,0x27,0x99,0x63,0x40,0xab, + 0x53,0x95,0xa1,0x8c,0x2c,0xfd,0xa9,0x61,0xa4,0xad,0xd3,0x2e,0x81,0x5b,0x2f,0x7a,0x26,0xd2,0x61,0x3f, + 0x6a,0x9c,0x87,0xc0,0x05,0x76,0x88,0xcb,0x82,0x94,0x02,0x03,0xca,0x37,0x3f,0x7f,0x9e,0x1a,0x0b,0x08, + 0xd2,0xd3,0x13,0x0f,0x0d,0x17,0xe0,0x81,0xe1,0xee,0x84,0xdf,0x61,0x5c,0xb4,0x64,0x6f,0x45,0x08,0xbd, + 0x3d,0x64,0x19,0x7e,0xa8,0x75,0xc0,0xc0,0x35,0xb2,0xb8,0xc6,0x8c,0x6b,0x1b,0xff,0x51,0x01,0x85,0x97, + 0x85,0x3f,0xd0,0xac,0x7c,0x3b,0xda,0x65,0x3b,0x0d,0xc3,0x51,0xf8,0xa7,0x3f,0x9e,0x9a,0xb5,0xa9,0xc1, + 0xff,0x55,0xc5,0x52,0xd9,0x55,0x94,0x05,0xff,0x29,0xcf,0x95,0xad,0xd5,0x14,0x1b,0x8d,0xf9,0xa8,0x7e, + 0xd7,0x1c,0x4d,0xd4,0xfc,0x32,0xab,0xe7,0xeb,0xfb,0xe5,0xb0,0x5c,0x5e,0x36,0xae,0xd0,0x72,0x5c,0x6e, + 0xab,0x77,0x75,0x7b,0x39,0x6b,0xe3,0xc5,0xdd,0xe8,0xab,0xa6,0x61,0x3c,0x10,0x02,0xf3,0x72,0x7b,0x54, + 0xab,0x4f,0x61,0x9f,0xd0,0x3b,0xbd,0xd6,0x37,0xee,0x95,0x61,0x57,0x5b,0x94,0x35,0x65,0xa0,0x29,0x15, + 0x7d,0xd8,0x2f,0x28,0xfd,0x7c,0xaf,0x52,0x30,0x46,0x74,0xd1,0xbe,0xaa,0xf5,0x75,0x65,0xb0,0x50,0xaa, + 0x40,0xa9,0x42,0x57,0x9f,0x9a,0xbd,0xdc,0x43,0xfd,0x7e,0x43,0x0c,0xf7,0x6a,0xac,0xf5,0x9a,0x86,0xfe, + 0x2d,0x77,0x31,0xbb,0x58,0xb1,0xa9,0xfb,0x15,0x36,0x8d,0x5e,0x3d,0x47,0x48,0xa3,0x06,0x36,0x97,0xb3, + 0x66,0x35,0xdf,0xec,0xa9,0xcd,0xaf,0x0f,0xed,0xdb,0x6e,0x93,0x80,0xb3,0xd5,0xfa,0x87,0x4a,0x17,0x23, + 0x6a,0xf6,0xbe,0xbb,0xdd,0x89,0x31,0x6d,0x19,0x63,0x63,0xbb,0xe9,0xf5,0x9c,0xc5,0xee,0x0c,0xf5,0x16, + 0x13,0x72,0x39,0x34,0xfb,0x8b,0x1e,0xe9,0xa3,0xfe,0x7e,0xd7,0xea,0xe2,0xfd,0xac,0xa3,0x6b,0xfb,0xfd, + 0x80,0x5a,0xda,0x88,0xee,0xa7,0x5f,0xb3,0x6b,0xa3,0xc9,0x86,0xc3,0x4d,0x5e,0xd1,0xfb,0xed,0xba,0x5b, + 0x5d,0x2b,0x9d,0x42,0x2b,0xd3,0x6d,0xdd,0xf5,0xd4,0xbc,0x42,0x5b,0x65,0xed,0x21,0x8b,0x46,0x0d,0x38, + 0x6c,0x0c,0x26,0xcb,0xd5,0xec,0x72,0x58,0xcb,0x9e,0x19,0xd5,0x46,0x3d,0x4f,0x1c,0xda,0xa8,0x19,0xbd, + 0xe1,0x63,0x4b,0x31,0xed,0xa5,0x82,0x06,0xfd,0xef,0x85,0x8d,0x3b,0x5a,0x65,0x33,0xb7,0xd8,0xa5,0xdd, + 0x4a,0xd9,0xbd,0xd8,0x3f,0x64,0x35,0xd3,0x60,0x95,0xe9,0x74,0x49,0x46,0xbb,0xcb,0x61,0xf5,0xf6,0xa2, + 0x76,0xd7,0x1c,0x3f,0xd4,0xaf,0x18,0x20,0x4b,0x30,0xee,0xb4,0xe7,0xb0,0x5d,0xd5,0xd5,0x21,0xa6,0xb5, + 0x6c,0xa7,0x7a,0xd9,0xee,0x67,0x3a,0xce,0x88,0x36,0xcc,0xc7,0x79,0xa7,0x82,0x2b,0x9d,0x66,0xbb,0xb5, + 0x5a,0x4f,0xcc,0x5d,0xef,0xce,0x54,0x2e,0xf5,0xf2,0xd8,0xc1,0x23,0x74,0xbf,0x6e,0xdf,0xea,0xb9,0xe5, + 0x74,0x7b,0xb5,0x1f,0x5e,0xdd,0xba,0x0f,0x6a,0xd3,0x45,0x60,0x3a,0x03,0x35,0x75,0x59,0xfb,0xc6,0x5a, + 0xad,0x7b,0xa7,0xdc,0x99,0xef,0xa9,0x43,0x73,0x5a,0x61,0xf6,0x1d,0xaa,0xdd,0x9a,0xae,0x6e,0xf3,0xaa, + 0xd6,0xa3,0xb5,0x6f,0xc6,0xfd,0xa6,0xac,0x6f,0xe7,0xa3,0x71,0xbb,0x50,0x3f,0xcb,0xec,0x1e,0x5a,0xf3, + 0x39,0x69,0x35,0x76,0xd6,0xfc,0xe2,0xc7,0x0e,0x68,0xdd,0xaa,0x09,0xfb,0xb7,0x57,0xb9,0xdb,0xfb,0xee, + 0xb0,0xa3,0xe7,0x0a,0xb3,0x5e,0xb5,0x62,0x2f,0x8c,0xca,0xe3,0xec,0xbe,0x75,0xd1,0x9f,0xc0,0x9c,0x35, + 0x76,0x06,0xd5,0xc2,0xd5,0x63,0x61,0x4c,0x78,0x72,0x5c,0x3d,0x0c,0xec,0x02,0x74,0xb6,0x95,0x9e,0x97, + 0x3d,0x35,0x5c,0x9f,0xac,0xc7,0x9b,0xa1,0x55,0xa9,0xf0,0x4c,0x34,0x73,0x22,0xc5,0xff,0xc5,0x3e,0xa7, + 0xbc,0xfe,0x94,0xfa,0xe2,0x65,0x36,0xdf,0x2d,0x9a,0x79,0x41,0xa1,0x0c,0xb0,0x0d,0x4d,0xd3,0x3d,0x65, + 0xd0,0x6a,0x55,0x79,0x41,0x05,0x55,0xf8,0x5f,0x4f,0x28,0xdc,0xe7,0x72,0x67,0x52,0xea,0x5a,0x4a,0xf1, + 0x9f,0xb8,0x08,0xdf,0x4d,0xf9,0x5a,0xf3,0x27,0xd5,0xb0,0xe3,0x55,0xe5,0xf3,0x9e,0x56,0x09,0x2f,0x1e, + 0x1b,0x6a,0x41,0x51,0x46,0xf6,0x91,0xad,0x8b,0x2a,0x14,0xcd,0xf2,0x5a,0xd4,0xcd,0xb9,0x2f,0xec,0x2b, + 0x1a,0xfb,0x46,0x81,0x9b,0x86,0x36,0x50,0x31,0xd4,0x39,0xc0,0x54,0xa0,0x09,0xea,0x29,0x01,0x42,0x47, + 0xf4,0xb8,0x21,0x07,0x25,0x1b,0x38,0x1f,0x55,0xa1,0x69,0xbc,0xc6,0x5d,0x07,0xd9,0x2c,0x7d,0x8c,0x89, + 0xc4,0x19,0x5f,0xb2,0x73,0xba,0x8f,0x5c,0x6e,0xec,0x15,0x9d,0x1c,0x86,0x27,0x18,0x84,0xfa,0xd0,0x37, + 0x7e,0xd5,0x7b,0x03,0xb2,0x3b,0x54,0xf7,0x2c,0x71,0x21,0xdf,0xe0,0xe7,0x2f,0x2f,0xfb,0x47,0x7d,0x46, + 0xcb,0xd1,0x61,0xcc,0xbf,0x24,0x4d,0x13,0xf8,0xc8,0x3e,0x47,0x90,0xc6,0xbb,0x9d,0xdf,0x73,0x79,0xeb, + 0xd7,0x91,0x6d,0xc8,0x21,0xd8,0x70,0x1d,0x9a,0x0f,0xd6,0x07,0x4b,0xc1,0xba,0x15,0xfa,0x74,0x1a,0x09, + 0x5f,0xe7,0xa7,0x80,0x49,0xf4,0x7b,0x3e,0xcf,0x90,0x4a,0xfc,0x96,0x5e,0x0a,0x32,0xf0,0x34,0x3c,0x3b, + 0x40,0x6c,0x0f,0x81,0x2f,0x6c,0x02,0x3a,0x82,0x7c,0x1a,0xd7,0xc4,0x6c,0xe0,0x9c,0x6e,0x88,0xc4,0x1b, + 0x16,0x69,0x72,0xa0,0x05,0x4f,0xc1,0xe5,0x2c,0xa1,0x2a,0x8f,0x38,0x82,0x80,0x8a,0x47,0xf0,0x5c,0xcc, + 0xa7,0xa4,0x23,0x99,0x1e,0xd9,0x8e,0x68,0xf3,0x81,0xd0,0x43,0xd0,0xb5,0xf5,0x84,0x00,0x0d,0xc6,0x54, + 0x1e,0x09,0x47,0x24,0x20,0x44,0xa2,0x6e,0x18,0xe3,0x1e,0xfb,0x3f,0xe7,0x2e,0xe1,0x83,0x82,0xec,0xc3, + 0xf1,0x9d,0x01,0x2e,0xca,0x78,0xe2,0x4c,0x88,0x67,0x0c,0x31,0xd9,0x3f,0x6a,0xb4,0xea,0xec,0x6c,0x11, + 0xe7,0xc0,0x38,0xb8,0x91,0xe2,0xd6,0xc3,0xd1,0xc9,0x67,0x15,0xc4,0x90,0xc1,0xf1,0x3b,0x94,0x7a,0x8c, + 0x07,0x95,0xcf,0x73,0xdc,0x06,0x5b,0x64,0xf8,0x4f,0x93,0x01,0x55,0x94,0xff,0x33,0xa3,0xc7,0xa3,0x40, + 0x0a,0xf0,0x6a,0xd8,0x42,0xde,0x5c,0xfc,0x3f,0x13,0xa0,0xf2,0x1c,0x90,0x52,0xbe,0x93,0x29,0x31,0xf8, + 0x43,0x84,0x11,0x86,0x03,0xfd,0x80,0x32,0x08,0x0a,0x37,0x38,0x89,0x74,0x3a,0xf0,0x4b,0xb6,0x8f,0x45, + 0xfa,0xb2,0xfd,0x08,0xcf,0x01,0xc3,0x71,0xef,0x9f,0xc1,0xe1,0xf7,0xd8,0x57,0x62,0xe0,0xd3,0x8f,0x31, + 0xf0,0xd6,0x09,0xb6,0xe3,0xc5,0x97,0x18,0x6a,0x31,0x2e,0x2e,0xe2,0xe1,0x8c,0x4e,0x8d,0x8b,0xb7,0x14, + 0x9d,0xc4,0xa4,0xb8,0x72,0x88,0x25,0xfd,0x49,0x37,0xaa,0x85,0xd8,0xf1,0x64,0xc6,0xcf,0x94,0x78,0x5f, + 0x89,0x76,0xc1,0xa3,0xd1,0x68,0xfc,0x62,0x86,0x35,0x13,0x6a,0x6b,0x6e,0x54,0xf4,0x35,0x9c,0x56,0x1d, + 0x07,0x43,0x60,0x47,0xdb,0x69,0xb4,0x09,0xf3,0xd8,0x7a,0xf2,0x25,0x39,0xa6,0x35,0xc2,0x93,0xf2,0x7a, + 0xa8,0xa7,0xf6,0xf4,0x6c,0x68,0x0a,0x05,0x09,0x88,0x22,0xb2,0x4d,0x4f,0x3e,0x72,0x48,0x7c,0x1b,0x5d, + 0xd0,0x96,0x5f,0x44,0x16,0x69,0xdb,0x1f,0x46,0x16,0x91,0x8d,0x23,0x93,0x8a,0x18,0xa8,0x10,0x4b,0xfc, + 0x59,0xf0,0xbe,0x41,0x91,0x9e,0x28,0xcf,0xf7,0x03,0x21,0x8f,0x9b,0x4b,0x21,0xdb,0xdd,0x30,0x89,0xed, + 0x5d,0xf1,0x1e,0xc3,0x67,0x84,0xec,0x9d,0x7b,0x3d,0x05,0xa1,0x9b,0xa7,0xee,0x79,0x94,0xeb,0x70,0xf8, + 0xf1,0xf6,0x9e,0xe0,0xfb,0x29,0x1a,0x97,0xfb,0xb4,0x73,0x48,0x22,0xa2,0x90,0xf6,0x0a,0xaa,0x83,0xb8, + 0x87,0xec,0xb8,0x4a,0x42,0x77,0xa4,0xbe,0x85,0xf0,0x1d,0x4f,0x52,0x37,0x35,0xf7,0x4d,0x45,0x2f,0x3d, + 0x66,0x21,0xcc,0x9f,0x6f,0xf8,0x44,0x45,0x89,0x9c,0x8b,0xb7,0x09,0xe2,0xe0,0x0f,0x3e,0x74,0xa1,0xe9, + 0x59,0x1e,0x46,0x9a,0x30,0xaf,0x3b,0xc7,0x15,0x9c,0xa2,0xff,0x46,0xc2,0x8e,0xdc,0x24,0x6d,0xc8,0x05, + 0xba,0xce,0x07,0x1d,0x7d,0x57,0x1e,0x70,0x1d,0x89,0x71,0x46,0x6f,0x06,0x46,0xfa,0xeb,0x2f,0x29,0x1e, + 0xcb,0x58,0x92,0x6e,0x54,0x1b,0x32,0x0b,0xd0,0x75,0x62,0xaa,0x1e,0xa8,0xef,0x4b,0xd8,0xa3,0xb2,0xe4, + 0xb4,0x8d,0xd0,0xff,0x2e,0x70,0x3e,0xf1,0xe0,0x0e,0xec,0x93,0x50,0x07,0xa4,0x77,0x41,0x0e,0xd5,0x24, + 0xe2,0x3d,0x10,0x7f,0x01,0x6c,0xd0,0xbb,0x23,0x88,0x4d,0x87,0x32,0x71,0xff,0x90,0x04,0x39,0xa4,0xbd, + 0x89,0xf9,0xda,0xc5,0xfc,0x4c,0x60,0x3a,0x98,0xbf,0xfa,0x3e,0x4b,0xf7,0x50,0xcb,0xe0,0xc8,0x23,0xb2, + 0x5f,0xf8,0x79,0x30,0x9e,0xe8,0xe8,0x91,0xfa,0x66,0xc5,0x46,0x72,0xde,0x9f,0xac,0x22,0xe1,0xa3,0x38, + 0xfd,0x09,0x74,0xa2,0x89,0xf2,0x13,0x8a,0x38,0x4d,0x5e,0x6f,0x01,0xde,0xc0,0x70,0x1d,0xbc,0xf4,0x78, + 0x13,0xaa,0xec,0xa9,0x1a,0x7b,0xfb,0x3c,0x06,0xd7,0x71,0x4a,0xea,0x70,0x04,0x2f,0x66,0x44,0x15,0xbf, + 0x39,0x63,0xc3,0x51,0xfd,0xc2,0x58,0xdc,0xb8,0xe2,0x9c,0x56,0x47,0xc4,0xe2,0x47,0x5d,0x78,0x3a,0x8a, + 0xfd,0xa9,0xbe,0x0a,0x68,0x93,0xd8,0x64,0x8c,0xba,0xba,0x42,0x18,0xfa,0xe1,0x0d,0xb9,0xeb,0x62,0xe7, + 0xff,0x20,0x48,0xc7,0xb8,0xf8,0x9e,0x0e,0x88,0x63,0x88,0x7e,0xe3,0xbd,0x71,0xae,0x00,0xa6,0x7e,0x16, + 0xc6,0x88,0x4f,0x4f,0xff,0x3e,0x0d,0xf2,0x2b,0x67,0x8a,0xb1,0x17,0xa6,0xa4,0xc8,0xb9,0xc8,0xa6,0xf1, + 0xa8,0x45,0xaf,0x6d,0x1c,0x82,0x7e,0x88,0x1b,0x1d,0x7c,0xda,0x29,0xb9,0x58,0xb7,0x56,0x55,0x06,0xf1, + 0xe3,0x55,0xb8,0xff,0x4a,0x69,0xd8,0x1b,0x4b,0x85,0x24,0x18,0x4d,0xa1,0x9a,0xc3,0x54,0xf1,0xa9,0x3c, + 0xa0,0x47,0x78,0x69,0x1e,0x71,0x61,0xe9,0xf9,0x61,0xfa,0x75,0x74,0xe3,0x89,0x92,0x0c,0x8f,0x13,0x3e, + 0x84,0x4f,0x28,0x7a,0x0b,0xa0,0x67,0xec,0x43,0x08,0x95,0x81,0x9f,0x08,0x09,0x18,0x43,0xd2,0xfb,0x51, + 0x1e,0x94,0xbd,0x8a,0x13,0xb8,0xa1,0xc9,0xa4,0xf2,0x7c,0xfe,0x3e,0xce,0xe7,0x3b,0x59,0xa1,0x47,0xf9, + 0x45,0x8e,0x2d,0x24,0x14,0x45,0x5c,0xd0,0x1c,0x77,0x4f,0x90,0x61,0x06,0x93,0x57,0x25,0x91,0x7b,0x94, + 0x80,0x37,0x7e,0x8d,0x12,0x16,0xe3,0xcc,0x27,0x7b,0xb7,0x29,0x31,0x89,0xc3,0x2d,0xca,0xb3,0xd7,0xf0, + 0xe0,0xea,0x16,0x03,0xdb,0xd8,0x00,0x83,0x87,0xe5,0x1e,0x6c,0x81,0xbf,0x29,0xdf,0x70,0x2d,0x84,0x29, + 0xae,0xfb,0xf9,0x4b,0xe4,0x2a,0xd7,0xbf,0xc4,0xcd,0x78,0x57,0xd8,0xff,0x03,0x5f,0x4f,0x1f,0xc2,0xd8, + 0x16,0x00,0x00}; + +#endif diff --git a/src/assets/js.h b/src/assets/js.h new file mode 100644 index 0000000..d5dfc38 --- /dev/null +++ b/src/assets/js.h @@ -0,0 +1,2385 @@ +#ifndef __assets_js +#define __assets_js + +#include + +const uint8_t EmbeddedBundleJS[] PROGMEM = { + 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xbc,0xbd,0x69,0x77,0xdb,0xc6,0xb2,0x2e,0xfc,0x57, + 0x24,0x5c,0x1f,0x05,0xd8,0x6a,0xd1,0x52,0x92,0x3d,0x04,0x34,0x0e,0x97,0xc7,0xc4,0x89,0xa7,0xd8,0xce, + 0xb4,0x65,0x6d,0x2d,0x88,0x6c,0x49,0xb0,0x28,0x80,0x01,0x40,0xc9,0x8a,0xc8,0xfb,0xdb,0x6f,0x3d,0x55, + 0x3d,0x01,0x84,0x9c,0x9c,0x7b,0xdf,0xf5,0x7e,0x90,0x08,0x74,0x37,0x7a,0xac,0xae,0xae,0xb9,0xb7,0x4f, + 0x97,0xe5,0xb4,0x2d,0xaa,0x32,0xd6,0xaa,0x4d,0x6e,0xa3,0xea,0xe4,0xa3,0x9e,0xb6,0x51,0x96,0xb5,0x37, + 0x0b,0x5d,0x9d,0x6e,0xe9,0x4f,0x8b,0xaa,0x6e,0x9b,0x9d,0x9d,0x8d,0x9c,0xcb,0x6a,0xb6,0x9c,0xeb,0x89, + 0xfc,0x8c,0x4c,0xb9,0xac,0x8d,0x93,0x34,0xb2,0x75,0xfa,0xc2,0x33,0x7d,0x5a,0x94,0x7a,0x67,0x47,0x7e, + 0x47,0xf9,0xe5,0x6c,0x22,0x8f,0xf1,0xe1,0x11,0xb5,0x9b,0xde,0xd5,0xee,0xc4,0xfc,0x8e,0xf2,0x4f,0x45, + 0x25,0xb5,0x6b,0xff,0xbc,0x8e,0xdb,0xf3,0xa2,0x51,0x6e,0x08,0xc9,0x6d,0xad,0xdb,0x65,0x5d,0x6e,0xb9, + 0x94,0x32,0xb9,0xb5,0xcf,0x5b,0x75,0xac,0x93,0xdb,0xe2,0x34,0x2e,0x0e,0xf5,0x51,0x62,0x0a,0xe2,0xd9, + 0xf6,0x7d,0x7c,0x95,0xd7,0x5b,0x6d,0x86,0xa4,0xec,0xd6,0xa4,0xa5,0xb7,0x6b,0x55,0xcc,0x52,0xad,0xe6, + 0x55,0x3e,0xd3,0xb3,0x74,0xfb,0x60,0x3d,0x36,0x9f,0x96,0xf8,0x74,0x9a,0xcf,0xe7,0x71,0x6b,0x6b,0x50, + 0xad,0xf2,0xcf,0x75,0x42,0x2f,0xf2,0x59,0xb6,0xbd,0xef,0x33,0xd6,0x68,0xa6,0xc8,0x6e,0x5d,0x45,0xf5, + 0xe8,0x32,0x2b,0x55,0x3d,0x9a,0x66,0x05,0xfd,0x5f,0x64,0x51,0xa4,0xea,0x78,0x9f,0x06,0x77,0x18,0xae, + 0x8d,0xa2,0xa1,0xf8,0x69,0x2e,0xe3,0x83,0x64,0xad,0xfa,0xf9,0xd1,0xb2,0xd1,0x5b,0x4d,0x5b,0x17,0x34, + 0x93,0xe3,0xee,0xb8,0x65,0x6c,0xa5,0xbe,0xde,0xca,0xe9,0x55,0x95,0x59,0x15,0xe7,0xa3,0x45,0x5d,0xb5, + 0x15,0x26,0x7c,0x54,0xeb,0xdf,0x97,0xba,0xa1,0xee,0x27,0xb6,0x57,0x05,0xb5,0xd5,0xea,0x72,0x16,0x97, + 0x2a,0x28,0x48,0x05,0x54,0x90,0x43,0x6f,0xa5,0x19,0x4f,0x19,0x7f,0x99,0xa8,0x8a,0x7e,0xbe,0x4a,0x54, + 0x4e,0x3f,0x5f,0x27,0x0a,0xdd,0xfc,0x92,0x52,0xa7,0x59,0x1d,0x53,0x87,0xf7,0x93,0x64,0x3c,0x1d,0x3d, + 0xe4,0xc5,0xcb,0xd5,0x74,0x34,0xad,0x75,0xde,0xea,0xcc,0x0f,0xc2,0x2d,0x5f,0x1d,0x37,0xf1,0x74,0x44, + 0x00,0x92,0x2f,0xe7,0x34,0x93,0x3a,0xa1,0xb1,0x4e,0x47,0x8f,0xf3,0x72,0xaa,0xe7,0xa8,0x93,0x9a,0xb0, + 0xaf,0xef,0xab,0x0b,0x5d,0x22,0xed,0x6b,0xa4,0x15,0x8d,0x2b,0xf4,0x0d,0xde,0x69,0x75,0x86,0xea,0x7f, + 0x53,0x57,0x97,0x45,0xa3,0x91,0x4d,0xa9,0xa8,0xbb,0x59,0x50,0x67,0x66,0xa8,0xe7,0xef,0x89,0xf2,0xd3, + 0x3c,0xf5,0xcf,0xb6,0x3b,0xd9,0xf4,0xaf,0xce,0x7b,0xe5,0x5b,0x8c,0x0e,0x05,0xbe,0xb7,0x1e,0xd6,0x75, + 0x7e,0x73,0x44,0x60,0x9e,0xcd,0x05,0x76,0xa8,0xf9,0xee,0x42,0x99,0x2e,0x5e,0x55,0xc5,0x6c,0x6b,0x9f, + 0xca,0x69,0x9f,0x5f,0x04,0xf9,0xe5,0x72,0x3e,0xdf,0xa6,0xdc,0x81,0x8d,0x19,0x7c,0x91,0x1b,0x90,0x77, + 0xed,0xbf,0xe6,0x9f,0xa3,0x68,0x3b,0xe8,0x80,0xd9,0x0b,0xdb,0x07,0x66,0x03,0x48,0x99,0xd1,0x99,0x6e, + 0xdf,0xd8,0x65,0x7f,0x7d,0x4a,0xe5,0xc6,0x41,0xd3,0xd4,0xb1,0x76,0xb5,0x6a,0xe9,0xc7,0x94,0x76,0x10, + 0xe2,0x1b,0x6f,0x06,0xc6,0xff,0xcc,0x64,0xde,0x35,0x05,0x53,0x41,0x43,0xd4,0x65,0x19,0xa0,0x4e,0xd0, + 0x7b,0x33,0xc2,0x6d,0x37,0xc2,0x9d,0x9d,0x58,0x67,0xd8,0xc6,0x0a,0x93,0x9c,0x9c,0x56,0x75,0x8c,0xbe, + 0x97,0xd9,0xbe,0xaa,0x33,0x3d,0x9a,0xeb,0xf2,0xac,0x3d,0x1f,0x97,0x0f,0xea,0x71,0xb9,0xbb,0x9b,0xb4, + 0xd2,0x0e,0x6a,0x54,0xfa,0xb0,0x3c,0x52,0x25,0x81,0xd4,0x58,0xcf,0x69,0xd1,0xec,0x97,0xc5,0x56,0x51, + 0x6e,0xe9,0xa4,0x3f,0x98,0xd1,0x79,0xde,0xbc,0xbe,0x2e,0x69,0x1e,0x16,0xba,0x6e,0x6f,0x4c,0x7f,0x55, + 0x91,0xec,0xec,0x74,0x2b,0x2d,0x8e,0x54,0x41,0x95,0xf2,0x5e,0x58,0xca,0x26,0x98,0x6f,0x4c,0xcd,0xa8, + 0xad,0xde,0x11,0x90,0x94,0x67,0x63,0x0f,0x61,0xb7,0x45,0xc3,0x30,0x91,0x56,0xca,0x3c,0x3d,0x5a,0x9e, + 0x9e,0xea,0x3a,0xdd,0x04,0xdb,0x2e,0x10,0x49,0xb1,0xde,0x3c,0x52,0x1d,0x77,0x7e,0x1e,0x80,0xcc,0x36, + 0x20,0x6d,0x67,0xc7,0x26,0x8c,0xa6,0x55,0x49,0xd0,0xbb,0x9c,0xb6,0x55,0x2d,0x99,0x61,0x0a,0x15,0x1c, + 0x40,0xe8,0x9d,0x22,0x23,0xdb,0xec,0xce,0xce,0x70,0xba,0xe9,0xdb,0xb3,0xaa,0xbe,0x7c,0x92,0xb7,0xf9, + 0xd0,0xe0,0x96,0xa5,0x1c,0x08,0x33,0xbf,0xcc,0xb6,0x38,0xd5,0x4a,0xcb,0xd3,0xb4,0xd8,0xda,0x41,0xf2, + 0xba,0x3b,0x63,0x3f,0x17,0xfa,0xfa,0x2f,0x56,0x1c,0x7c,0xb5,0xb3,0x13,0xbc,0x50,0x7f,0x51,0xcb,0x64, + 0x33,0x89,0xea,0x4b,0x35,0x46,0x77,0xe2,0xc6,0x29,0x4f,0x61,0xc7,0x82,0xcf,0xd0,0x37,0x59,0xeb,0xa1, + 0x2e,0x35,0x9c,0x13,0xee,0x58,0x2a,0xfe,0x6a,0x79,0x79,0x32,0xbc,0xee,0x25,0xe7,0xf4,0x8a,0x0b,0x70, + 0xa5,0x05,0x3d,0xbe,0x99,0xe7,0x45,0x69,0xde,0x73,0x7a,0xff,0xc9,0x8e,0x38,0xad,0xe9,0x8d,0xa6,0x4a, + 0x7f,0x0e,0x9a,0x90,0xbf,0x09,0x46,0xcf,0x8a,0xf9,0x67,0xbf,0x42,0xfe,0x00,0xf0,0xcd,0xab,0x93,0xcf, + 0x7d,0x85,0xfc,0x81,0xb6,0xcc,0x07,0x69,0x23,0xb3,0xa6,0xf3,0xcb,0x21,0xf8,0x2d,0x18,0x68,0x09,0xab, + 0x8c,0x16,0xc5,0x42,0xbe,0xfc,0xe9,0xed,0x8b,0x77,0x3a,0xaf,0xa7,0xe7,0x6f,0xf2,0x3a,0xbf,0x6c,0xfe, + 0xe2,0xf2,0xf7,0xbe,0xea,0x81,0x57,0x2f,0x57,0x56,0x32,0x2f,0x67,0x79,0x3d,0x7b,0x54,0x57,0xd7,0x8d, + 0xae,0x9f,0x96,0x57,0xe9,0x06,0xcd,0x11,0x07,0x2d,0xb9,0x95,0x2a,0xf3,0xab,0xe2,0x2c,0xa7,0x9d,0xb0, + 0x5a,0x45,0x6f,0x75,0x3e,0x6d,0x5f,0xe5,0x6d,0x71,0xa5,0x81,0x7e,0x5d,0x16,0xf0,0xc3,0x8c,0xb6,0x0b, + 0x6d,0x33,0xc9,0x7d,0x37,0xad,0x8b,0x45,0x7b,0x67,0x99,0x77,0x83,0x39,0xd8,0xa5,0x03,0x43,0xbd,0x2e, + 0xca,0x59,0x75,0x3d,0x9c,0x37,0xab,0xa6,0xcb,0x4b,0x5d,0xb6,0x74,0x9e,0x55,0xf5,0xd3,0x7c,0x7a,0x9e, + 0x4e,0xd5,0xa5,0xae,0xcf,0xfc,0xba,0x6f,0x61,0x78,0xee,0x45,0x0b,0x6e,0xce,0xe3,0xfa,0xb0,0x3d,0xa2, + 0xf6,0x70,0xb8,0x4c,0xf0,0x4c,0xf8,0x0e,0x3f,0x84,0xff,0xd2,0x30,0x8d,0x48,0x27,0x4a,0xa9,0x5c,0x8a, + 0x1e,0x35,0xf3,0x62,0xaa,0x89,0x84,0x93,0xd7,0xb5,0x45,0xbe,0x35,0x11,0x43,0xaa,0x25,0xdc,0x5d,0x64, + 0x79,0x7d,0xc6,0x7d,0x6a,0x2c,0x0e,0x6f,0x1f,0x14,0xe3,0x96,0x70,0xf8,0x34,0x76,0x59,0xd2,0x94,0xa3, + 0x9e,0xa8,0x15,0x26,0x47,0xfc,0x92,0x10,0x7a,0x27,0xea,0xcb,0x82,0x0d,0x8e,0x94,0x2e,0x91,0x5b,0xa2, + 0xf9,0x7a,0x18,0xad,0x4d,0x96,0x31,0x3e,0x4e,0xf5,0x1a,0xa4,0x8d,0xa2,0x8d,0x3a,0x08,0x8b,0xa0,0x98, + 0x16,0xf3,0x9c,0x46,0x73,0xff,0x3f,0x1f,0x9a,0xbf,0xdd,0x57,0x51,0x94,0xf8,0x24,0x4a,0xb9,0xc7,0x49, + 0x6b,0x85,0xad,0xbe,0x78,0xf4,0xfa,0xe5,0x50,0x25,0xff,0xf8,0xfb,0x97,0xff,0xfc,0x26,0x63,0x04,0x7c, + 0x9e,0xd7,0x8f,0xab,0x99,0x7e,0xd8,0x12,0xe1,0xc7,0x87,0x9b,0x9d,0xac,0x83,0x84,0xe8,0x91,0xf5,0x7a, + 0xdd,0x1b,0x42,0x87,0xe2,0xf0,0xa7,0x49,0x30,0x05,0xf5,0x26,0x31,0x4c,0x6b,0x69,0x66,0x5c,0x33,0x25, + 0xc8,0xf8,0x2a,0xee,0x4f,0x79,0x82,0xa5,0xa0,0x79,0x77,0xc7,0x28,0xa6,0x5f,0x63,0xca,0xc2,0x15,0x70, + 0xc4,0xc0,0x28,0x5f,0x2c,0xe6,0x37,0x71,0x8d,0xd3,0x6f,0xfd,0x57,0x49,0x23,0xa6,0x64,0x40,0xbb,0x3b, + 0x22,0x2f,0xa3,0xf2,0x78,0x2f,0xca,0x56,0xd7,0x53,0xbd,0x20,0xd0,0xa6,0xc3,0xd1,0x90,0xa5,0x29,0xd3, + 0xad,0xaa,0xd6,0xcd,0x82,0x0e,0x17,0x2d,0xaf,0xeb,0xb5,0xc0,0x8e,0x23,0x3c,0xff,0x2e,0x84,0xe7,0x3f, + 0x84,0xf0,0xfc,0x27,0xe8,0x4e,0xa6,0x3f,0xc7,0xc5,0x26,0xa1,0xdb,0xa1,0x0a,0x37,0xf1,0xf1,0x84,0x56, + 0xc0,0x8f,0xf6,0xe0,0x68,0xb5,0xba,0x5d,0x27,0xa3,0x65,0x3d,0x0f,0x52,0xf7,0x8f,0x52,0x5a,0x26,0xe4, + 0x28,0x2a,0x3d,0x8d,0x3b,0xc3,0x01,0xcd,0x3a,0xba,0xd4,0xed,0x79,0x35,0x9b,0x68,0xf3,0x90,0xd9,0x07, + 0xa2,0x03,0x5e,0x54,0xd7,0xba,0x7e,0x9c,0x37,0xd8,0x0d,0x9d,0x0f,0x37,0x3e,0x1a,0xca,0xed,0x55,0xe0, + 0xca,0x46,0x44,0xb3,0x45,0x86,0x8a,0x3b,0x6c,0x94,0xd0,0x90,0x44,0xee,0x64,0x96,0xe0,0xa5,0x19,0xac, + 0xe6,0x57,0x1a,0xc4,0x1c,0x40,0x61,0x63,0xc6,0xed,0xf4,0x8c,0x0c,0x46,0x88,0xc3,0x69,0x6a,0x47,0xcb, + 0xb2,0x39,0x2f,0x4e,0x5b,0xc2,0xc0,0xa7,0xcb,0xf9,0x69,0x31,0x9f,0xeb,0x99,0x42,0xa5,0xc0,0xed,0x7a, + 0x96,0xd0,0x96,0x19,0xaa,0x51,0x16,0xed,0x8e,0x2a,0x17,0xcb,0xe6,0xfc,0xee,0xfa,0xc6,0xad,0x05,0xc2, + 0x84,0x88,0xfc,0x51,0x7b,0xae,0x4b,0xe2,0xb6,0xa4,0x13,0x60,0xaf,0xcc,0x93,0x27,0x4d,0x09,0x5b,0x07, + 0x8b,0x4d,0xd3,0xf1,0x53,0x5d,0x0c,0x71,0x00,0x43,0x0b,0x06,0x5a,0x12,0x6b,0x4c,0x5d,0x58,0x30,0xea, + 0x77,0x0f,0xef,0x74,0x5d,0xe4,0xf3,0xe2,0x0f,0x5d,0x27,0xe1,0xbe,0x9f,0x98,0x3d,0x5e,0xbb,0xb1,0x1d, + 0x46,0x33,0x3d,0xd7,0xad,0x8e,0x14,0x2f,0x85,0x8a,0xce,0x89,0xab,0xa0,0x9f,0x6a,0x81,0xf6,0x9b,0xe8, + 0xc8,0xef,0x0f,0xda,0x1b,0x41,0x57,0x89,0x2a,0xcd,0xba,0x3b,0xdc,0x74,0x94,0x3b,0x69,0x56,0x25,0xa6, + 0x3e,0x33,0xbc,0xdd,0xca,0x7a,0xa7,0xa5,0xa2,0xee,0x02,0x55,0xd1,0xd6,0x4b,0x3a,0xdd,0x58,0x54,0x0d, + 0x9a,0x5f,0x2c,0xf9,0x7f,0xde,0x4e,0xcf,0xc3,0xb6,0xeb,0x6e,0xdb,0x75,0xb7,0x6d,0x6c,0xdb,0xe1,0xd6, + 0xcb,0x4e,0xeb,0xb5,0xb4,0xae,0x66,0xa0,0xe8,0x5a,0xd3,0x09,0x8f,0x8b,0x8a,0xbf,0x8a,0x0c,0xf2,0x70, + 0x5d,0xca,0x29,0xa1,0xc1,0x9f,0xde,0x3e,0x7f,0x5c,0x5d,0x12,0xd8,0xd0,0x46,0xa3,0x4c,0x3f,0xe7,0xff, + 0xf5,0xd5,0xc3,0xfb,0x67,0x85,0x8a,0xd2,0x10,0xdb,0xfe,0xd7,0x97,0x5f,0xdf,0x3f,0x53,0xd1,0xbd,0x6e, + 0xda,0x63,0x2e,0xa8,0xba,0x89,0xfb,0x28,0xb8,0xdb,0x49,0xfb,0xfb,0x23,0x2e,0x78,0xd8,0x4d,0x7c,0xc2, + 0x89,0x47,0x91,0x50,0xf4,0xcc,0xc8,0x26,0x43,0x78,0xd6,0x0c,0x8c,0x98,0x94,0xed,0xd6,0xca,0x14,0x34, + 0xef,0xc0,0x7a,0x0c,0x26,0x26,0x01,0x7e,0x6a,0x0d,0xb3,0x41,0x09,0xb4,0x39,0xfa,0x44,0x0b,0x65,0x53, + 0xa9,0xd6,0x31,0x07,0xb1,0x94,0xbe,0x15,0xb6,0xfa,0xf0,0x68,0xdc,0xb8,0x75,0x6d,0xfb,0x07,0x99,0xf0, + 0x48,0x74,0x60,0xa0,0x5e,0x41,0xe7,0x74,0xda,0xb6,0xbb,0x59,0x74,0x78,0x14,0xa5,0xcc,0x22,0x29,0xff, + 0x79,0x78,0x0e,0x26,0xb7,0xf8,0x04,0xb4,0x1f,0xbe,0xc0,0x79,0xd3,0x56,0xcf,0xdf,0xbd,0xb6,0x5d,0x48, + 0x91,0x2b,0x24,0x25,0x53,0x5d,0x84,0xe1,0xbe,0x7f,0xf7,0xfa,0xd5,0x48,0x30,0x65,0x71,0x8a,0x76,0x20, + 0x09,0xe0,0xed,0x9b,0xd3,0x10,0x76,0xa3,0x2c,0xda,0xc5,0x4a,0x26,0x00,0x04,0x02,0xc6,0xac,0x18,0x7d, + 0xac,0x0a,0x22,0x8b,0x76,0x68,0x12,0x69,0xe4,0xb5,0xc8,0x20,0x2a,0x6a,0x89,0x68,0x12,0xfd,0x89,0x58, + 0xca,0xe8,0x7f,0x45,0xc9,0x78,0xef,0x80,0xc8,0x99,0xaa,0x73,0xe6,0xed,0xab,0x0a,0xa7,0xde,0x6e,0x16, + 0xef,0x1d,0xf0,0xf1,0xe8,0x3e,0x98,0x44,0xc9,0x84,0xfe,0xa5,0xa8,0x74,0xb7,0x5e,0xdb,0x09,0xff,0xcb, + 0xe7,0x4e,0x1d,0x9b,0x63,0xe7,0x9c,0x08,0xba,0xb9,0xa6,0x23,0xe6,0xf0,0x28,0x90,0x5f,0x8c,0xeb,0x00, + 0x79,0x50,0x05,0x9f,0xd9,0x92,0xb6,0x02,0x99,0x81,0x5b,0x87,0xbf,0x68,0x3f,0x58,0xfc,0x85,0x3d,0xa1, + 0xba,0x85,0x05,0x99,0xed,0x1d,0x00,0x67,0xf8,0x96,0xb8,0x7c,0x07,0x4b,0x75,0xbe,0xa2,0x45,0xa4,0xe9, + 0xe9,0x27,0x65,0x58,0xfc,0xa4,0x5b,0x91,0x59,0x68,0x5f,0x15,0x58,0x69,0x0f,0x3d,0x61,0x0d,0x1d,0x50, + 0xf0,0x9c,0x21,0x56,0x7b,0x4d,0xb5,0x7a,0x50,0xaf,0xff,0x47,0x62,0x26,0x22,0x65,0xbc,0x58,0x86,0xb9, + 0x41,0xff,0x4a,0xe8,0x9b,0xe8,0xe7,0xe7,0xa7,0x6f,0x05,0x9f,0xe8,0x59,0x9c,0xf4,0x65,0x47,0xff,0x92, + 0x23,0xfc,0x1b,0x39,0xc2,0x0f,0xf6,0x07,0xf7,0x5c,0x1b,0xc8,0x89,0x5a,0x9c,0x02,0x40,0xb2,0x58,0x4b, + 0xf7,0xc4,0x68,0xaa,0x1d,0x01,0x31,0x65,0x55,0x2c,0x0f,0xbe,0x1c,0x3d,0xb5,0x75,0x5e,0x36,0x34,0x2f, + 0x97,0xa6,0x2f,0x61,0x2d,0xc5,0x88,0x89,0xe0,0xd8,0xa5,0x10,0x47,0x7b,0x79,0x59,0x95,0xa6,0x52,0x93, + 0x78,0xd8,0x9a,0x43,0xf7,0xa8,0x9b,0x8e,0x4d,0xf1,0x67,0xa7,0xc1,0x00,0x72,0x56,0x91,0x34,0x12,0x62, + 0x69,0x9a,0x4e,0xf9,0x7e,0xcb,0xb7,0xaa,0x8f,0x08,0xa6,0xa8,0x6b,0xf9,0x2c,0x5f,0xd0,0x21,0xbb,0x5a, + 0x35,0xf6,0x31,0xa1,0xb9,0x90,0x03,0x72,0x50,0xa0,0xd6,0x02,0x35,0x9b,0x09,0x91,0x07,0x7a,0x1f,0x9c, + 0x10,0x39,0xae,0x41,0x75,0xaa,0x81,0x9a,0xb0,0xc5,0x57,0xab,0x58,0x2a,0xc4,0x02,0xdb,0xf3,0x1d,0x3b, + 0xd8,0x1f,0xf6,0xae,0xa5,0x4e,0x8a,0x0a,0xde,0x3f,0xd7,0x36,0xed,0x7e,0x4f,0xb1,0x18,0x1c,0x44,0x50, + 0xf9,0x27,0x90,0xe8,0xc9,0xc1,0x41,0xa8,0x61,0xa9,0x8f,0x9b,0x90,0x3b,0x90,0x62,0x9b,0x69,0x94,0x64, + 0x52,0xe6,0x7f,0x4c,0x74,0xbb,0xea,0xb7,0xe3,0x6d,0x22,0x0c,0xb7,0xf5,0xe8,0xf8,0xf8,0xf1,0xc3,0x57, + 0x8f,0x9f,0xbe,0x38,0x3e,0xfe,0xd3,0xde,0x87,0xfb,0x08,0x8d,0x6d,0x57,0xa3,0x80,0x93,0x67,0x24,0xdc, + 0x4b,0x39,0x8c,0x1e,0x57,0x44,0x69,0x95,0xed,0xde,0x7b,0xda,0xfc,0xd1,0x11,0xa3,0xe9,0x7e,0x62,0xd6, + 0x9a,0x4d,0xc6,0xfb,0xeb,0x4b,0xd9,0x5f,0x07,0x07,0xd8,0x60,0xb7,0xdd,0xa2,0x69,0x04,0x4a,0xbe,0x98, + 0xe6,0xe8,0xc5,0xfd,0x4f,0x7b,0xd7,0xd7,0xd7,0x7b,0x58,0x95,0x3d,0x3a,0xe5,0xe5,0x58,0x9e,0x45,0x6b, + 0xa2,0xa9,0x6f,0x0d,0xc0,0xa5,0xf1,0x10,0x53,0xf9,0xeb,0xcb,0x17,0xdf,0xb5,0xed,0xc2,0xec,0xab,0x09, + 0xf6,0xf6,0xc1,0x97,0x49,0x3a,0x54,0x94,0xf0,0xd6,0x54,0x37,0x50,0x2d,0x58,0xf1,0x80,0x49,0x61,0x09, + 0xc1,0x9d,0xc2,0x33,0x91,0x1c,0x98,0xa2,0x18,0xb3,0x69,0x83,0x76,0x1e,0x2d,0x5a,0x6f,0x63,0xa7,0x87, + 0x83,0x28,0x9c,0x4e,0x2c,0x15,0x3d,0x9c,0x82,0x46,0x8d,0x68,0x4a,0xf0,0xd6,0x99,0x0b,0xc2,0x46,0x23, + 0x2f,0xae,0x62,0x90,0xaf,0x46,0x1d,0x69,0x93,0x4b,0xeb,0xbd,0x8a,0xf8,0xc2,0xbd,0x42,0x4c,0xe2,0x8b, + 0xce,0xab,0x13,0x3e,0x6d,0xd3,0x5e,0x65,0x46,0xc2,0x34,0xb1,0x42,0x25,0xce,0xef,0x93,0x09,0x94,0x8f, + 0x6d,0xa7,0xfe,0x7c,0x99,0xc6,0x60,0x27,0x1b,0xdd,0x66,0xcb,0xf6,0x74,0xef,0x5f,0x11,0x76,0xbe,0x27, + 0x2e,0x12,0xae,0xdc,0x1d,0xed,0x03,0x75,0x7e,0x6c,0xaa,0x72,0xa3,0x8a,0xcd,0xd3,0x9f,0xe8,0xce,0x23, + 0xb5,0xb1,0x77,0xc3,0x09,0x17,0xd1,0xf3,0x06,0x73,0x95,0xb4,0xf5,0xcd,0xad,0xa1,0x27,0x16,0x68,0x05, + 0xbb,0x7b,0x0a,0x34,0x88,0x4f,0xfc,0xa1,0x4e,0xb5,0x17,0x97,0xba,0x5a,0xb6,0xe9,0xbe,0xfa,0xd4,0xd4, + 0xa7,0x8f,0xab,0xea,0xa2,0xd0,0xaf,0xf2,0x4b,0x9d,0x46,0xbf,0xbe,0x7b,0xfb,0x6c,0xef,0xfd,0xeb,0x1f, + 0x9e,0xbe,0x8a,0x38,0xef,0x3b,0xc6,0x26,0x26,0x6f,0x2f,0xcc,0xbd,0xcc,0x3f,0x99,0xa5,0x7d,0xc1,0x87, + 0x6f,0xba,0x77,0x80,0xb4,0x47,0xd5,0xec,0xc6,0x27,0x5c,0x11,0x75,0x4f,0x08,0x4a,0xbf,0x6b,0xf3,0x76, + 0x39,0x24,0x46,0xda,0xfa,0x72,0x7f,0xff,0x01,0x0e,0x48,0xfd,0xe0,0xab,0xfd,0xfd,0xf5,0x7a,0x3c,0x75, + 0xe7,0xc5,0xad,0x60,0xee,0xf4,0x56,0xe0,0x29,0xdd,0x98,0x4b,0xb5,0xd5,0xea,0x4f,0xed,0xfd,0x05,0xa4, + 0x74,0x6a,0xeb,0x6f,0xf7,0xff,0x16,0x11,0x2e,0xa8,0xfe,0xe4,0x94,0xe8,0x9e,0x03,0xd3,0xe0,0x00,0xc8, + 0x6e,0x41,0x67,0x57,0x7f,0x99,0xd8,0xef,0x7f,0x5e,0x99,0xf3,0xad,0x49,0x3a,0xe4,0xfa,0x9f,0xa9,0x35, + 0x02,0x2a,0xe9,0x2e,0x79,0x83,0x3f,0xf9,0xca,0x1e,0xe6,0x6c,0x89,0xba,0xa8,0x21,0x33,0x6f,0xab,0x9f, + 0x16,0x0b,0xcb,0xb8,0xd2,0x2e,0xaf,0xbb,0x29,0xb4,0x9b,0x4b,0xb0,0x23,0xc4,0x54,0xc8,0xc9,0x07,0x51, + 0xcd,0x5f,0x44,0xfd,0x73,0xc1,0x6f,0xa7,0xc0,0x06,0x5f,0x25,0x0a,0xca,0x9c,0x83,0x7f,0x24,0x6a,0x21, + 0x92,0x81,0x73,0xbc,0xfe,0x33,0x51,0x57,0x28,0xb5,0x9f,0xa8,0x4b,0xfc,0x12,0x1a,0x3c,0x43,0xfa,0xd7, + 0x83,0x63,0x5a,0x7a,0xc9,0xb9,0xbe,0xb6,0x3a,0xa3,0xb8,0x3b,0x64,0x99,0x95,0xa5,0x9c,0x6e,0x15,0x3d, + 0x98,0x89,0x1e,0xcf,0x43,0xfc,0x01,0x7d,0x81,0x19,0x50,0xd5,0x47,0xd0,0x2a,0x9e,0x5b,0xd4,0x50,0x10, + 0x9e,0x98,0x5b,0xa4,0x51,0x24,0xf4,0x51,0x31,0xc2,0xa6,0xb9,0xfb,0x63,0x1e,0x78,0xce,0xc2,0x9c,0x2e, + 0xe2,0x05,0xf3,0xb1,0x1c,0xe5,0xcb,0xf6,0x5c,0xfa,0xa8,0x33,0x79,0x03,0x55,0x5b,0x97,0xb4,0x4d,0x56, + 0xab,0x28,0x52,0xb4,0xbd,0x4b,0xdd,0x4c,0xf3,0x05,0x6d,0xc1,0x4d,0xc6,0xcb,0x7c,0xb1,0xc8,0x9b,0xe6, + 0xba,0xaa,0x67,0x49,0x82,0x6f,0xc6,0xd5,0xe8,0x21,0xa5,0x56,0x75,0xf1,0x07,0x43,0x78,0x16,0x3d,0xca, + 0x9b,0x62,0xba,0x15,0xed,0x9e,0xb4,0x15,0x61,0xca,0x5d,0x3a,0x47,0x76,0x5b,0xcb,0x36,0x9d,0x53,0x25, + 0x27,0xb4,0xb2,0x84,0xcb,0xd4,0x12,0xbc,0x75,0x82,0x8e,0xe5,0xa3,0x6a,0x41,0x74,0xca,0xd2,0x4b,0x33, + 0x02,0x10,0x50,0x8b,0xb8,0xa1,0xb2,0x86,0x03,0x5f,0x6e,0x72,0xe0,0x6a,0x9b,0x96,0x2f,0x1f,0x19,0xdc, + 0x40,0xe3,0x32,0x4f,0x94,0x56,0x95,0xd0,0xe2,0xdd,0x34,0xb4,0x8b,0x35,0x21,0xb0,0xf2,0x2c,0xa0,0xe0, + 0x19,0x19,0xe5,0x3b,0x3b,0x5f,0x13,0xd4,0xe5,0x23,0x2e,0x87,0xdd,0x0e,0xba,0x65,0x7f,0x1b,0x49,0x0d, + 0xef,0xfd,0xd5,0x2a,0x77,0x34,0x0a,0xf5,0x7a,0x67,0x67,0xdf,0x94,0x77,0x49,0x9e,0x1b,0x39,0x85,0x8c, + 0x3c,0x22,0x6a,0xc5,0x4c,0x31,0xf6,0xef,0xc3,0xf9,0xdc,0xa2,0x42,0xc1,0x49,0x4d,0x54,0xd0,0x79,0x33, + 0xb9,0xa2,0x51,0x0f,0x66,0x03,0x23,0xb3,0x12,0xa9,0xcd,0x6e,0x99,0x93,0x5e,0xba,0xc6,0xde,0xf3,0xda, + 0x47,0xc0,0x1e,0x90,0xf9,0x76,0x33,0x26,0xbe,0x53,0xa9,0x7f,0x7c,0x4f,0x65,0x95,0x8c,0x24,0xb5,0x43, + 0x32,0xef,0xc8,0x72,0x69,0x5c,0xce,0xc0,0x2a,0xb1,0x2c,0xd3,0xaa,0x3c,0x2d,0xce,0xd2,0xa5,0xb2,0x02, + 0xb7,0x7c,0x3d,0x3e,0x05,0x84,0x43,0xc3,0x9b,0x33,0xab,0x41,0x5b,0x10,0x13,0x9c,0x9f,0xd0,0x26,0x09, + 0x67,0x95,0xa6,0x94,0x8e,0x90,0xb3,0x38,0x32,0x90,0xb7,0xc5,0x25,0xe8,0x9c,0x57,0x4b,0x15,0x3d,0x7d, + 0xfc,0xfa,0xd5,0xab,0x87,0x8f,0x5e,0xbf,0x7d,0xff,0xf4,0x49,0xa4,0xf2,0xc4,0x56,0x96,0x48,0x65,0xba, + 0xae,0xab,0x3a,0xac,0x8c,0x2b,0x7a,0xa5,0x5b,0x82,0xb7,0x8b,0xad,0xa7,0xc8,0x45,0x35,0x3c,0x3d,0xfe, + 0x63,0xf9,0xd6,0xae,0x7f,0xf0,0xb5,0x59,0x05,0x93,0xb3,0x45,0x67,0x4d,0xb4,0xeb,0xc0,0x63,0x37,0xba, + 0x6c,0xb6,0xf4,0xa7,0xa9,0xd6,0x20,0x64,0xc6,0x2e,0x9d,0x5b,0x79,0x49,0xa4,0x44,0x7e,0x26,0x6a,0xc5, + 0xc1,0x1c,0x62,0x68,0xa9,0x6b,0xfa,0x73,0x63,0x5a,0xab,0xf9,0x68,0x48,0x55,0x10,0x1b,0xf8,0x98,0x66, + 0x04,0xf1,0xd7,0x45,0x7b,0xfe,0xb8,0xa6,0x2e,0x50,0xff,0xf3,0x39,0x41,0xdb,0x25,0xe1,0x61,0xda,0xe8, + 0xcb,0x51,0xf7,0x84,0x9b,0xcc,0x18,0x44,0xe3,0x7e,0x7a,0x92,0x8a,0x50,0x6f,0x3c,0xa5,0xbe,0x56,0x87, + 0x92,0xed,0x0f,0xbf,0xa3,0x6c,0xca,0xcc,0x76,0x44,0x47,0xb7,0x59,0x0f,0xc9,0x64,0x20,0xdc,0xd9,0x99, + 0x3b,0x0c,0x5d,0xf5,0x30,0xb4,0xd3,0x37,0x17,0x04,0x71,0x53,0x83,0x64,0x80,0x7c,0x40,0x8b,0xb5,0x5d, + 0x81,0xe3,0xc4,0xa1,0xa3,0xf6,0x08,0x10,0xd5,0x6b,0x8b,0xe8,0x09,0x90,0xeb,0x3c,0x1d,0x9e,0x5c,0xdd, + 0x18,0x3b,0xd8,0x88,0xbc,0x9f,0x98,0x6d,0x6f,0x6f,0x16,0x54,0x5d,0xc8,0x67,0xfa,0x21,0xef,0x24,0xf5, + 0xf6,0x86,0xa1,0x26,0x44,0x30,0x13,0xe1,0x0c,0xde,0xdc,0x3f,0x09,0x73,0xa3,0x5b,0xe5,0x7a,0x40,0x0b, + 0xb0,0x24,0xf8,0x7a,0x52,0x5d,0x97,0xb0,0xde,0x20,0xbc,0x7f,0x56,0x33,0x99,0x9a,0x13,0xab,0x35,0x7b, + 0x7a,0x05,0x4a,0xa2,0x20,0xf6,0x95,0xa0,0x37,0x8e,0x16,0x26,0x97,0xc0,0x74,0xe0,0x9b,0x44,0xdd,0x51, + 0xf9,0x4f,0x8b,0x7e,0xd5,0x4b,0x4e,0xf1,0x4f,0x7f,0xda,0x56,0xb7,0x0a,0xcc,0x51,0x87,0xf3,0xee,0xbc, + 0x82,0x8a,0x66,0x6e,0x6a,0x83,0x3f,0xc4,0xee,0xa5,0x71,0x61,0xcb,0xc6,0x80,0x71,0xed,0x77,0x28,0xd1, + 0xd3,0xb4,0x42,0x85,0xbc,0x29,0x2c,0x73,0x39,0xa3,0x53,0xe9,0xaf,0x1d,0xc6,0xc5,0xdd,0xc7,0xaa,0xf9, + 0xc4,0x70,0x6b,0x23,0x41,0x3d,0xa3,0x2e,0x05,0x36,0x2e,0x0d,0x9e,0xda,0xd9,0x11,0x8d,0xb4,0x7d,0x4f, + 0x26,0x6d,0x5c,0x78,0x5c,0x73,0x9a,0x13,0x0a,0x9e,0x6d,0x01,0x60,0xb6,0xa4,0xc0,0x16,0x8e,0x31,0xda, + 0xf7,0xf6,0x03,0x65,0x5b,0x10,0x2c,0x52,0x3a,0x4b,0x97,0x12,0x14,0x2c,0x81,0xc8,0x5f,0x19,0x0d,0xf3, + 0x4c,0x7f,0xbf,0x7b,0x34,0x84,0x27,0x0b,0x2b,0xde,0xc2,0x59,0xcc,0x98,0x23,0xb0,0x98,0xc8,0x69,0xbb, + 0xd9,0x62,0xff,0x73,0xae,0xd2,0xb7,0xe0,0x94,0x4f,0x32,0xa4,0x8c,0x32,0x98,0xed,0xc6,0x98,0xb3,0x32, + 0x51,0x5e,0xbd,0x51,0x07,0xac,0x76,0x56,0xd0,0x0b,0xf1,0x1b,0x30,0xbc,0xe1,0x9e,0xc1,0x1c,0x09,0x2c, + 0x01,0x28,0xf0,0x0e,0xf6,0xe5,0xea,0x6f,0x2f,0x05,0xe5,0x89,0x5e,0xc2,0xbc,0x28,0xd0,0x0c,0x92,0x82, + 0x27,0x22,0xcf,0x1a,0xd6,0x52,0x42,0x6b,0x6b,0xe4,0xe8,0x2e,0x41,0x89,0xbe,0xda,0x94,0xe6,0x67,0x85, + 0xa3,0xf2,0x95,0xab,0xc2,0xbe,0xa9,0x39,0xa1,0x86,0x57,0x41,0x69,0xff,0x4e,0x47,0xd2,0x7c,0x79,0x59, + 0x86,0x99,0x61,0x0a,0xce,0xb4,0xe9,0x85,0xa4,0xf3,0xa3,0x3d,0xc2,0x4c,0x49,0x5e,0x71,0x4c,0x8b,0x4d, + 0x98,0x41,0x48,0xf8,0xa7,0x82,0xc2,0x41,0x61,0x6f,0x73,0x07,0x5a,0x9f,0xdc,0x5e,0xd7,0x45,0x47,0xb7, + 0x6e,0x57,0x4a,0x55,0x02,0x0d,0x39,0xc4,0xb7,0xb9,0xd1,0x71,0xb0,0x84,0x74,0x80,0xcc,0x6a,0xe9,0x04, + 0x41,0x13,0x32,0x30,0x82,0x48,0x20,0x01,0xfe,0x24,0xa2,0x1e,0x14,0xb4,0x8a,0xf4,0x1d,0xa0,0x8a,0x85, + 0xb5,0x65,0x42,0x0b,0xf7,0xed,0xcb,0xf7,0x8e,0x9d,0x53,0xd2,0x3d,0x7e,0xab,0x83,0x6f,0x89,0x0f,0x38, + 0xa7,0x0f,0xeb,0x4e,0x81,0x22,0x28,0x30,0xab,0x2e,0x89,0x21,0xa1,0x22,0x05,0x48,0xaa,0x8c,0x85,0xb0, + 0x36,0xaf,0xd1,0xd3,0x65,0x0d,0x36,0xd8,0xea,0x88,0x69,0x06,0x71,0x04,0x11,0x25,0x24,0x42,0xdd,0xf1, + 0x16,0x2b,0x3e,0x08,0xdf,0x77,0x98,0x25,0x51,0x3d,0xf5,0x3e,0x1a,0x5d,0x0a,0x36,0xa6,0x21,0xbc,0xd5, + 0x67,0x4f,0x3f,0x2d,0xe2,0x28,0xfe,0xcf,0x6a,0xfc,0xe1,0x43,0xf3,0xb7,0x24,0xa6,0x29,0xd9,0x8d,0x92, + 0x2c,0x3e,0xfc,0xcf,0xf8,0xe8,0x6f,0x49,0xe4,0x55,0x39,0x2d,0x9d,0x32,0x9b,0x73,0x75,0xf8,0xd5,0x91, + 0x90,0x4b,0x68,0xfc,0xb2,0xba,0xea,0xda,0x28,0xf0,0x5a,0xf3,0xa2,0xd0,0x5a,0x10,0x7d,0x8b,0x19,0x1b, + 0x95,0xd5,0x75,0x9c,0xec,0xfd,0xeb,0x1f,0x5f,0xeb,0xbf,0xd3,0xe6,0x4b,0xfb,0x8b,0x46,0x1c,0x67,0x6f, + 0x1c,0x1d,0x83,0x99,0xcd,0x76,0xe8,0x83,0xbf,0x2a,0x89,0x3a,0xf8,0x17,0x21,0x51,0xfc,0x7e,0x73,0x17, + 0xee,0xf0,0x7b,0x9a,0xd1,0x5c,0x9b,0x4c,0x0a,0x4e,0x4e,0xff,0x1f,0xa4,0x4f,0xf7,0xff,0x13,0x1f,0xe6, + 0x7b,0x7f,0x1c,0xe1,0xdf,0x87,0xd9,0x87,0xdd,0x0f,0x7b,0x1f,0x46,0x47,0x7f,0x4b,0x93,0xc9,0x87,0xfb, + 0x1f,0xee,0xdf,0x27,0x96,0x02,0xca,0x1c,0xfd,0x7f,0x85,0x88,0xbc,0x0c,0x7c,0x12,0x68,0xc0,0x3f,0xdc, + 0xdf,0x15,0x75,0xf7,0x6e,0x74,0x9f,0x88,0xff,0x50,0x45,0x76,0x7f,0x97,0x33,0xd2,0xbf,0xb4,0xf3,0x9c, + 0x84,0xea,0x30,0x22,0x94,0x43,0xbc,0x6c,0x1e,0x72,0x1a,0x2c,0x23,0x15,0xba,0x44,0xc4,0xe8,0x41,0x02, + 0x13,0x2a,0x2a,0xd2,0x6d,0x7e,0x86,0x1f,0xd9,0x36,0xf4,0x74,0x4a,0xe7,0x1e,0x38,0x6a,0x61,0x90,0x8b, + 0xd3,0xbd,0xcb,0x6a,0x56,0x9c,0x16,0x7a,0xb6,0xd7,0x14,0x74,0x3a,0x4a,0xda,0xb2,0xdc,0x48,0x9d,0xe7, + 0x4d,0xeb,0xca,0xe2,0xbd,0x9a,0xda,0x3e,0x5c,0xe6,0x9f,0x20,0x6f,0xb9,0x26,0x64,0x80,0x16,0xe8,0x64, + 0xfd,0x74,0xb3,0xd7,0xef,0x68,0xad,0x4f,0x75,0x4d,0x54,0x17,0x9e,0x88,0x5a,0xd9,0xcb,0x4f,0x5b,0x7e, + 0x03,0xf7,0xb5,0x47,0x63,0x2b,0x5b,0xe2,0xdd,0x86,0xd7,0x90,0xb7,0x90,0xa0,0x91,0xc0,0x46,0x54,0x43, + 0xfa,0xe7,0x44,0x96,0xa3,0x66,0x31,0x2f,0xda,0x38,0xfa,0x50,0xd2,0x16,0xed,0xc9,0x5b,0xea,0x50,0x5f, + 0x42,0xdc,0x09,0xf1,0x15,0xd5,0x08,0x66,0x0c,0xf8,0x6c,0x79,0x42,0xf3,0x1d,0xef,0x13,0xe7,0x9a,0x74, + 0x49,0x3a,0x18,0x84,0xf6,0x4a,0xd5,0xbb,0xb0,0x3d,0x68,0x8d,0xc9,0x6c,0x7b,0x44,0xac,0xd0,0x03,0xda, + 0xff,0xb6,0xee,0xd6,0xda,0x0d,0x8e,0x91,0x99,0x81,0xe2,0xdc,0x93,0xfd,0xce,0x14,0xe3,0x84,0xbf,0x99, + 0xe0,0x5f,0x7a,0x78,0x94,0x00,0x25,0xd3,0x14,0xc6,0x87,0x25,0xed,0x5f,0x97,0xb3,0x1b,0x29,0x1c,0xd5, + 0x69,0x09,0x89,0x46,0xf1,0x57,0x4f,0xe2,0x0e,0x72,0xce,0xef,0x42,0xce,0xa1,0xd5,0x83,0x37,0x67,0x71, + 0x38,0x4a,0x3b,0x3b,0x57,0x10,0xd2,0xa0,0x61,0x1f,0xb6,0xd4,0xce,0xc9,0x92,0x70,0x47,0x74,0x4e,0xeb, + 0x17,0x81,0xf5,0xc1,0xdc,0xe1,0x05,0xf2,0x96,0x3b,0x8a,0xdc,0xe2,0x29,0x95,0x62,0x8a,0xa5,0x95,0x74, + 0x4e,0xd1,0xbb,0x7d,0x9c,0xf8,0x47,0xbf,0x31,0x52,0xd9,0x2f,0x29,0xe1,0x28,0xc0,0x26,0x3e,0xa7,0x1f, + 0xd5,0xb0,0xbc,0x2f,0x45,0x5b,0x78,0x98,0xd8,0x87,0x4d,0xa5,0x33,0x7f,0x99,0x37,0x28,0x8b,0x9f,0x89, + 0xfc,0x04,0xe5,0xfe,0x57,0xa7,0x01,0x3e,0xbd,0xa5,0x11,0x3e,0xbe,0x31,0x77,0xe8,0x23,0xfd,0x28,0x1c, + 0x14,0x9c,0x4f,0x9b,0x17,0xa7,0xc0,0xc8,0x26,0xb0,0x55,0x0a,0x5b,0xa4,0x4c,0x7c,0x22,0x4a,0xed,0xfa, + 0x57,0x63,0x84,0x41,0xb0,0x7a,0x3f,0xbe,0x6c,0x0a,0xbd,0xa2,0x09,0x02,0xdd,0x9e,0x58,0x3c,0xe3,0x0d, + 0x95,0x00,0xfb,0x0f,0x01,0xfa,0x50,0xf5,0xf8,0x23,0x82,0x8d,0x80,0x9f,0xce,0x35,0xde,0xe2,0x28,0x8f, + 0xbc,0x61,0x0f,0x2d,0xb5,0x98,0x2f,0x8d,0xec,0xf6,0x33,0x6b,0xb1,0x79,0xe2,0xe4,0xfe,0x88,0xd3,0xc9, + 0xa4,0x64,0x6b,0x3d,0x77,0x90,0xb8,0xf9,0x67,0x79,0x93,0x7d,0x81,0x34,0x0a,0xf3,0xc1,0x89,0x78,0x58, + 0xaf,0xe3,0x64,0xf3,0x10,0xd8,0xde,0xff,0x2b,0x60,0x79,0xfa,0x39,0xb5,0x43,0xd7,0x04,0x3d,0x40,0xa2, + 0xa7,0xa3,0x8e,0xed,0x1e,0xcb,0xf8,0xfb,0x69,0x74,0x22,0x9c,0x1a,0x81,0x1d,0x9f,0x0b,0x9f,0xc9,0x87, + 0x1a,0x4a,0x0a,0x88,0x26,0x98,0xb2,0x5a,0x67,0x72,0xd5,0x7a,0x1b,0x5b,0xc8,0x5b,0x6f,0x4f,0x3b,0xcc, + 0x19,0x6c,0xd9,0x51,0x51,0x98,0xd6,0x22,0x0d,0x1c,0x00,0x84,0x86,0x75,0x2c,0x0c,0xa2,0xe2,0x54,0x6c, + 0x61,0x4e,0xc4,0x9b,0xe2,0x8f,0xd7,0x65,0xc6,0x1a,0xb2,0xb1,0xb5,0x6e,0xa7,0x45,0x3e,0x8c,0x96,0xf5, + 0x1c,0x28,0x93,0xc5,0x3c,0xf4,0x00,0xf9,0x46,0x74,0xc4,0x08,0xde,0xc8,0x1e,0x0c,0x92,0xb7,0x88,0x94, + 0xe5,0x97,0x90,0xf7,0x50,0xa9,0x86,0x4a,0x19,0xd9,0x11,0x25,0xf7,0x05,0xfb,0xdd,0x24,0x21,0x74,0xdd, + 0xd7,0x5e,0x5a,0x84,0x62,0xc2,0xcd,0xfb,0x27,0xc3,0xd2,0x53,0x42,0x8f,0xd1,0x44,0x67,0x44,0xb7,0xc1, + 0x88,0xdb,0xf3,0x8a,0xf4,0xda,0x65,0xc3,0x4d,0x82,0x67,0xbc,0x61,0xe3,0xd1,0x63,0xc9,0x38,0xa9,0xcf, + 0x11,0x62,0x12,0x88,0xac,0xb9,0x5c,0x98,0x97,0xbe,0x74,0x5a,0x92,0xbc,0x70,0x5a,0xde,0xdf,0xea,0x19, + 0x1d,0x68,0xd3,0xb6,0xb1,0xa3,0x06,0x90,0xe1,0x5c,0x6b,0xdb,0x05,0x6f,0x29,0xf3,0xdc,0xd8,0x97,0x80, + 0xf7,0xa3,0xb7,0xa6,0x9a,0x5e,0xe8,0xf6,0x4d,0xce,0xd5,0xd9,0x71,0x3d,0x05,0x25,0x0a,0xc1,0xfc,0x91, + 0x9a,0xd2,0x4c,0x77,0xf9,0x2f,0x3a,0x9d,0x4e,0x07,0x45,0x05,0x83,0x80,0xb3,0x01,0x24,0x9c,0x0a,0x0e, + 0xd2,0x57,0x92,0xc3,0xc0,0xc6,0xbf,0x36,0x7f,0x56,0xe7,0xff,0x05,0x30,0x86,0x8d,0x77,0xda,0x9e,0x76, + 0x1a,0x83,0xb1,0xe7,0x56,0x39,0xd9,0x80,0xe0,0x94,0x33,0x5a,0x28,0x94,0x06,0x1a,0x59,0x27,0x63,0xb1, + 0xed,0xae,0xec,0x51,0x96,0xbb,0x43,0xad,0x71,0x4f,0xd3,0xc0,0xec,0xfb,0x42,0xdf,0xc0,0xb6,0xc3,0x66, + 0x85,0xa9,0xc4,0x7b,0x82,0x07,0x22,0x40,0x1b,0x50,0xd6,0xb2,0xcd,0xc3,0xd2,0x9d,0xb3,0x10,0xa5,0x8c, + 0x1d,0xc2,0xb0,0x43,0x9a,0x63,0x3a,0xfb,0x27,0xe6,0x5d,0x1a,0x45,0x4f,0x1b,0x1b,0x6e,0x2e,0xd3,0xeb, + 0x72,0x40,0xb3,0xb6,0xc9,0x0b,0x46,0xe2,0x4e,0x11,0xed,0xc6,0xe1,0xe7,0x93,0x28,0xa5,0x63,0x3b,0x4c, + 0x49,0xd9,0x0e,0x2a,0xac,0xd3,0x6b,0x3e,0x85,0xdb,0x74,0x8e,0x2b,0xff,0x23,0x73,0x02,0x88,0x6f,0x9c, + 0x04,0x65,0x3b,0xd0,0x20,0x89,0xec,0x86,0x38,0x0a,0x6c,0x4f,0x61,0xb7,0x89,0xec,0x23,0xae,0x85,0x4e, + 0x9a,0xad,0xcb,0x65,0xd3,0x6e,0x9d,0xe8,0xad,0xdc,0x99,0x3e,0x8e,0x22,0x59,0xbe,0x76,0xcc,0xbd,0x36, + 0xe2,0x90,0x6c,0x50,0xae,0x2f,0x5a,0x60,0xb3,0xde,0x25,0xdb,0xdf,0x8d,0xbb,0xd9,0x10,0x22,0xe4,0x0d, + 0x2c,0x02,0x62,0xfb,0xc8,0x55,0xc1,0xaa,0x51,0xb5,0x2e,0x0d,0x40,0xe3,0x0d,0x1c,0xbe,0xea,0x5a,0x97, + 0xf4,0x6d,0x21,0x7a,0x82,0x6a,0x63,0x78,0xc5,0xd5,0xc8,0x60,0x83,0x14,0x18,0x7d,0x34,0xd5,0xb2,0x9e, + 0xea,0xbe,0xf4,0xb3,0x35,0x90,0x72,0xdb,0x62,0xeb,0xb3,0x9d,0x64,0xbd,0x39,0x32,0x25,0xe8,0x81,0x79, + 0x8c,0x3b,0x0d,0x3d,0xfe,0x9c,0x1f,0x68,0x37,0x2d,0x4c,0xbd,0xbe,0xac,0x35,0x76,0xa1,0xe2,0x1f,0x01, + 0xd3,0x50,0xd9,0x94,0xdd,0x16,0xee,0xf6,0x36,0x1b,0xd0,0x17,0xff,0x7f,0xe4,0x70,0x46,0x67,0x64,0xcc, + 0x86,0x9b,0x8d,0x9e,0x9f,0x26,0xa3,0x9f,0x97,0x7a,0xd8,0x95,0x6c,0xe3,0x90,0x3f,0xb3,0x3b,0xfb,0xb4, + 0xd6,0xfa,0x0f,0x9c,0xb7,0x89,0x07,0xd7,0x17,0x3d,0x47,0x8b,0x8e,0xe3,0xce,0x9b,0x0d,0x2f,0x8c,0x20, + 0xf3,0x61,0x60,0x37,0xd0,0x73,0xf8,0x79,0xff,0x39,0x9f,0x81,0xd5,0x6a,0xd3,0x31,0x80,0xd2,0x9a,0x9b, + 0xcb,0x93,0x6a,0xde,0x4d,0x3b,0xa9,0xaa,0xb9,0xce,0xcb,0x41,0x17,0xa1,0xe7,0x7f,0xd5,0xa9,0x48,0x98, + 0xda,0xbb,0x7d,0x5a,0x5c,0x8d,0xd3,0x01,0xc3,0x7f,0xeb,0x77,0xc4,0xd4,0xd6,0x86,0xd7,0x4f,0xe1,0x29, + 0x39,0x56,0x08,0x3f,0xa3,0x23,0xb3,0x8d,0x1d,0x41,0xe7,0xf0,0x1f,0x31,0x20,0x84,0x9f,0x5f,0xd2,0x41, + 0x36,0x3a,0x9d,0x57,0x30,0x60,0x85,0x0e,0x91,0x92,0xa0,0x33,0x2b,0x99,0xed,0x0f,0x6a,0xbd,0x09,0x3d, + 0xbe,0x98,0xb8,0x1a,0xf4,0x63,0x81,0x4c,0xf4,0x2e,0x17,0x17,0x08,0x2e,0x7c,0x85,0xed,0xe6,0x1a,0x4f, + 0xa2,0x28,0x65,0x6a,0x2b,0xb0,0xbf,0x5b,0xad,0xa6,0xdc,0x5a,0x80,0x58,0x69,0xd4,0x93,0xbe,0x06,0x5d, + 0x04,0x92,0x5f,0x26,0xa9,0x1b,0xa7,0x6f,0xe9,0xed,0xe0,0x84,0x78,0x81,0x62,0xd1,0xbc,0xca,0x5f,0x81, + 0xc0,0xd3,0x21,0x61,0x97,0xcb,0xae,0xf2,0xde,0x50,0x66,0xb1,0x84,0xc6,0x8e,0x45,0x90,0x0b,0xfe,0xd0, + 0xb0,0x8f,0x2a,0x82,0x78,0x62,0x7f,0x5c,0x3c,0xa8,0xad,0x99,0x6d,0xb1,0xbb,0x9b,0x94,0x87,0xf5,0x61, + 0x71,0x74,0x44,0x78,0xdb,0xcb,0x62,0x06,0x76,0x38,0x1d,0x9a,0x5d,0x1e,0xf2,0x68,0x3d,0xe8,0x75,0x04, + 0x9b,0x25,0xe3,0x17,0x95,0xc7,0x51,0x33,0xaf,0x5a,0x35,0xb5,0x02,0x9d,0x88,0x95,0x79,0x73,0x64,0xd0, + 0xc1,0xa8,0xc0,0x42,0x71,0x01,0xfc,0xdb,0x6b,0xa6,0xd5,0x42,0xab,0xa2,0x89,0x82,0x6d,0x76,0xec,0xfc, + 0xc3,0xac,0x79,0xba,0xcc,0x53,0x19,0x70,0xbd,0x2d,0x2b,0x19,0xf7,0x0e,0x1e,0x94,0xce,0x22,0x93,0x47, + 0x4c,0x74,0x70,0xa9,0x0e,0x12,0xe9,0x4c,0xb9,0x09,0xc9,0x5d,0x5f,0x2f,0xdf,0xe6,0x69,0x87,0x68,0x2f, + 0xad,0x13,0x58,0x9b,0x84,0x24,0x75,0x6b,0xfb,0x31,0x30,0xe7,0xe3,0xbb,0xd1,0x24,0x66,0x07,0xc7,0x08, + 0x28,0x8e,0x96,0xad,0x27,0xd7,0x22,0x09,0xb9,0xbf,0x17,0x7f,0xb8,0x4e,0xee,0x9f,0xa9,0x93,0x4c,0x0f, + 0x59,0x74,0x79,0xf1,0x4b,0x5f,0x93,0xe3,0xd6,0xac,0xa7,0x6d,0xa7,0x33,0x7a,0x0d,0x14,0xdc,0xdc,0x55, + 0xa1,0x63,0xf7,0xba,0xdf,0xed,0x7a,0x57,0x84,0x35,0xd4,0xea,0xf7,0x3f,0x3c,0x8a,0x0f,0x1f,0xee,0xfd, + 0xfb,0x08,0xbd,0xbb,0xfe,0xb3,0xde,0xcd,0x54,0xb4,0x77,0xef,0x20,0xea,0x89,0x1b,0xd6,0xd0,0xcb,0x5b, + 0xb7,0x9f,0x60,0x09,0x4e,0x68,0x0d,0x27,0x83,0xc3,0x91,0x3c,0x9a,0xe6,0x75,0xe8,0xe7,0x51,0x77,0xdd, + 0x53,0x1c,0x3b,0xd8,0xf7,0x22,0x71,0x73,0x72,0xf0,0xa0,0x9d,0x78,0x97,0x05,0x57,0x2e,0x49,0xcd,0xb2, + 0xc2,0x8d,0xc1,0x3d,0x27,0xce,0x16,0x65,0x74,0x2c,0x15,0x65,0xa5,0xa9,0x51,0xe9,0xb5,0x07,0x90,0x73, + 0x63,0xe4,0x00,0x97,0xc8,0xfd,0xb1,0xdf,0x7e,0x16,0x44,0xf7,0x5a,0xda,0x75,0xde,0xe1,0xa2,0x4c,0xc6, + 0xe5,0xde,0xde,0x38,0xa9,0x61,0xf4,0xad,0x0f,0xcb,0x5d,0xef,0x4d,0x51,0x7b,0x90,0xba,0xea,0x6d,0x66, + 0x26,0x4e,0x13,0x36,0x14,0x6f,0xe9,0x9f,0x13,0x0c,0xf9,0x2f,0x2e,0x99,0x94,0x36,0xe5,0x5b,0xb0,0x60, + 0x25,0x6d,0xee,0xd2,0x3b,0x72,0x94,0xec,0xc8,0x51,0x1e,0xed,0xec,0x5c,0x41,0x47,0x07,0x59,0x8c,0x9b, + 0x19,0x5f,0xcd,0x85,0xa5,0xcb,0x18,0x12,0x5f,0xdf,0x61,0x1a,0xbe,0x7d,0xb0,0x56,0xf7,0x06,0x2d,0xeb, + 0x83,0x89,0xf9,0x14,0x5b,0xeb,0x68,0xb0,0xd9,0x76,0x3b,0x12,0x5e,0x11,0x4d,0xed,0x73,0x18,0x11,0xd6, + 0xf4,0x53,0xf2,0x8e,0x65,0x9b,0xb9,0xda,0x16,0x62,0x81,0xe8,0xce,0x8e,0x41,0x8e,0x8c,0xe8,0xcd,0x33, + 0x95,0x86,0x06,0x50,0x28,0xab,0x2e,0xf2,0x65,0xd9,0x42,0x37,0x49,0xea,0x2e,0x76,0x76,0xaa,0xc4,0x91, + 0x26,0x66,0x31,0x33,0xb7,0x9c,0x10,0x06,0xe8,0x2b,0x5d,0xdf,0xc4,0x83,0xc0,0xf7,0x09,0xd8,0x5a,0x2c, + 0x51,0x50,0x59,0x1b,0xba,0x8b,0x3d,0x61,0x1b,0x82,0xb2,0x9f,0xe4,0x1b,0x3b,0xd3,0xed,0x7b,0x62,0x3c, + 0xd9,0xdc,0xa5,0xf4,0x6f,0xdc,0xab,0xd5,0xaa,0xea,0x7a,0xdf,0xe6,0x3d,0xee,0x81,0x76,0x6b,0x97,0x71, + 0x70,0x2a,0x25,0x3f,0x88,0xc6,0x0d,0x22,0xdf,0x18,0x44,0x30,0x84,0x80,0x57,0xb7,0xe6,0x56,0x6d,0xb0, + 0x9a,0x1e,0x00,0x1e,0xf7,0x8f,0x91,0x0d,0x20,0xa2,0xae,0xd3,0x94,0xc0,0x93,0xd6,0x49,0x01,0xb7,0xca, + 0xb1,0x65,0x5f,0x7c,0x4d,0x2f,0xfd,0x96,0xa4,0xf1,0x6d,0xba,0x23,0xd1,0x7e,0x21,0xc8,0x60,0xfe,0x40, + 0xb6,0x24,0xd3,0x60,0x7e,0x57,0x1a,0x6c,0xf8,0x24,0x63,0xc9,0xc1,0x5e,0xa3,0x6b,0x1a,0xde,0x5e,0xad, + 0x09,0xd1,0xd7,0x90,0xcb,0xbe,0x23,0xc6,0x35,0x38,0x4b,0x22,0xe1,0x92,0xe1,0x60,0xa7,0x22,0xe1,0xaf, + 0x88,0xbb,0x7d,0x0a,0x39,0x82,0xa6,0xd1,0xe8,0xc7,0x8c,0x93,0xc1,0x1e,0xf3,0x03,0x24,0x12,0x92,0xf1, + 0xb2,0x5a,0xf2,0xf7,0x97,0xf8,0x0d,0xd2,0x7f,0x5a,0xcc,0xe4,0x83,0x25,0x3f,0xf8,0x8c,0x27,0x44,0xb3, + 0xd7,0xd5,0x0d,0x73,0xf3,0xfc,0xc4,0x79,0x39,0xda,0x36,0xe5,0x66,0x3a,0x7c,0x63,0x43,0x87,0xc7,0xf9, + 0x82,0x26,0x80,0xdf,0x65,0x24,0x6f,0x20,0x26,0x16,0x6b,0xad,0x8f,0xd9,0xad,0xf8,0x88,0xbc,0x84,0x28, + 0x87,0x00,0x9d,0x3e,0x3c,0x2b,0x74,0x93,0x0e,0x1d,0xe1,0x4d,0x41,0x6b,0xd1,0xa6,0xdb,0x07,0xca,0x38, + 0xff,0xd1,0x77,0xef,0x8b,0x05,0x12,0x66,0xfa,0xaa,0x25,0x62,0xaf,0xe1,0x4c,0x5d,0x43,0x3a,0x02,0xa0, + 0xc4,0x2b,0xf7,0xe1,0x3b,0x31,0xff,0x16,0x8b,0x93,0xeb,0xbc,0x2e,0x3b,0x09,0xc5,0x59,0x49,0x83,0x9b, + 0x19,0x69,0x5c,0x93,0x1e,0x1e,0x29,0x02,0x3b,0x38,0xa6,0x0d,0x77,0xa4,0x68,0xde,0x6a,0x1e,0xca,0xec, + 0x7d,0x7e,0x96,0xbe,0x0e,0xde,0x21,0x29,0xe5,0x84,0x9f,0xca,0x8b,0xb2,0xba,0x2e,0x4d,0x95,0x94,0x84, + 0x0d,0x90,0x9f,0x41,0x66,0xd2,0x2c,0xe8,0x80,0x48,0x2f,0x14,0x53,0x38,0x6f,0xe6,0x79,0x8b,0xde,0x9a, + 0xbc,0xf4,0x9e,0x02,0x17,0xf7,0x13,0x65,0xd0,0x79,0x4c,0x9f,0xe5,0xcd,0x4d,0x39,0x4d,0x09,0x54,0x8e, + 0xe7,0xc5,0xa9,0x9e,0xde,0x4c,0xe7,0xfa,0xbb,0xaa,0xba,0x68,0xd2,0xa7,0x6b,0xf5,0x2c,0xbb,0x9f,0xef, + 0xfd,0x41,0x47,0xd2,0x87,0xe5,0xfe,0xfe,0xa3,0x7f,0xe2,0xff,0xe3,0xfd,0x3d,0xfc,0x3c,0xf9,0x07,0xff, + 0xff,0x17,0xbf,0x3c,0xe3,0x97,0x67,0xfc,0xf2,0xd5,0x3f,0x9f,0xf0,0xff,0x67,0xf4,0x72,0xf0,0xec,0xd9, + 0xb3,0x0f,0xcb,0x2f,0xe9,0xa3,0x3d,0xfe,0x79,0x82,0xff,0x5f,0x3d,0xe3,0x97,0xaf,0xf7,0xf1,0xff,0x9f, + 0xa8,0xed,0xcb,0x83,0x7f,0xa1,0xd8,0xe3,0x7d,0x7e,0x79,0xf6,0x94,0x5e,0xbe,0xda,0xdf,0x3f,0xa0,0x97, + 0x27,0xff,0x44,0x05,0xcf,0xbe,0xe1,0x9c,0x67,0x4f,0x1e,0xe3,0xe5,0xc9,0x33,0x7e,0x79,0xf6,0xec,0xc9, + 0x7d,0x8f,0x0f,0x5f,0x59,0x15,0x61,0x72,0x6b,0xa6,0x53,0x78,0x12,0x4b,0x73,0x70,0x36,0x6d,0x98,0xf9, + 0x52,0xa7,0xa5,0xd2,0x44,0xde,0xeb,0x3a,0x3f,0x99,0xd3,0xf2,0x6d,0xd7,0x0a,0x7a,0x2b,0x79,0xd9,0x37, + 0xca,0xce,0xa5,0xc9,0xdc,0x37,0x7c,0xe6,0x23,0xf5,0x53,0x16,0x6a,0xd9,0x0e,0xff,0x13,0xed,0x3e,0x33, + 0x9c,0xe2,0x6e,0x34,0xba,0x77,0xfc,0xe1,0xc3,0xec,0x88,0x68,0xbe,0xef,0xb2,0xe8,0xf8,0x98,0x0f,0xdd, + 0xe3,0xe3,0xa8,0x28,0xe9,0xa0,0xf8,0x39,0xbb,0xdb,0x79,0x54,0xfd,0x32,0x98,0xf9,0xcb,0xaf,0x4f,0xcb, + 0xab,0xa2,0xae,0x4a,0xac,0x2b,0xe1,0xea,0xed,0x4e,0xc2,0x68,0x61,0xd6,0x53,0xfd,0x91,0xfd,0xb2,0xb3, + 0x33,0x9c,0xd7,0x53,0x41,0xfc,0x9e,0xfd,0xbc,0xb3,0x63,0x24,0xbe,0x03,0x62,0xe3,0x5e,0xe9,0x1f,0xb2, + 0xdf,0x77,0x76,0xee,0x87,0x32,0xe7,0xfb,0x22,0x71,0xfe,0x3d,0x51,0xdf,0x23,0x6f,0xff,0xc1,0xef,0x5e, + 0x11,0x82,0x72,0x5b,0xdf,0x8c,0xf6,0x69,0xf4,0xdf,0x6e,0x64,0xea,0xd9,0x99,0xbe,0x4f,0x39,0xbf,0x66, + 0x31,0x65,0x05,0x19,0xb4,0x37,0xea,0xaa,0x98,0x51,0x16,0xda,0x2a,0x16,0xe7,0x84,0x68,0x56,0xc5,0x22, + 0x9f,0xd1,0xbf,0x8a,0xfe,0x55,0x8d,0x6b,0x93,0xb8,0x2c,0x7a,0x05,0x7f,0xf3,0x47,0xa2,0xfe,0xcd,0x15, + 0xdd,0x9f,0x12,0xe3,0x7e,0xa9,0x3f,0xdc,0xff,0x30,0xdb,0xf5,0x7d,0x43,0xc6,0xe2,0x3c,0x2f,0xdb,0xea, + 0xf2,0x63,0xd3,0x49,0xfe,0xdd,0x28,0x4a,0xef,0x9f,0x12,0x1a,0x3b,0xad,0x3e,0x7d,0xb8,0x1f,0xd3,0x97, + 0xc9,0xfd,0x24,0x51,0xbf,0xd1,0x69,0x3e,0xba,0x46,0xae,0xfa,0x11,0xa8,0x94,0x10,0xf0,0xcf,0x89,0x3d, + 0x04,0xb5,0x86,0xa2,0xe8,0x0e,0x80,0xd2,0x90,0x89,0x36,0x0d,0xe3,0xc4,0x5b,0xda,0x7b,0xa1,0x84,0x9b, + 0xaa,0xda,0x87,0xe6,0xc5,0xcc,0xf9,0xa6,0xc5,0x09,0x3a,0xb7,0xe7,0x3e,0x17,0x56,0xde,0xd9,0xea,0x9e, + 0x19,0x0a,0xa1,0xd5,0x9b,0x72,0x23,0x1f,0xbe,0xe2,0xd1,0xce,0x4e,0xfc,0x28,0xdb,0xa6,0x95,0xdd,0xfe, + 0x65,0x98,0xad,0x3f,0x9b,0x57,0x27,0xf9,0x7c,0x67,0x47,0x7e,0x47,0xde,0x2a,0x5c,0x90,0x24,0xa6,0xb4, + 0x9b,0x35,0xd2,0xe5,0xd5,0xe8,0xe7,0x9f,0x9e,0x1e,0x3f,0x7d,0xf5,0x73,0xa2,0x1e,0x11,0x99,0xa3,0x03, + 0xc8,0x39,0x3e,0x46,0xd6,0x93,0xa7,0x3f,0xbf,0x7f,0xfd,0xfa,0xc5,0xbb,0xe3,0x6f,0x5f,0xbc,0x7e,0xf4, + 0xf0,0xc5,0xf1,0x77,0xaf,0x5f,0xff,0x70,0x7c,0x1c,0x48,0x97,0x74,0xc0,0xa4,0x0e,0xb0,0x7e,0xb4,0x48, + 0x25,0x3b,0x63,0xb3,0x3d,0x89,0x59,0xa6,0x8e,0x19,0xb5,0x48,0x76,0xb4,0xaa,0xf4,0xe0,0xf6,0x78,0xc7, + 0x6c,0xf8,0xce,0x0e,0x35,0x24,0x8f,0x77,0x38,0x68,0xbf,0xd5,0xa7,0x73,0x0d,0xc7,0x6e,0x2a,0x68,0x9e, + 0x47,0x84,0x2f,0x7f,0xa0,0xd3,0x9e,0x48,0x84,0x3b,0xea,0xd6,0x52,0x9e,0x7e,0x93,0xc9,0xbb,0xee,0x9a, + 0x06,0xe4,0xb0,0x91,0xf9,0xc1,0x8a,0x7b,0x00,0x79,0x7b,0xda,0xb6,0xc3,0x01,0x0d,0x79,0x33,0x60,0x1d, + 0x6d,0x55,0xe0,0xe6,0x54,0xf8,0x0d,0x41,0xcd,0xa6,0xeb,0x92,0x14,0x04,0x78,0x75,0xca,0x12,0xd2,0xce, + 0x3b,0xf6,0x7e,0x9f,0xed,0x20,0xd1,0xd8,0xb1,0x48,0xe1,0x72,0x9d,0x5d,0xa8,0x46,0x67,0x84,0xf8,0xf4, + 0xc6,0xe7,0xc5,0x2c,0x6b,0xf4,0xee,0xae,0x78,0x5a,0x41,0x77,0x09,0x9f,0xae,0xf1,0xb4,0xd7,0xc7,0x77, + 0xcb,0x93,0x81,0x6e,0x52,0x69,0x63,0x9d,0x81,0x28,0x30,0xba,0xe3,0x27,0x0c,0xad,0x7f,0xff,0xab,0xe3, + 0xd8,0x7d,0xa7,0x36,0x3e,0x99,0xe9,0x05,0x51,0x26,0x61,0xff,0x28,0xbb,0x25,0x6a,0x06,0xcb,0xe5,0x1e, + 0xd1,0x99,0x27,0x7a,0xc1,0x15,0xf5,0x6b,0x28,0xab,0xb6,0x38,0xbd,0x09,0x6b,0xf0,0x0e,0xdb,0xbe,0xc3, + 0x46,0xa5,0xc3,0x1e,0xf3,0x9e,0xc9,0x18,0xb7,0x0f,0x4a,0xe7,0xaa,0x3d,0x12,0x82,0x25,0x96,0x06,0xa4, + 0x61,0x36,0xe4,0x12,0x21,0xb6,0x86,0x5d,0x8a,0x83,0x14,0xf6,0x50,0xb8,0x5d,0x6a,0x3b,0x13,0xc1,0x27, + 0x01,0x77,0x71,0x0a,0x80,0x42,0xa1,0x6a,0x11,0x87,0x45,0x96,0xfa,0x70,0xe9,0x18,0x9d,0x03,0xf1,0xa6, + 0x9b,0xe9,0x01,0xf3,0x25,0x55,0xa9,0x5c,0x35,0x66,0xe6,0xdb,0xfc,0xcc,0x7a,0x7c,0xb3,0xab,0x50,0x2b, + 0xcf,0xd3,0xf3,0x62,0x3e,0xab,0x11,0xd0,0x47,0xde,0x61,0xfa,0x9a,0xd5,0xf2,0xac,0xe7,0x97,0x59,0x21, + 0x8f,0x65,0x93,0x59,0xe1,0xbc,0x31,0xf7,0xe1,0x82,0x95,0xbc,0x9e,0x96,0x8f,0x4d,0x42,0x58,0xe8,0xb4, + 0x7c,0x2d,0x4e,0xb8,0xbd,0xd4,0x77,0x90,0x32,0x3c,0x9f,0x75,0x52,0x89,0xe8,0x81,0x54,0x89,0x89,0x6e, + 0xdb,0x84,0xa1,0x32,0x6d,0x25,0x79,0x2f,0xfd,0xb9,0x21,0xff,0x3b,0xf5,0x10,0x65,0x43,0x59,0x9d,0xa4, + 0x3a,0xbf,0x26,0x04,0x6e,0xfc,0xa4,0xa1,0xb9,0x6e,0x8b,0x69,0x90,0xf0,0xb6,0xaa,0x50,0x15,0xe1,0x6e, + 0x8e,0x19,0x25,0x89,0x8f,0xab,0x4b,0x9c,0x9b,0x41,0xb1,0xc7,0x73,0x6a,0x74,0x16,0x24,0xbc,0x46,0xd3, + 0xf6,0x95,0x69,0xa5,0x67,0x39,0x22,0xb0,0xdc,0x64,0x4d,0x90,0xf6,0x52,0xd3,0x54,0x87,0xbd,0x21,0x26, + 0x09,0xe9,0x6f,0xc0,0xaa,0x9f,0x57,0x73,0x22,0xab,0x33,0x30,0x76,0x0b,0x3a,0x51,0x78,0x29,0xd2,0xdb, + 0x3e,0xa5,0xb1,0x1e,0x63,0x1f,0x23,0x0f,0xac,0xcc,0x00,0xe6,0x1f,0x9e,0x96,0xb5,0x1a,0x3a,0x9f,0x88, + 0xc0,0x8d,0x67,0xc1,0x06,0xa0,0x86,0x65,0xc3,0x9f,0x77,0xc3,0x42,0xf9,0x60,0x48,0x6c,0xa1,0x1b,0x59, + 0x69,0x3e,0x53,0x3b,0xb3,0x40,0xd3,0xcb,0xab,0x4e,0x70,0x15,0x4e,0x1a,0x0d,0x35,0x60,0x49,0xaf,0x74, + 0x28,0x7d,0xe1,0xcf,0xad,0xa2,0xa7,0xfb,0xe3,0xa5,0x8f,0x01,0x87,0x1d,0xc8,0x18,0xcc,0xb7,0xd8,0x07, + 0x67,0xca,0xb9,0xb7,0x59,0x00,0x66,0xd7,0x47,0xf3,0xec,0x36,0xac,0xe6,0xfe,0x41,0xe4,0x3e,0xbf,0x54, + 0xda,0x82,0x2d,0x3f,0x75,0xa1,0x0b,0xfc,0x50,0xb0,0x86,0x9e,0x4b,0x07,0xe4,0x13,0x9a,0x68,0x78,0x84, + 0x06,0x78,0xb4,0x7b,0x54,0x0c,0xb0,0x94,0xc0,0x60,0x1b,0xcc,0x81,0xf6,0xcf,0x94,0xee,0xf7,0x87,0xf6, + 0xcf,0x9c,0x6e,0x81,0x5b,0xfb,0x67,0x4e,0xb7,0x7b,0x44,0xfb,0x67,0x4a,0xf7,0x20,0xa5,0xfd,0xb3,0xb4, + 0x6b,0xc0,0x13,0x53,0xcf,0x92,0x73,0x6d,0x98,0x72,0xbf,0xd2,0x37,0xba,0x87,0xf3,0xcf,0x68,0xe9,0x0f, + 0x23,0xa0,0x20,0xf6,0x90,0x5c,0x80,0x4b,0x82,0x77,0x3f,0xb8,0xaf,0xd2,0x3e,0x89,0x18,0x8f,0x55,0x9a, + 0xac,0x00,0xad,0xc1,0xef,0x36,0x3a,0x3a,0xda,0x8c,0x2e,0xe0,0x4c,0xf0,0xce,0xf4,0x61,0x75,0x34,0x7e, + 0x15,0xdf,0xd0,0x59,0xad,0x06,0x51,0x2b,0x42,0xd0,0x0d,0x44,0x1e,0x81,0x8c,0x66,0x33,0xee,0x05,0xb3, + 0xc4,0xaa,0xce,0xf2,0x90,0x65,0x85,0x32,0x4e,0x30,0xf4,0xf1,0x71,0x75,0x42,0x84,0x46,0x73,0x5d,0x80, + 0x46,0xa2,0x4e,0x4c,0x89,0x5c,0x95,0x61,0xa5,0xfc,0x68,0x07,0x93,0x12,0xea,0x1e,0x9f,0xd0,0xd8,0x2f, + 0xc6,0x9c,0x6e,0x86,0x86,0x64,0x03,0x30,0x5f,0xba,0x33,0xba,0x84,0x27,0x48,0x75,0xc2,0x04,0x91,0x95, + 0x6a,0xa8,0x02,0x07,0x8e,0x39,0x32,0x60,0xbb,0xbb,0xb6,0x3a,0xca,0x63,0x1d,0x84,0xf0,0x0a,0x24,0x9a, + 0xcc,0x73,0xd1,0x34,0x24,0xea,0x44,0x43,0xb8,0xeb,0xc0,0xfa,0x9a,0xc1,0xfa,0x04,0x6a,0x41,0x7c,0x7f, + 0xa1,0x37,0x0d,0x92,0x44,0x6f,0xc6,0x9c,0x89,0xc3,0xdb,0x7a,0xc1,0x9b,0x60,0x6a,0xde,0xaf,0x2e,0x1f, + 0x83,0x7d,0xa6,0x43,0x09,0x6c,0x4e,0x24,0x13,0x11,0x71,0x5e,0xa2,0xfa,0x32,0xf2,0x49,0xfc,0xdd,0x84, + 0x58,0x7f,0x5a,0x13,0xa8,0x0a,0x0d,0x2f,0x92,0xb5,0x49,0xcf,0x98,0xd2,0xaf,0x52,0xcd,0xe1,0x61,0x4a, + 0x27,0xd0,0x7b,0x50,0x8c,0x6b,0x3a,0xec,0xac,0xd1,0xed,0x61,0x8d,0x25,0xc6,0x0a,0xb7,0xb4,0xda,0xc9, + 0x7a,0x1d,0x03,0xc4,0xd4,0xb1,0x36,0x1e,0xd8,0x9d,0xc9,0x83,0xf3,0x9a,0x98,0x0a,0xe6,0xf3,0x0b,0x1c, + 0xfd,0x7e,0x2a,0xee,0x99,0x20,0x37,0xbc,0xca,0x20,0xb3,0x9f,0xb3,0x28,0x7f,0x3b,0xee,0x84,0x08,0x9a, + 0xb9,0xa0,0x69,0x2c,0x1c,0xb6,0x63,0x65,0x99,0xbf,0x3c,0x87,0xa5,0x2f,0xf4,0x04,0x8b,0x2a,0x19,0xe9, + 0x09,0x04,0x5b,0xad,0xf8,0x3a,0x0d,0x6b,0x0e,0x28,0xc7,0xac,0x5f,0xd1,0x3c,0x45,0x68,0x9b,0xa6,0x38, + 0xe1,0x33,0x9a,0x3e,0xa4,0x6a,0x8a,0xe6,0xe7,0x25,0xf0,0xa0,0xe8,0x1c,0x2f,0x34,0x7b,0xe2,0xd3,0x69, + 0x45,0x40,0x52,0xda,0x45,0x20,0x72,0xa8,0xf4,0x68,0xeb,0x93,0x96,0x90,0x38,0x34,0xa3,0x1d,0x33,0x65, + 0x5a,0xb9,0x7c,0x18,0x54,0x9e,0x18,0x6b,0x5e,0x9a,0x7c,0x8e,0x95,0x06,0xe9,0x5c,0xbe,0x5a,0x6d,0x1f, + 0xb0,0xa7,0x4c,0x78,0x26,0x48,0x7d,0x74,0x1e,0x42,0xfa,0x44,0x95,0xa8,0xa9,0x3c,0x12,0x51,0x37,0x26, + 0x22,0x7e,0x7b,0xba,0x5a,0x7d,0x89,0x8f,0x7a,0xbb,0x0b,0x2e,0xc4,0x19,0x0b,0xa3,0x8c,0x5a,0x7d,0xbb, + 0xd8,0xd9,0xa1,0xc9,0xaf,0x93,0x3b,0x18,0x19,0x0c,0xe0,0x36,0xe4,0x88,0x37,0x98,0x60,0xd5,0xe3,0x6e, + 0x64,0x6f,0x37,0x93,0xc6,0x04,0x6a,0x4b,0xd2,0xda,0xe2,0xd1,0x80,0x2e,0x8b,0x2b,0x43,0xb7,0xd1,0x16, + 0x5a,0xd2,0xeb,0x92,0x77,0x95,0x4b,0xea,0xaf,0xd0,0xce,0x4e,0x57,0xe6,0xef,0x85,0x64,0xe6,0xd8,0x10, + 0x38,0x6d,0xfb,0x70,0x4a,0xab,0xd5,0x12,0x8c,0x22,0xe8,0x9a,0x01,0x04,0xff,0xf4,0xb9,0x16,0x61,0x0d, + 0xcc,0x56,0xea,0x31,0x7b,0x45,0xd3,0x39,0xda,0x84,0xa3,0x74,0xa7,0x51,0x77,0x98,0x5a,0xc2,0xf3,0x69, + 0x8e,0x0d,0xd1,0x6e,0xe3,0xd9,0xac,0x45,0x3c,0x9d,0x4c,0x4d,0x41,0x48,0xba,0x6b,0xda,0xcc,0x6e,0xee, + 0x11,0x01,0xc5,0xe1,0x13,0x04,0xf3,0x08,0x65,0x82,0x3a,0x08,0x75,0xb1,0x39,0x29,0x85,0x37,0x07,0xdc, + 0xb2,0xc4,0x60,0xc6,0x7a,0xba,0xcb,0xfc,0x93,0x53,0xd5,0x28,0x76,0x42,0x37,0xaa,0x98,0x56,0x1d,0x50, + 0x75,0xaa,0xb4,0x02,0x55,0xb6,0x80,0x95,0xa7,0xbe,0x66,0xc6,0x57,0xcd,0x81,0xa5,0x8c,0x79,0xad,0xdd, + 0x51,0x63,0x2f,0xa4,0xe7,0xad,0xb1,0x5a,0xd5,0xc4,0x1d,0xd9,0x9d,0x00,0x40,0x9b,0xc4,0xb4,0x03,0x6a, + 0xc1,0x5e,0x3c,0x08,0x55,0x77,0x70,0x67,0x92,0x4a,0xc5,0x49,0xb8,0x69,0xde,0x69,0xa7,0x6a,0xba,0x63, + 0xbc,0xe1,0x50,0x82,0x98,0x1d,0x7e,0xaf,0x8f,0x7d,0x97,0xc2,0xcd,0xb9,0x5a,0x89,0x46,0x89,0xa0,0xcd, + 0x38,0xd2,0xa0,0x79,0xc5,0x45,0x3a,0xdd,0x5a,0xaf,0x2f,0x42,0xee,0x00,0xd8,0xaa,0x83,0x99,0xbd,0xac, + 0x3f,0x94,0x11,0x73,0x74,0x4f,0x88,0x6c,0xdb,0x50,0x64,0xfb,0x89,0x87,0x03,0x91,0xff,0x5a,0x75,0x6a, + 0x0d,0x31,0xe3,0x1d,0xb5,0x0f,0xb2,0x19,0x00,0x18,0x16,0x89,0xf3,0x72,0x3c,0xd4,0xd9,0xc7,0xd1,0xa0, + 0x04,0xd3,0xe3,0xd6,0xf7,0x7e,0x46,0xc3,0x60,0x29,0x6e,0x0b,0x09,0x93,0x90,0x55,0x7a,0xd2,0x63,0x84, + 0xa1,0xb2,0xef,0x89,0xc5,0x73,0x1a,0x61,0xfe,0xa0,0xb2,0x9d,0xca,0xa9,0x43,0x16,0x0b,0x13,0xb6,0xa1, + 0xdd,0x56,0x1d,0xe6,0xec,0x10,0x5f,0x67,0x2c,0xa7,0x2e,0x58,0x69,0xa2,0x30,0xf1,0x65,0x32,0xa9,0xb7, + 0xd9,0xcf,0x69,0xca,0x06,0xf3,0x53,0xb6,0x8a,0xa7,0xce,0xc1,0xc5,0x22,0x65,0x40,0x2f,0xe9,0x29,0x19, + 0xd0,0xb0,0xbc,0xd6,0x71,0xd7,0x13,0xa3,0x98,0x6c,0x20,0x9c,0x01,0x69,0x42,0x3d,0x31,0x3a,0xef,0x02, + 0x2d,0x10,0x1a,0x1e,0x2a,0x54,0x4e,0xca,0xa0,0x50,0xe9,0x5a,0x9f,0x98,0x69,0x4b,0xdb,0x75,0x5a,0x4f, + 0xca,0xc9,0x26,0xc5,0x4d,0x05,0x3e,0xd7,0x28,0x13,0x28,0x7c,0x0a,0x53,0xd3,0x9f,0x6b,0x38,0x28,0x48, + 0x08,0x27,0xad,0xd3,0x60,0x37,0x3c,0x09,0xcf,0xc5,0xac,0x9d,0xe8,0x89,0xb6,0x86,0x4d,0xd4,0xb5,0xbe, + 0x12,0x66,0xd2,0xa6,0xb0,0xfb,0x75,0x84,0x79,0x39,0x19,0x06,0xac,0xc3,0xa3,0x21,0x15,0x15,0x1b,0x40, + 0xb5,0xde,0x00,0x0a,0x40,0x0b,0x66,0x4c,0xd8,0xd3,0xae,0xd6,0x0a,0xf8,0x2e,0xe8,0xe6,0x53,0xed,0x25, + 0xac,0xa2,0x1f,0xea,0x12,0x99,0xd8,0x89,0xa1,0x46,0xb6,0x9d,0x5c,0xd1,0x7c,0xd3,0x08,0x8a,0xf5,0x43, + 0x13,0xb4,0x62,0x58,0xdd,0x45,0x43,0x78,0x6d,0x51,0x60,0xda,0x86,0xe6,0x02,0x4e,0x2a,0x43,0x93,0x92, + 0x4a,0x19,0xda,0x62,0x4f,0x07,0xc3,0x5d,0x3d,0xd4,0x90,0x8a,0x3c,0x81,0x09,0xce,0xbb,0x3b,0x0b,0xec, + 0x46,0x4d,0x74,0x94,0x3d,0x45,0xa1,0x87,0x5a,0x84,0x7e,0x1b,0xdc,0xb4,0x68,0xc0,0x69,0x9a,0x7e,0x63, + 0x86,0x48,0xce,0x1e,0x48,0x04,0x24,0xa5,0x75,0x29,0x7e,0xa3,0xdd,0x31,0x11,0xac,0x77,0x73,0xca,0x2a, + 0x67,0xbd,0xe9,0x76,0x65,0x05,0x84,0x8c,0x49,0xd2,0x89,0x5d,0xff,0x3c,0x2b,0x88,0xc6,0x52,0x4d,0x06, + 0x52,0x6b,0x4c,0xa7,0xfd,0x76,0x77,0xfd,0x73,0xec,0xbb,0x3c,0xc3,0x06,0x54,0x28,0x99,0xe5,0x93,0xdc, + 0x9b,0xca,0xf5,0x80,0xa5,0x49,0x26,0x4d,0x7a,0xd8,0x1c,0x59,0x52,0xb7,0x58,0x63,0xd4,0x84,0x9e,0x16, + 0x4d,0xf6,0xd0,0x06,0x36,0xe3,0xc7,0xa2,0xe4,0x30,0x39,0x0f,0x85,0x5d,0x5a,0x76,0x6c,0xa6,0xc2,0x69, + 0xd9,0x1c,0xce,0x67,0x54,0xf2,0x76,0x64,0x50,0x89,0x16,0x1c,0xdc,0xd8,0xb6,0x7f,0x55,0xcc,0x88,0x8e, + 0x96,0x58,0x4e,0x1f,0xef,0x88,0x04,0xe4,0xf8,0xd2,0x96,0x0d,0x31,0x3c,0xaa,0x7b,0x06,0x44,0x51,0x98, + 0x0e,0x0d,0xec,0xb9,0x82,0xc3,0x56,0x14,0x06,0x63,0x36,0x7d,0xbb,0x28,0x7b,0x8c,0xf0,0x34,0x48,0x1c, + 0xa9,0x5b,0x63,0x67,0x4d,0x08,0x92,0x56,0x67,0xe3,0x50,0x2a,0x25,0x08,0x6e,0x1d,0x50,0xc8,0x60,0x5f, + 0xfa,0x56,0x43,0x70,0xe7,0x13,0x32,0x24,0xae,0x0e,0xe1,0x70,0x7e,0x94,0xdd,0x22,0x47,0x5c,0x6a,0x7c, + 0x98,0xaa,0xa9,0xad,0x90,0xd7,0x9b,0x0d,0x26,0x13,0x7c,0x9a,0x1f,0x29,0x7c,0x97,0xd3,0x77,0x40,0x9b, + 0x93,0x22,0x95,0xcf,0x8b,0xf5,0xd8,0x2e,0x5a,0x45,0xb4,0x77,0x71,0xd7,0x80,0x64,0x0d,0xc3,0x11,0xb9, + 0xc4,0xcf,0x0d,0x4b,0x96,0x11,0x86,0x2a,0x65,0x68,0xa8,0x52,0x1f,0x96,0x6c,0xa8,0x72,0x0b,0x37,0x8f, + 0x14,0xcf,0xeb,0xe1,0x11,0x54,0x32,0x02,0x03,0xbd,0x25,0xc0,0xb6,0x06,0x60,0x4e,0x69,0x24,0x84,0x01, + 0xe4,0xfb,0x6a,0xad,0xf2,0x24,0x95,0xe7,0x7c,0xbd,0xee,0x0f,0xc3,0x52,0x5a,0xc4,0x76,0x59,0x2d,0x23, + 0x2f,0x4d,0x9b,0xf4,0x54,0xf4,0x66,0x5c,0xac,0xa4,0x1f,0xc2,0xcb,0xd8,0x9f,0xd0,0xe2,0xdf,0xc2,0xa0, + 0x01,0x41,0xd4,0x58,0x54,0x97,0x82,0x7f,0x5b,0x13,0xfd,0xb7,0x5d,0x8c,0x8e,0x61,0xf6,0x0c,0x08,0x31, + 0x81,0xb6,0x1b,0xa6,0xf6,0x05,0xa6,0x6c,0x12,0x5c,0x38,0xe8,0xed,0xb2,0xf8,0x44,0x9c,0x86,0x1f,0x29, + 0x64,0xa4,0xe8,0xa3,0xa4,0xdb,0xc9,0xd2,0x0f,0xda,0xb1,0x86,0x65,0x8f,0xad,0x44,0xb2,0xa1,0x10,0xae, + 0x85,0x00,0xaf,0xe8,0x44,0x35,0xbb,0xde,0x4c,0x56,0x43,0xcc,0xab,0x7f,0x2f,0x12,0xb8,0x83,0x57,0xc4, + 0xa1,0x48,0xba,0x05,0xf4,0xc6,0x4f,0x0c,0x23,0xb7,0xd5,0xea,0xa3,0x1e,0xe7,0x62,0xcd,0x02,0xf2,0x5e, + 0x15,0xdc,0x08,0x84,0xa5,0x56,0x71,0xed,0xb1,0xf5,0x2b,0xdd,0xd9,0xb8,0x1b,0x26,0x6e,0xa5,0x45,0xe2, + 0x20,0x34,0x30,0xd7,0x04,0xbf,0xf0,0xdb,0xb4,0xa8,0x02,0x33,0x2c,0xdc,0xcc,0x89,0x51,0xf3,0xa3,0x40, + 0x15,0x14,0xa8,0x6c,0x84,0x04,0xee,0xb5,0x63,0xd9,0x0a,0x5a,0xe9,0x49,0x41,0xd0,0x9c,0xa2,0x8e,0xd5, + 0x0a,0x05,0xf1,0x3f,0x3f,0x0a,0x48,0xde,0x17,0x1b,0x67,0x09,0x6b,0xd0,0xab,0x6c,0xfb,0x94,0x89,0x67, + 0x38,0xca,0x72,0x7c,0xb5,0xec,0xad,0x8e,0x1f,0x89,0x85,0x9d,0x92,0x80,0x0d,0xd6,0x00,0xa9,0x81,0xa6, + 0xbc,0x22,0x04,0x89,0x26,0x23,0x13,0x6a,0x30,0x4a,0x92,0x1c,0x3a,0x1c,0x0b,0xa9,0x11,0x34,0x1c,0xc4, + 0x5c,0xe5,0xf4,0x83,0x28,0x30,0xd6,0x5b,0x9c,0x6a,0x15,0x19,0x94,0xab,0x34,0x9e,0x3e,0xd8,0xa7,0x05, + 0x78,0x30,0x15,0x04,0xbb,0xbd,0xcf,0xbe,0xde,0x0e,0x09,0xe5,0xc9,0xed,0xe6,0xf1,0xc5,0x93,0xd2,0x86, + 0x8d,0x5b,0xf8,0xb4,0xa1,0x0f,0x03,0x17,0x23,0x3d,0xba,0x67,0x30,0x92,0x6c,0x66,0x09,0xbe,0xec,0xa5, + 0x6f,0x03,0xd9,0x62,0x4e,0xc2,0x25,0x38,0x94,0xf4,0x31,0xe7,0x50,0xea,0x24,0x78,0x1e,0x32,0xd0,0x44, + 0xfc,0xd5,0x67,0xfe,0x10,0xcd,0xde,0x20,0xe2,0x16,0x8f,0x73,0xe2,0x2c,0x04,0x69,0x53,0xac,0x41,0x96, + 0x29,0x6d,0xd9,0xc4,0x13,0x3d,0xbe,0xd6,0x31,0x8c,0xc6,0x88,0xfe,0xcc,0x13,0x45,0x2f,0xcb,0x21,0xd0, + 0x7a,0x13,0x48,0xea,0x74,0x68,0x8a,0x17,0x27,0x56,0xcb,0x86,0xb8,0xad,0xae,0x7c,0xfc,0xe1,0x1a,0x9a, + 0x36,0x4f,0x17,0xb4,0x87,0x07,0x47,0xb0,0x98,0xf2,0x76,0x92,0xba,0x83,0xfa,0xb9,0x81,0x4c,0xba,0x1d, + 0x1a,0xee,0x05,0x34,0x6e,0x9f,0x2a,0xb2,0x60,0xf9,0x5c,0xb3,0x87,0xfc,0x64,0x3f,0xdd,0x3b,0x08,0xac, + 0x85,0xc0,0x3b,0xb6,0xfd,0xd0,0xe5,0x90,0x40,0x68,0xc6,0x17,0x4a,0x7f,0xde,0xd4,0xc2,0x31,0x68,0x73, + 0x18,0x97,0x40,0x37,0xd8,0x41,0x4e,0x54,0xf7,0xb8,0xce,0xea,0xd1,0x3d,0x91,0x49,0x8f,0x2d,0x4c,0xd7, + 0x7e,0x4d,0x3b,0x46,0x0a,0x6c,0x9e,0xe2,0x11,0x28,0x21,0xdf,0xea,0x41,0x61,0x7b,0x57,0x21,0xa8,0xba, + 0xb4,0xb0,0x0d,0x62,0x0d,0xfb,0xc7,0xd9,0x4f,0x71,0x2f,0x4c,0x57,0x7d,0x58,0x9f,0x9f,0xd0,0xbf,0xba, + 0x67,0x09,0xb1,0x75,0x5e,0x55,0x17,0x11,0xe1,0xbd,0x9f,0x6c,0xef,0xd7,0xc4,0xf4,0x53,0x3d,0x37,0xb7, + 0x50,0x37,0x04,0x9b,0xf1,0x91,0xdb,0x8c,0x4e,0x84,0xc1,0x63,0x8c,0xab,0xac,0x9c,0x38,0xeb,0x11,0x10, + 0x67,0xda,0x10,0xb3,0x10,0xa3,0x6c,0x57,0x4e,0x5c,0x72,0x43,0x08,0x40,0x12,0x24,0x02,0xde,0x8c,0x59, + 0x7f,0xe9,0xde,0x80,0xb9,0xcc,0x4b,0xe9,0x6e,0xb1,0x1b,0x6d,0xc5,0xc6,0x42,0xfc,0x3e,0xcb,0x38,0x93, + 0x28,0xe1,0xe8,0x3b,0xb6,0x1a,0xde,0x85,0x6e,0x94,0xf6,0x33,0x07,0x92,0x95,0x1f,0xc2,0x4f,0x21,0x0b, + 0xfd,0x71,0x14,0x9a,0x63,0xf0,0x64,0x9a,0x2f,0xba,0x39,0x61,0x90,0x79,0x99,0x20,0x67,0xb9,0xd3,0x8a, + 0xa5,0xee,0x77,0x1c,0xb0,0x0c,0x05,0x22,0xe3,0x4a,0x1f,0x7e,0x4f,0xbd,0xfd,0xce,0xcf,0xad,0xed,0xca, + 0x77,0x61,0x57,0x44,0x37,0xbb,0x5a,0x0d,0xc5,0xaf,0x46,0x2c,0x77,0x42,0x6c,0xc6,0x04,0x5d,0x8f,0xcd, + 0xbb,0x34,0x11,0x9b,0x78,0xf7,0x3f,0x6b,0xf5,0x0b,0x2b,0x1f,0xfe,0x60,0x51,0xea,0xef,0x78,0xf6,0x27, + 0xc4,0x0f,0xd0,0x1b,0x99,0x34,0x77,0x48,0xfd,0xe1,0x42,0x3d,0x82,0x68,0xfd,0xc3,0x89,0x0c,0x06,0xe3, + 0x0e,0xc7,0x12,0xd2,0x62,0x40,0x11,0x6a,0x56,0x86,0x95,0xa1,0xe6,0xd9,0xe0,0xb7,0xef,0xf5,0x46,0xcc, + 0xdb,0x64,0xfc,0x73,0x47,0x79,0xf8,0xbd,0x09,0x87,0xf0,0x03,0xa1,0xf2,0x5f,0x77,0x76,0x1a,0x31,0xcc, + 0xaa,0x96,0x6d,0x7c,0x41,0x04,0x3c,0x46,0xb4,0xbf,0xb6,0x38,0xfa,0x87,0xe1,0xe9,0x79,0xb9,0x6c,0xd9, + 0x2f,0xed,0xb5,0xf0,0xd0,0x35,0xec,0xd7,0x74,0xdc,0x4f,0x4d,0x82,0x08,0x67,0xfd,0xbc,0xc7,0x3e,0x58, + 0x3e,0x5f,0xca,0xd0,0xcf,0x0f,0x35,0xce,0x3f,0x0f,0x6b,0x83,0xa9,0xe3,0xcf,0x2f,0x2f,0xf5,0xac,0x60, + 0x43,0x34,0x6a,0x3f,0x4c,0xe8,0xf8,0x41,0x86,0x19,0x18,0xf6,0x3a,0xed,0x66,0xda,0xf1,0xff,0xa0,0x15, + 0x01,0xb5,0x97,0x68,0x7c,0xab,0xb3,0x03,0xf5,0xab,0xb8,0x4b,0xf4,0x3b,0xc8,0xd3,0xf7,0x6f,0xdd,0x77, + 0xe8,0x43,0x7c,0x99,0x57,0xd5,0xcc,0x1e,0x61,0xf1,0xb7,0xb0,0xe2,0xfe,0xd5,0x49,0x1b,0xe2,0x7f,0x6b, + 0x75,0x0b,0x7b,0xd3,0x7c,0xda,0xea,0x9a,0xaf,0x04,0x80,0x15,0x8b,0xea,0xae,0x10,0xb5,0x4b,0x1f,0xee, + 0x1e,0x24,0xff,0xf5,0x25,0x35,0x21,0xec,0x99,0xaf,0xcf,0xae,0x91,0x83,0xb4,0xdf,0xfa,0xb2,0xdb,0x3f, + 0x8c,0x4a,0xb3,0xeb,0x5a,0x61,0xe2,0x8f,0x59,0x34,0xd1,0xdb,0xbc,0x74,0x54,0x96,0xd4,0xf7,0xf7,0xc5, + 0x14,0x88,0x89,0xd7,0x1f,0x82,0x19,0x14,0x4c,0x08,0xb4,0x57,0xab,0x18,0xb0,0xbc,0x4f,0x3d,0x85,0xef, + 0x3d,0xac,0x14,0x3f,0x03,0x98,0x0e,0x61,0xdf,0xe1,0x67,0x52,0xc2,0x1b,0x83,0xf7,0xd0,0x8f,0x32,0xbb, + 0x85,0xf6,0x1b,0x47,0xb3,0xb9,0xf9,0x76,0x28,0x6f,0x54,0x1d,0x3e,0xa0,0x7f,0xbe,0x30,0x2f,0x17,0x6f, + 0x83,0xde,0x80,0x65,0xe5,0x6a,0xe5,0xa4,0xc8,0xcf,0xea,0xea,0x0f,0x44,0x4e,0xa6,0xb4,0xb6,0x2f,0xc7, + 0xe6,0x63,0xc2,0x08,0xac,0x2c,0x85,0xdc,0x86,0x92,0xc9,0x82,0xcf,0x82,0x12,0xc6,0x01,0x74,0xe2,0x5a, + 0xa7,0xdf,0x12,0x7a,0x6c,0x7a,0xc7,0xd6,0xac,0x0c,0xef,0xd1,0x76,0x78,0x0f,0x1c,0x5b,0x35,0x31,0xf8, + 0xc1,0x4d,0x1b,0x75,0x16,0x17,0x3d,0x03,0xc7,0x64,0xe3,0x9b,0x82,0xbe,0xc2,0x67,0x2c,0xc3,0xff,0x91, + 0xa0,0xeb,0x47,0x63,0x38,0x60,0xc2,0x85,0xb6,0x6d,0xcf,0xe6,0x58,0x4e,0xf9,0x68,0x27,0x72,0xa1,0xd4, + 0xd9,0x8a,0x59,0x95,0x59,0xf4,0xbf,0x91,0x46,0x0c,0x32,0xdc,0xd5,0xad,0x11,0x73,0xaa,0x93,0xa0,0x50, + 0x9d,0x45,0xdb,0xa6,0x50,0x79,0x57,0x21,0xeb,0x54,0xc3,0xfe,0xaf,0x3a,0xab,0x3b,0xe5,0x54,0x05,0xfb, + 0xba,0x52,0x4d,0xe5,0x4c,0x23,0x82,0xde,0x18,0xcc,0xc0,0xbd,0x26,0xa0,0x94,0x11,0xc9,0x18,0x67,0x97, + 0x4b,0xa8,0x9c,0xc8,0xc8,0x09,0xc7,0xd9,0xdf,0xf8,0xb4,0x64,0xbe,0xe2,0x4e,0xf2,0xe1,0x91,0x43,0xf8, + 0xfe,0x3b,0xa2,0x2e,0xaf,0xf6,0x60,0x89,0x6c,0xb1,0x7e,0x40,0x57,0x38,0x1f,0x50,0xc8,0xa6,0xc7,0xb5, + 0x67,0xa1,0x20,0x97,0xa6,0xca,0x4a,0x5e,0x25,0x39,0x61,0x36,0xea,0x71,0xe7,0x18,0xba,0x95,0xd1,0x60, + 0x83,0xdb,0x6a,0xda,0x81,0x80,0x17,0xaa,0x51,0x53,0xb5,0xe4,0xd6,0x73,0xb9,0x52,0x85,0xbe,0x02,0xdb, + 0x38,0x25,0xea,0x99,0x7e,0x96,0x59,0x0b,0xcf,0x39,0xf5,0x22,0xe6,0xf8,0x3f,0x2f,0xe2,0x69,0x32,0xa1, + 0xff,0x50,0xc4,0x73,0x2c,0x47,0x29,0x9d,0xd1,0x64,0x35,0x1c,0x04,0xf8,0x61,0x8c,0x58,0x37,0x53,0x1d, + 0xe4,0x15,0x94,0xc4,0x4e,0xcc,0x0d,0xc7,0xbc,0xe1,0x59,0xa7,0x92,0xe5,0x40,0x32,0x87,0x0f,0xe3,0xc5, + 0x70,0x81,0xc4,0x92,0x24,0x6d,0x08,0xcf,0x22,0x7c,0xd2,0x94,0xc7,0xd4,0x28,0xae,0x75,0x9a,0x24,0xbe, + 0xd7,0x6d,0xf2,0x22,0xd6,0x22,0x40,0xac,0xe3,0xd8,0xf4,0x39,0x91,0xea,0x65,0x18,0xae,0xe1,0xc0,0x89, + 0xa5,0xed,0x84,0xb6,0x19,0xf7,0x34,0x46,0x26,0xc2,0x31,0x90,0xd8,0x08,0x64,0x0f,0x8d,0x3e,0x78,0x23, + 0xe6,0x2b,0x49,0xc6,0x01,0xb7,0xd3,0x01,0x93,0x72,0xd8,0x3c,0x56,0x1d,0xc7,0x35,0xc6,0x40,0x33,0xb5, + 0x7e,0x01,0x76,0xbc,0xc6,0xc4,0x41,0xff,0x95,0xbe,0x21,0xe6,0x51,0xa6,0xf4,0x61,0x6c,0x02,0xda,0xce, + 0x10,0xeb,0x31,0x2b,0x12,0xa4,0x0b,0x5e,0xac,0xa0,0x00,0xc0,0x17,0xb4,0x7e,0x47,0x10,0x8a,0x4b,0x39, + 0x36,0xc8,0xe5,0x2b,0x12,0xfc,0xe0,0xaa,0x36,0xa4,0xbf,0x08,0x3c,0xdf,0x00,0x22,0x2d,0x77,0x51,0x06, + 0x12,0x7a,0x63,0x9f,0x8e,0xe0,0x41,0x36,0x7a,0x2d,0x5e,0xb7,0xf7,0xc7,0xa6,0x70,0xdd,0x2f,0x5c,0x77, + 0x0b,0xd7,0x28,0xbc,0x76,0x76,0xc9,0xde,0xbb,0x25,0x74,0xbf,0x81,0x67,0xd4,0xe4,0x90,0x95,0xf9,0x47, + 0x1b,0x0e,0x38,0x93,0x3b,0x71,0x26,0x2c,0x50,0xd8,0xf6,0x85,0x91,0x11,0x76,0x43,0x1b,0xee,0x06,0x9a, + 0x44,0x51,0xd3,0x0c,0xf9,0x4c,0x21,0x1a,0x12,0x31,0x92,0x87,0x55,0xe6,0xe3,0x38,0x1f,0xf5,0xd4,0x35, + 0xb4,0x06,0xfb,0x8e,0x4c,0x06,0xc8,0xb6,0x31,0x55,0xa9,0x89,0xfb,0x43,0xec,0x74,0x8e,0x90,0x71,0x8c, + 0x98,0x2c,0xc9,0xe1,0x3e,0x80,0xab,0x69,0x45,0x58,0xd6,0x40,0x18,0x41,0x83,0xc9,0xd9,0x40,0x60,0xb7, + 0xa0,0x5c,0x7e,0x02,0x87,0x6f,0x43,0xdc,0x2b,0x59,0x34,0x03,0x09,0x0d,0x24,0xd4,0xe9,0x7b,0x34,0xc8, + 0x95,0x4c,0xfa,0x55,0xc0,0xdd,0x43,0xa4,0xdc,0x66,0xb1,0xaf,0x38,0xa4,0x60,0x4a,0xa5,0x0b,0xdb,0xf2, + 0xc6,0x47,0xd2,0x68,0x1a,0x3f,0xc4,0x89,0x40,0x84,0x33,0x2c,0x01,0xa9,0x30,0x80,0xa9,0xcd,0xcf,0xe8, + 0x89,0x26,0x08,0x88,0x9b,0xd3,0x4a,0x8e,0xbd,0xca,0x16,0x07,0xd1,0xf1,0xf1,0xd5,0x9c,0xca,0x46,0xbb, + 0xa5,0x0c,0x90,0xfe,0x1f,0x47,0xb6,0xcb,0x68,0xd7,0x71,0x56,0x0d,0x34,0x59,0x26,0x88,0x59,0x70,0x55, + 0x54,0xb8,0xb6,0xe2,0xab,0xf5,0x26,0x16,0x73,0x09,0x50,0xed,0x26,0x0a,0xb8,0xb5,0x61,0x08,0xae,0x8b, + 0x6a,0xbd,0x3f,0xd0,0x9f,0x3b,0x3e,0x0d,0x68,0x16,0x74,0x57,0xb3,0xa0,0x07,0x1d,0xa2,0x8c,0xca,0x14, + 0x5e,0x51,0x00,0xe2,0x40,0xd1,0x50,0xf9,0x46,0xf3,0x0c,0x76,0x06,0x23,0x88,0x8f,0x20,0x1a,0x1d,0x37, + 0x63,0xee,0x56,0xc3,0x5c,0x30,0x84,0x89,0xc4,0x71,0x74,0x5e,0x11,0x3a,0xee,0x16,0xb2,0xa8,0x2c,0x48, + 0x24,0xe4,0x22,0x46,0x01,0x6b,0xc4,0x1d,0x32,0xcc,0x1a,0xce,0xd8,0x6d,0x58,0x44,0x5a,0x26,0x1e,0x88, + 0x15,0xdb,0xdc,0x48,0x0a,0xb8,0x61,0xcb,0xcd,0x73,0x8d,0x03,0xfc,0xb6,0x53,0xfc,0xd1,0x02,0x4f,0xd7, + 0x6b,0x67,0x5a,0x10,0x30,0x59,0x4b,0x3f,0x9b,0x26,0x7e,0xb1,0x71,0xb1,0x32,0xe7,0xdf,0x3a,0x38,0x55, + 0x10,0x35,0x87,0x55,0x9d,0xfa,0x0e,0x95,0x3c,0xae,0x15,0x50,0x39,0x9d,0x67,0xc0,0x71,0x63,0x89,0xbd, + 0x98,0x8f,0xf2,0xb6,0xad,0x1b,0xf7,0x30,0x82,0x9f,0x97,0x8b,0x6e,0x19,0x26,0xaa,0xca,0x9a,0xc7,0x6c, + 0xb3,0x83,0x5f,0xe5,0x2d,0x55,0xb6,0x59,0xb7,0x09,0x75,0xb4,0xf8,0xe0,0xe5,0xfc,0x41,0x12,0x97,0x76, + 0x0a,0xd8,0x2d,0xd7,0xde,0xd6,0x76,0x78,0x44,0x88,0xdb,0x60,0x3b,0x4f,0xd1,0x36,0xe6,0x2b,0x5c,0x11, + 0x72,0xd8,0x88,0x07,0x56,0x73,0x84,0xc2,0xe3,0xa8,0xd5,0x97,0x30,0x50,0xd6,0x12,0x0c,0x83,0xe0,0x9e, + 0x26,0x2e,0xd8,0x79,0x53,0x74,0xcd,0x58,0xf6,0xac,0x56,0xf4,0x45,0x3a,0xb5,0xf5,0xaf,0xdd,0x8d,0x36, + 0x4b,0x91,0xa1,0x95,0x87,0xcb,0x23,0xe3,0x92,0x31,0x6f,0x7d,0x0c,0x50,0x24,0xfb,0x1b,0x2b,0xbc,0x1d, + 0x5e,0xb8,0x09,0x02,0x70,0x67,0xb5,0x7f,0x68,0x0f,0x44,0x98,0x64,0x4b,0x88,0x1d,0xcc,0x47,0x60,0xa2, + 0xd7,0x3d,0x81,0x00,0xca,0x0f,0x7a,0xce,0xe8,0x46,0x11,0x4b,0xcb,0x33,0xd9,0xa6,0x5a,0xef,0x35,0xc6, + 0xa4,0xbc,0xa0,0xa5,0x12,0x01,0x10,0x95,0x1c,0xcb,0x76,0x62,0x27,0xbb,0xe3,0x12,0x2e,0x04,0x88,0xa5, + 0x30,0xf3,0x0a,0xde,0x20,0x71,0x2c,0x12,0x2e,0xd0,0xc8,0xb4,0x30,0x67,0xb4,0xb4,0xec,0xe6,0x82,0x6a, + 0xa8,0xdf,0x84,0x7e,0xb6,0xe9,0x85,0x48,0xc7,0x57,0xfc,0x85,0x97,0x60,0xd8,0x99,0x6a,0x30,0x53,0x7c, + 0x01,0x90,0x26,0x66,0xaf,0x39,0x22,0x28,0xbf,0x87,0x9d,0x85,0xfb,0x55,0xa0,0xbe,0xc3,0xb2,0xcc,0x5a, + 0x42,0xe3,0x38,0xa7,0x1b,0x38,0xe2,0x33,0x35,0x59,0x87,0x3a,0x8a,0xa9,0x9c,0xd9,0xfc,0x53,0x43,0xe1, + 0x7b,0x38,0x3d,0xca,0x16,0xf8,0x68,0x1a,0xa8,0xf1,0xee,0xb6,0xaa,0xe8,0x0e,0x33,0xab,0x13,0xf5,0x2a, + 0xae,0x55,0x64,0x26,0x27,0xa2,0xe3,0xd5,0x24,0xd0,0xa0,0x10,0xf1,0xd1,0xbc,0xb9,0x51,0x45,0x88,0x3c, + 0x1d,0x1c,0x96,0xb3,0xee,0x3a,0x6c,0x86,0xa8,0xec,0x5b,0x43,0x38,0x97,0xb4,0x2e,0x59,0x97,0xa4,0x25, + 0x3b,0x19,0xcb,0x08,0x40,0x3e,0x0c,0x39,0xe6,0x6e,0xe8,0x5f,0x70,0x32,0xea,0xa3,0x94,0xcf,0x4b,0x8c, + 0x4e,0x44,0x77,0xd6,0xee,0xe2,0x20,0x78,0xa3,0x05,0xc7,0x51,0xe3,0x20,0x2d,0x99,0x08,0x62,0x4e,0xb5, + 0xbf,0xe5,0x72,0xc4,0x81,0x39,0xdc,0xe4,0x0d,0x39,0x2c,0xc0,0xf0,0xa2,0x56,0x9f,0x35,0xce,0x58,0x77, + 0x26,0x68,0xd1,0x76,0xe3,0xa0,0x6c,0xa8,0x34,0x41,0x7e,0x04,0x88,0xe9,0xbc,0x0d,0x38,0x3b,0x6b,0x4b, + 0xba,0xa9,0x2d,0x80,0x01,0xcd,0x40,0xb8,0x69,0x80,0x49,0x19,0xf8,0xdf,0x39,0xb4,0x76,0x17,0x06,0xe3, + 0x10,0xc4,0xd4,0x24,0x30,0x58,0xed,0x95,0x22,0x9b,0xee,0xd6,0x9b,0x55,0x5b,0x22,0x5b,0x87,0x15,0xd5, + 0xbb,0x07,0x61,0x3d,0x30,0x29,0x62,0xc1,0x30,0x36,0xdc,0xa1,0x58,0x87,0x8f,0x0a,0xe2,0x83,0xe1,0xef, + 0x70,0x04,0xae,0xd0,0x50,0x28,0x82,0xa9,0x36,0x8b,0xc0,0xfe,0x96,0x4e,0x07,0xf0,0xa9,0x71,0x32,0xde, + 0x9e,0x8e,0x66,0x55,0xa9,0xc7,0x49,0x29,0x78,0xa8,0x25,0xc2,0x56,0x4c,0x1d,0x2c,0xa5,0x9f,0x84,0xe5, + 0xd7,0x8e,0x1b,0xab,0x36,0xcd,0x06,0xfc,0x48,0xaa,0xde,0x24,0x55,0xfd,0x49,0x22,0xd4,0xce,0x8c,0x83, + 0x9d,0x2b,0xa2,0x8a,0x73,0x8c,0xd2,0x1d,0xe2,0x25,0x08,0x7c,0x8c,0x85,0x2a,0x76,0xd4,0x04,0x68,0xcb, + 0x00,0xe5,0x5d,0xb5,0x3d,0x19,0x3b,0x61,0x26,0xb6,0xcc,0xba,0xc7,0xce,0xbf,0xb3,0x77,0x84,0xa3,0xa1, + 0xa6,0x18,0x53,0x07,0x26,0xb1,0x09,0x31,0xa3,0x6a,0xd6,0x87,0x5c,0xc5,0x57,0x08,0x79,0x43,0xbb,0x95, + 0xc8,0x4f,0x55,0x71,0x7b,0xad,0x31,0xec,0xba,0xd7,0x98,0x0f,0x29,0xc9,0xc6,0x8d,0x82,0x79,0x05,0x92, + 0x9d,0x07,0xdd,0x44,0x8a,0xf6,0x22,0x10,0x39,0xf4,0xaf,0x6e,0x51,0x3a,0xc5,0x35,0x83,0xd0,0x0f,0x7b, + 0x23,0xd0,0x10,0x4d,0xbf,0xd2,0x62,0x11,0x6e,0x85,0xa8,0xd6,0xef,0xac,0x89,0x14,0xa0,0xf1,0x9e,0xff, + 0xec,0xac,0x0b,0xf3,0x1b,0x5b,0xb6,0x77,0xd5,0x09,0x8d,0x44,0xe3,0xa4,0x0b,0xdc,0xd9,0xdb,0x0d,0x11, + 0x68,0xf6,0x71,0x64,0xfd,0xb3,0x68,0xc3,0xd0,0x81,0x18,0x04,0xb5,0x42,0xdc,0xcc,0x4e,0xf6,0x84,0x7a, + 0x00,0x95,0x64,0x5a,0xe1,0xa9,0x62,0xf3,0x9f,0xc9,0x75,0x5c,0x27,0x68,0x66,0x83,0x22,0x3b,0x46,0x61, + 0xa6,0x97,0x09,0x89,0x9a,0xd0,0xc9,0xcf,0xc1,0x05,0x71,0xcb,0xcb,0xf1,0xa0,0xca,0xf7,0x12,0x05,0x8c, + 0x73,0xa7,0xdb,0xd4,0x42,0x50,0x44,0xd3,0x39,0x71,0x62,0x91,0x18,0x26,0xd1,0x26,0xbd,0x99,0x6b,0xf3, + 0xc2,0xb2,0xda,0x65,0x56,0xf8,0xd3,0x59,0x67,0x85,0x25,0x14,0xcc,0x03,0x2b,0x06,0xc6,0xcb,0xac,0x59, + 0xad,0x3e,0x8e,0x02,0xc7,0x30,0x0c,0x43,0x21,0x68,0x1e,0x6d,0x81,0x4b,0x24,0x34,0x88,0x11,0xe3,0x5e, + 0xc0,0x55,0xa5,0xa6,0x0a,0xce,0xe0,0x27,0xa4,0x1a,0x1f,0xf0,0x13,0xf1,0x40,0xbd,0x86,0xf4,0x84,0xd5, + 0x77,0xcb,0xd5,0xaa,0x36,0xbf,0xf1,0x92,0x6d,0x3f,0x61,0x9a,0x03,0x6e,0x91,0xbe,0xe6,0x88,0x1f,0xf8, + 0x61,0x6e,0xed,0xd0,0x78,0x05,0x22,0xde,0xf5,0x51,0xc7,0x72,0x26,0x97,0xeb,0xed,0x92,0xc4,0x1f,0x51, + 0x6c,0xd7,0x94,0x27,0xac,0x2c,0x70,0x9a,0x6e,0x37,0xd9,0x27,0x21,0x7e,0x33,0x76,0xa4,0x0d,0x9b,0xf4, + 0xbe,0xaf,0xb5,0x46,0xd7,0x37,0xd2,0x78,0x5f,0x89,0x09,0x9d,0x73,0x1e,0x86,0x61,0xe1,0x6a,0x75,0xd1, + 0x1a,0xd3,0xba,0xac,0x03,0x99,0x23,0xf9,0xf8,0x2d,0x3b,0x4f,0x3e,0x63,0xe5,0x9f,0x37,0xfb,0x18,0x1d, + 0x8b,0x53,0xe5,0x1b,0xe0,0x7a,0x11,0x06,0x88,0xdd,0x26,0xd1,0xba,0xf2,0x1d,0xd1,0xbb,0xbb,0x5a,0x6d, + 0x1f,0x74,0xf0,0xf8,0xb5,0x3b,0xe8,0x4c,0x17,0x2e,0x5a,0x63,0x0e,0x49,0x5c,0x2f,0xbe,0x68,0x77,0xe3, + 0x72,0x02,0x8e,0xa0,0x44,0x84,0x18,0x76,0xf6,0x0f,0xcc,0x69,0x2e,0xda,0x40,0x0c,0xdd,0xdf,0x10,0x81, + 0xe6,0x82,0x11,0x6a,0xc8,0xa7,0x01,0x33,0xc3,0x41,0x48,0x50,0xbd,0x8f,0x0b,0xc3,0xc9,0xf7,0x0c,0xe6, + 0x6e,0x85,0x15,0x71,0x02,0xa8,0x7b,0xed,0x86,0x1c,0xdc,0x25,0xdd,0x7a,0x23,0x6a,0x71,0x47,0x65,0x0f, + 0x00,0x0e,0x9b,0xca,0x96,0xf5,0xa1,0x31,0xa5,0x27,0x92,0xe1,0xd6,0xc1,0x6c,0xb0,0x55,0x6f,0x57,0xf2, + 0x6f,0xc2,0x88,0x09,0x4f,0x49,0x1a,0x90,0x29,0x75,0xa0,0x1f,0x16,0x3d,0x3c,0xb0,0x1d,0x2c,0x57,0x19, + 0x89,0x16,0x93,0xc3,0x23,0x6b,0x26,0x01,0x81,0x4a,0x5a,0xad,0xfd,0x5d,0x08,0xde,0x10,0x2f,0xc0,0x98, + 0xec,0x70,0x7e,0xeb,0x68,0xb8,0xd2,0x37,0x25,0x4c,0x8c,0x1e,0x60,0x62,0x70,0x55,0x6d,0x6f,0xf3,0x56, + 0xc9,0xe4,0x71,0x2b,0x11,0x6a,0xa9,0x51,0xd6,0x8b,0x98,0x33,0x3f,0x06,0xd9,0x2d,0x2f,0xd0,0x73,0xc0, + 0xb6,0x16,0x33,0x73,0xc4,0x52,0x2a,0x07,0xc8,0xac,0xd1,0x66,0x8a,0x0f,0xa4,0x53,0x80,0xb1,0xde,0xb5, + 0x43,0x9e,0xc4,0x81,0x59,0x5a,0xf6,0x65,0x57,0x5b,0xde,0x3f,0xbb,0x6b,0x46,0x63,0xb0,0x33,0xa3,0x6c, + 0x96,0x2b,0xec,0x1e,0x1c,0x25,0x03,0xb3,0xf2,0xb0,0x83,0x5c,0x07,0xee,0xf3,0x6b,0x77,0x75,0x1a,0x06, + 0x56,0x61,0x1c,0x4e,0x64,0x5f,0x95,0x5d,0x63,0x99,0x8f,0xcb,0xec,0x2d,0x7e,0x1a,0x5e,0xf4,0xe3,0x79, + 0x76,0xce,0xbf,0x6d,0x76,0xc5,0xbf,0xbf,0x67,0x9f,0xf0,0x53,0x64,0x8f,0xf1,0x73,0x99,0x9d,0x70,0xea, + 0x69,0x76,0xc9,0xbf,0x17,0xd9,0x0d,0xff,0x9e,0x64,0xc7,0xfc,0x7b,0x45,0x2c,0x35,0x7e,0x75,0x76,0xce, + 0xbf,0xcb,0xec,0x31,0xa7,0x9f,0x65,0x6c,0xec,0x7f,0x3c,0xcb,0xde,0xf1,0xef,0x22,0x7b,0x18,0x4c,0xd6, + 0x6b,0xbb,0xb0,0x95,0x3d,0x0c,0x73,0x63,0x53,0x4e,0xec,0x64,0x6d,0x2d,0x45,0xc6,0x44,0x36,0xd0,0x06, + 0x5b,0xc2,0x29,0x71,0x12,0xe7,0x3d,0x46,0xb7,0x22,0x5e,0xe7,0xb8,0xaa,0x8b,0x33,0x28,0xd1,0xb2,0x2a, + 0xad,0x32,0x2a,0x52,0x05,0x69,0x63,0x61,0x18,0x1f,0x82,0x0f,0x85,0x15,0x0d,0xa2,0x27,0x27,0xb0,0x00, + 0x9d,0x8e,0xbd,0x2f,0x8e,0xb1,0xe7,0x16,0x73,0x8e,0x3b,0x1c,0x73,0x8c,0x67,0x8b,0xf1,0xb8,0x99,0x1b, + 0x8f,0xc1,0x86,0xc1,0x7f,0xb5,0x3a,0xb3,0xf7,0x00,0xa2,0x73,0xec,0x51,0x40,0x8c,0xba,0x7d,0x07,0x39, + 0x2d,0xce,0x4c,0x38,0xa3,0x07,0x3c,0x48,0x0a,0x73,0x7c,0xaf,0x56,0x7c,0xd5,0x60,0x40,0x09,0x28,0x9b, + 0x95,0x11,0xab,0x5a,0xb2,0x80,0xd0,0xa6,0x0c,0x3b,0x98,0x18,0x91,0x59,0x14,0xd4,0x11,0xf5,0xcd,0x88, + 0x7b,0x66,0xc3,0x96,0x26,0xed,0x37,0xed,0xbb,0x2c,0xc6,0xb1,0x7c,0x28,0x74,0x30,0xac,0x75,0xb5,0x31, + 0x5d,0x0c,0x3f,0x50,0x1b,0x44,0x4d,0x36,0xdc,0x80,0x7c,0xcb,0xd2,0x9e,0xe3,0x46,0x3c,0x2d,0x84,0x4c, + 0x39,0x9e,0x0e,0x58,0x3b,0xc9,0x56,0x7f,0xdb,0x22,0xba,0x9a,0x21,0x0d,0x96,0x49,0x40,0x03,0x6c,0xf7, + 0xa5,0x53,0x2c,0xb1,0xf1,0xfe,0x1c,0xbe,0x11,0xdc,0x5a,0xe5,0xdc,0x42,0x2a,0x98,0x41,0xa5,0x77,0x37, + 0x6b,0x1a,0xe8,0xb5,0x1b,0xd0,0xeb,0x4f,0x06,0x48,0x15,0xf6,0x9d,0xb1,0x7d,0x0b,0xd8,0x79,0x82,0xa8, + 0x2a,0x70,0x3d,0xa9,0x71,0xab,0x23,0x4b,0x05,0xe2,0x58,0x64,0x07,0x74,0xfa,0xc9,0x03,0x9f,0xba,0x9c, + 0x99,0x49,0x99,0x24,0x14,0x47,0x3f,0xed,0x23,0x1b,0x1b,0x30,0x03,0xb6,0x21,0x22,0x93,0x5c,0xd3,0xb6, + 0x7f,0x1d,0xda,0x15,0x8b,0x71,0x57,0x9b,0xdd,0x22,0x78,0x50,0xc7,0xf5,0xc0,0x70,0xbf,0x1b,0x7e,0x4c, + 0xcc,0x8b,0x6f,0xa4,0x82,0xbc,0x7d,0x62,0x03,0x01,0x80,0x8b,0x66,0xb9,0xee,0x85,0xd6,0x8b,0x87,0xf3, + 0xe2,0x4a,0xbb,0x03,0x62,0xfc,0x11,0xad,0xeb,0x85,0xc4,0x43,0xc6,0x51,0x84,0x93,0x69,0xa8,0x9d,0x0c, + 0x86,0xab,0x88,0x00,0x7b,0xcc,0xcc,0x99,0x64,0xb2,0xfb,0xbb,0xec,0xbc,0x9f,0x4b,0xc4,0xb6,0x86,0xae, + 0x01,0x6f,0xe9,0xf7,0x2d,0xe2,0x2d,0xd6,0xd2,0x6e,0x51,0x22,0x8c,0xf6,0x7b,0x43,0xc7,0xaa,0x37,0xac, + 0xf9,0xa6,0x75,0x97,0x23,0x9e,0x70,0xb7,0x3c,0x40,0xb6,0xd8,0x25,0x09,0x28,0xab,0x97,0x42,0xb4,0x35, + 0x42,0x88,0x6d,0x38,0x28,0x8d,0x1e,0xc3,0x35,0x00,0x72,0xbd,0xd1,0x3d,0x0e,0x9a,0x10,0x43,0xc3,0xa2, + 0xe7,0x97,0xa9,0xf5,0x2e,0x93,0xb9,0x65,0x56,0x6d,0xad,0xec,0x98,0x7b,0x53,0x6c,0xf5,0x13,0xfd,0xda, + 0xc7,0xdb,0x7d,0x98,0xf3,0x60,0x64,0xc6,0x18,0x6e,0x1c,0xf8,0x1f,0x85,0x5b,0x4b,0xe1,0x16,0x01,0x36, + 0xbb,0xa9,0xac,0x80,0x63,0xb5,0xca,0x45,0x3a,0xb1,0x9d,0xfb,0xa4,0x8a,0xe5,0x1d,0xc1,0x87,0x7c,0x86, + 0x41,0xaa,0xc7,0x0f,0x60,0x9a,0xa8,0x9e,0x62,0xb5,0x0a,0xec,0x5e,0x0c,0x9d,0xf4,0xd8,0x09,0x80,0x1a, + 0x56,0xbb,0x85,0x25,0x82,0x05,0xe2,0x30,0xec,0xf7,0xae,0xdc,0xe3,0x31,0x3f,0x8a,0xc0,0x81,0x1f,0x2d, + 0x1e,0xad,0x61,0x18,0x7f,0x57,0x23,0x1c,0xbf,0xfd,0x9e,0x90,0xae,0x66,0xf8,0x86,0xa2,0x85,0xe3,0xd9, + 0x3d,0x8f,0x7c,0x05,0xf3,0x6e,0x9a,0xf1,0x24,0xb7,0xb0,0x99,0x39,0xf0,0x4a,0xa1,0xa5,0x33,0xd4,0x51, + 0xf3,0xac,0xd3,0x77,0x4a,0x83,0x5c,0x14,0x82,0x2d,0x75,0x4a,0xc7,0xf5,0xe9,0x83,0xb9,0x3d,0xae,0x4f, + 0x2d,0x11,0x31,0xcb,0xe6,0x87,0xa7,0x47,0x6a,0xb1,0x61,0x0f,0x34,0x5e,0x1e,0xce,0x8e,0xb2,0x17,0x08, + 0xfa,0xb3,0x50,0x7c,0x09,0x84,0xb1,0xd5,0x19,0x32,0x1c,0x22,0xd6,0x86,0xf9,0xb9,0x33,0x71,0xf8,0xcb, + 0x36,0xa7,0xd0,0xfa,0xa1,0x37,0xe3,0xcf,0xe4,0x11,0xfa,0xf8,0xa1,0x65,0x93,0xed,0x73,0x41,0xc9,0x3a, + 0x38,0x22,0x88,0xdd,0xb1,0x62,0x44,0xee,0x04,0x8d,0x7f,0x6a,0x82,0x7a,0x00,0x89,0xc7,0xed,0xc0,0xc6, + 0x1b,0xd8,0x8c,0x12,0xd8,0x50,0xba,0x0d,0xa6,0xda,0xb6,0x0d,0xd8,0x74,0x27,0x23,0xee,0x23,0x67,0xc7, + 0xcd,0x4d,0xef,0x0c,0x36,0x9f,0xb7,0xde,0x7e,0xf5,0x50,0x0b,0xe3,0x1a,0x28,0xe4,0xa5,0x84,0x1f,0x81, + 0x04,0x2b,0x78,0x05,0x41,0xfa,0x5b,0x0b,0x89,0x93,0x0d,0x4f,0x92,0xd8,0xbb,0xfc,0x3c,0x8a,0x01,0x47, + 0x1c,0x7c,0x33,0x89,0x63,0x00,0x15,0xa5,0x94,0x1c,0x86,0x84,0xcd,0x33,0xb4,0x15,0x10,0x24,0x49,0xfa, + 0x6f,0x54,0x48,0x4b,0x43,0xbd,0x36,0x11,0x4c,0x06,0x9c,0x4a,0x86,0x3a,0xda,0x76,0x70,0x9d,0x57,0x62, + 0xb9,0x9e,0x6c,0x28,0x5f,0x58,0x2b,0x5d,0x32,0x8d,0x78,0x2c,0xa6,0x93,0xcf,0x5d,0xa7,0xf6,0xd5,0xaf, + 0x1c,0x00,0x9f,0xd8,0x74,0xdf,0xd7,0x04,0xf7,0x02,0x07,0x3d,0xf7,0x21,0x95,0xac,0xca,0xe6,0x9e,0x73, + 0xad,0x0c,0x99,0x82,0x38,0xc8,0x80,0x12,0x67,0xfc,0x5b,0x2b,0x96,0x6f,0x3e,0x12,0x0b,0x94,0xca,0x2d, + 0xc6,0x9d,0x52,0x59,0x33,0x70,0x3e,0xce,0xd5,0xb3,0xae,0x13,0xc5,0xc7,0x36,0x50,0xdd,0xbe,0x6a,0xe3, + 0xa5,0x72,0xa7,0x1f,0xc6,0xf3,0x22,0x5e,0x26,0xce,0x2a,0x30,0x00,0x4e,0x18,0x6e,0x8a,0xd7,0xd8,0x12, + 0x38,0x97,0xb8,0x5a,0x63,0xaf,0x89,0xf2,0x83,0x97,0x81,0x58,0x63,0x26,0xfa,0x88,0x2a,0x1d,0x4d,0x8b, + 0x59,0x12,0x58,0xdc,0x51,0x0d,0x9e,0x8f,0xb6,0x8c,0x12,0x8d,0x93,0xed,0x6f,0x58,0x49,0x62,0x9e,0x71, + 0x46,0x24,0x3e,0xe6,0x90,0x4b,0x1b,0x8b,0xaa,0xce,0x1a,0xc1,0xcc,0x82,0x32,0x36,0xc9,0xf0,0xeb,0x8f, + 0xd8,0x2c,0x57,0x4b,0x9d,0xd5,0x35,0xe0,0x9b,0x1a,0x30,0xb6,0xf8,0xf2,0x1e,0xc4,0x24,0x85,0x3d,0xbe, + 0x49,0xb4,0x5e,0xe3,0xe8,0x17,0x42,0xdd,0x12,0xe5,0x6d,0x7a,0x66,0xde,0x7a,0x7d,0x0b,0x52,0x4d,0x8b, + 0xdb,0x41,0x93,0xde,0x3c,0x51,0x12,0xf8,0x0a,0xdb,0x02,0x90,0x52,0x65,0x22,0x1d,0x15,0x3f,0x76,0xa0, + 0x84,0x32,0x8e,0xa0,0x3b,0x4d,0x83,0x18,0x3c,0x9b,0x84,0xdc,0xb1,0x5c,0x4d,0x9e,0x98,0xbb,0x1d,0xee, + 0xf6,0x70,0x71,0x2a,0x1f,0xeb,0xe1,0x82,0x5b,0xea,0x7b,0x38,0x63,0x8c,0x8d,0x56,0x3b,0x6b,0x25,0x65, + 0x02,0x26,0x82,0x69,0x62,0x13,0x05,0x6b,0x41,0x53,0x25,0xa6,0xbb,0x89,0x2d,0x92,0xf7,0x8b,0xe4,0xee, + 0xa6,0x15,0x38,0xe9,0x67,0x2f,0x7b,0xf7,0x62,0xdb,0xd5,0xc9,0x7e,0x62,0xec,0x46,0x14,0xd9,0xc4,0xb7, + 0x9b,0x36,0x40,0xab,0x6b,0x50,0xee,0xdd,0xef,0xba,0xf0,0xc0,0x7b,0x4e,0xdb,0x1b,0x3f,0xf8,0x1b,0xbe, + 0x97,0x27,0x6b,0xe3,0x69,0x40,0x28,0x3e,0x8f,0x11,0x9c,0x22,0xbe,0xa1,0x9f,0xc9,0x8b,0x10,0x56,0x70, + 0x5f,0x10,0x9b,0x48,0xa1,0x74,0x4a,0xf9,0x1e,0x1f,0xe0,0x83,0xe0,0xd5,0x17,0x23,0x72,0x63,0xee,0xc0, + 0x33,0xec,0x0d,0x06,0x62,0x72,0x58,0x60,0x87,0x72,0x1e,0x5c,0xba,0xd0,0x22,0x65,0x4d,0x02,0x06,0x8f, + 0xbd,0x30,0x27,0xd2,0x7e,0x9e,0xdf,0x4c,0x5c,0x49,0x1a,0x14,0x71,0x38,0x81,0xdd,0x52,0xb0,0xf8,0x06, + 0x58,0x7a,0xc3,0x79,0x11,0x6c,0x9d,0x38,0xac,0x07,0x93,0x73,0x80,0x85,0x30,0x8d,0xac,0x56,0x5f,0xee, + 0xef,0x9b,0x4e,0x9a,0xa8,0xd1,0x22,0xe1,0x1a,0x6e,0x2d,0x1f,0x6c,0x6d,0x69,0xe3,0x58,0xf8,0x3a,0xe0, + 0xc3,0x57,0xb0,0x9f,0xbe,0x6d,0x7c,0xd2,0x19,0x78,0xea,0x2b,0x20,0x4c,0x55,0x65,0x4b,0xa8,0x79,0x9d, + 0xab,0x29,0xb1,0x5b,0x33,0xa2,0x0a,0x17,0xc4,0x94,0x9d,0xd3,0xb9,0x77,0x45,0x34,0x45,0x7c,0x49,0x4c, + 0x26,0x61,0xb0,0xae,0xcf,0xff,0xa9,0xba,0x0c,0xbc,0xb3,0xe5,0x5a,0xb1,0x99,0x32,0x27,0x50,0xba,0x50, + 0x16,0x4b,0xa6,0xe7,0xaa,0xcd,0xcf,0xd2,0xab,0xb5,0xba,0x1c,0xdb,0xbb,0xec,0x1f,0xe3,0xe2,0x3b,0x05, + 0xed,0xeb,0x25,0x11,0x28,0xf3,0xc0,0xe3,0xb1,0x6b,0xca,0xcf,0xb9,0xa0,0x35,0xf8,0x81,0x0f,0xc8,0xd5, + 0x2a,0x62,0xc1,0x73,0xc4,0x87,0x5c,0xaf,0x80,0x46,0x68,0x19,0x44,0xc9,0x29,0x71,0x4f,0xe1,0x18,0x77, + 0xd8,0x1a,0xb1,0x5c,0xeb,0xc5,0x72,0x09,0x5b,0x04,0x98,0x2f,0xb8,0xae,0xb1,0x45,0xb2,0x2c,0x7c,0x6b, + 0x8d,0xf0,0x8d,0x76,0x57,0x21,0xfa,0x45,0x5b,0x18,0xa2,0xac,0x93,0x7c,0x7a,0x31,0x06,0xb9,0x3b,0x89, + 0x37,0x24,0x1c,0x8c,0xc8,0x2a,0x87,0xc1,0xf2,0x24,0xad,0xb0,0x2b,0x99,0x32,0x86,0xf4,0xe5,0x30,0x77, + 0xc2,0x97,0x8a,0x43,0x4a,0x53,0x5a,0xbe,0x86,0xf5,0x89,0x75,0xc9,0x37,0xa1,0x48,0xee,0xb8,0xc8,0xc8, + 0x15,0xf4,0x4e,0x1b,0x74,0x4a,0xd4,0xee,0x94,0xe0,0x80,0xe8,0x5a,0x46,0xca,0x14,0xab,0x2b,0x86,0x0e, + 0xaf,0x56,0x6f,0x20,0x3a,0xed,0x2a,0xc5,0xac,0x7a,0xf7,0x3a,0x26,0x22,0xb3,0x02,0x35,0x23,0xe6,0x35, + 0xb4,0x8d,0x89,0x78,0x15,0xf9,0x2c,0xbf,0x1f,0x04,0x32,0x45,0xa8,0xd7,0x59,0x33,0xe2,0xbb,0x3e,0xb2, + 0x3d,0xce,0xe7,0x1e,0x96,0xee,0x24,0xb0,0xb5,0x1b,0x31,0x18,0x2e,0x05,0xa6,0x20,0xe8,0x6a,0xe0,0x6a, + 0xc0,0xea,0xb6,0x26,0xc9,0xa1,0x6c,0x23,0x9a,0x6f,0x4a,0x7d,0xa1,0xf5,0x3d,0x33,0xd2,0xb6,0x37,0x44, + 0x8f,0xf0,0x60,0x69,0x86,0x9f,0x82,0x51,0xb4,0xaf,0x0a,0x39,0x42,0x96,0xba,0x1c,0x79,0x35,0x26,0xde, + 0xe0,0x38,0x5e,0x83,0xbd,0xcf,0xe1,0x41,0x03,0x43,0xfb,0xb9,0xe3,0x59,0x02,0x73,0xd8,0x25,0xf1,0xa6, + 0x40,0x62,0xd4,0xad,0x79,0xcf,0xa6,0xcd,0x8c,0x91,0xb8,0xd0,0x39,0x8d,0x6d,0x69,0x88,0x6c,0x55,0x25, + 0x9b,0x2a,0x23,0x9a,0x11,0x77,0x0c,0x9c,0x66,0xb4,0xf8,0xf3,0x84,0x69,0xdf,0x59,0xa0,0x0a,0x39,0x75, + 0xaa,0x90,0x05,0xd1,0x1f,0x8b,0x07,0xf6,0x7d,0xbc,0xa0,0x43,0x62,0x76,0xb8,0x38,0xca,0xa8,0xa5,0x53, + 0xfa,0xed,0x35,0x66,0xba,0x81,0x9d,0xbc,0x54,0x86,0x53,0xb6,0xc7,0x10,0xe4,0x24,0xc2,0x38,0xb0,0xcc, + 0x50,0x62,0x0d,0xbd,0x2e,0x55,0xb8,0x6c,0x39,0xae,0xe1,0xa0,0x1d,0xed,0x3c,0x02,0xb4,0xe8,0x2f,0x10, + 0xee,0xc9,0x90,0xba,0xcc,0x0c,0x4f,0x93,0xf5,0xf6,0xf0,0xb1,0xa6,0xbd,0xa5,0x91,0x35,0x32,0x32,0x0e, + 0x77,0xcf,0x3a,0xce,0xa1,0x06,0x86,0x9f,0xb5,0xd6,0x55,0x92,0x45,0x93,0x1f,0x59,0x36,0x59,0x60,0xdf, + 0xac,0x56,0x05,0x64,0xf1,0xc7,0x62,0x20,0x84,0x8d,0x28,0x12,0xcb,0x17,0x90,0x1b,0x16,0xb4,0x97,0x12, + 0x01,0x3c,0xd4,0x33,0x0f,0xf6,0x82,0xdc,0x34,0xe9,0xfc,0xae,0x4d,0xcc,0x8c,0xe8,0x6a,0xa9,0xf7,0xdc, + 0xd9,0xb1,0x87,0x4b,0xfa,0x88,0xee,0xd9,0x8d,0xe7,0x93,0x88,0x5e,0xe6,0x2c,0x2a,0xd6,0x6a,0x30,0x2a, + 0x47,0xab,0x6e,0xc1,0x7a,0xa6,0x4b,0xe5,0x28,0xf2,0x34,0x57,0x8e,0x22,0x4f,0x1b,0x46,0x68,0xb5,0xc7, + 0x70,0xe5,0x1a,0xd6,0x51,0x2c,0xee,0x3f,0x55,0xe0,0x4b,0xce,0xd5,0x95,0xba,0x0c,0xbc,0x3c,0x5a,0x7f, + 0x91,0x67,0xdf,0xcb,0x4b,0x7e,0x94,0x5c,0xda,0xb0,0x0e,0xfc,0x8c,0x03,0x3b,0x29,0xae,0xf9,0x4d,0x9b, + 0x1d,0xa8,0xe7,0x6d,0xf6,0xa5,0xa7,0x19,0xdf,0xf6,0xac,0xe3,0x8c,0x0e,0xb7,0xef,0xde,0xb4,0x5a,0xbd, + 0x87,0xa3,0x12,0xbb,0x83,0xd5,0x90,0xe7,0xab,0xd2,0xf9,0xee,0x3d,0x34,0x8c,0x7b,0xf6,0xbc,0x4d,0xd4, + 0xd0,0x86,0xe5,0x1d,0x59,0x8a,0x31,0x8e,0xb5,0xe0,0xb4,0xc0,0x7f,0x6e,0x42,0x4c,0xfa,0x02,0x05,0x1b, + 0xd8,0xb5,0x19,0x3f,0x05,0x8e,0x81,0x5c,0xd2,0xf8,0x00,0x01,0x9f,0x8c,0x7b,0x9d,0xac,0x87,0x03,0x27, + 0xd7,0xa2,0xa0,0xb7,0x4a,0xb9,0x24,0x64,0xc9,0xe9,0xc8,0x11,0xf3,0x8b,0x14,0xa5,0x10,0xae,0xdc,0x52, + 0x2e,0x38,0xfe,0x32,0x1a,0xd0,0xa4,0xc6,0x66,0xab,0x09,0xd1,0xc2,0x87,0xa2,0x65,0x47,0xdd,0x3b,0x48, + 0xb3,0xbe,0x49,0xf8,0xa6,0xae,0x00,0x6e,0xc8,0x49,0x47,0xaf,0x16,0x84,0x9c,0x62,0x9c,0x6e,0xd4,0xeb, + 0x87,0xf0,0xa2,0xf0,0x7e,0xbd,0x40,0xcf,0x6a,0x43,0x58,0xdc,0xb2,0x60,0xd5,0xf2,0xed,0xcc,0x4d,0x0b, + 0xaf,0x5e,0xb2,0xf6,0xa9,0x17,0xbf,0x50,0x42,0x8e,0x7e,0x1c,0x75,0x42,0x21,0xc2,0x05,0xd6,0xc0,0xfa, + 0xc7,0xd1,0x50,0x78,0x43,0x7c,0x85,0x45,0xec,0x02,0x37,0x42,0xcf,0x42,0x4b,0xb9,0xa8,0x61,0x7d,0x43, + 0xc8,0x36,0x83,0x87,0x54,0xa0,0x5b,0x74,0x7b,0xa6,0xc1,0xd5,0x33,0xae,0x8d,0x76,0xb8,0xae,0x57,0x30, + 0xa2,0x34,0x81,0x1f,0x70,0xed,0x73,0xf6,0xaa,0x95,0x5b,0xd0,0x03,0x35,0xed,0xc6,0x39,0x59,0xa5,0x72, + 0x80,0xbe,0x61,0x9d,0x5e,0x97,0x97,0x33,0xdc,0x0f,0x47,0xa1,0x29,0x89,0x9b,0xa9,0x6a,0x5d,0x9c,0x99, + 0x8b,0x48,0xcc,0x35,0x91,0xf9,0x19,0x2f,0xe5,0x76,0xec,0xc0,0x18,0x08,0xbf,0xf5,0x5c,0x72,0xe8,0xcf, + 0x07,0xf5,0xc7,0xa8,0xcf,0xca,0x15,0x0f,0x2a,0xaf,0xaf,0xc8,0x83,0x02,0x50,0x5c,0xbc,0x81,0xa9,0x1a, + 0x5b,0xa2,0x11,0xb7,0x94,0x53,0x3f,0x68,0x03,0x3d,0x14,0x08,0x6d,0xae,0xa0,0x09,0xca,0x6c,0xbe,0xc6, + 0xc1,0x42,0x1d,0x06,0x19,0x05,0x93,0x0d,0x63,0xaf,0xf6,0x3c,0x8e,0xa7,0x59,0x49,0xc0,0x0a,0x05,0x24, + 0x8a,0x41,0x5b,0x2e,0x2f,0xea,0x39,0x3d,0xb2,0x96,0xd2,0xa6,0xcb,0x4b,0x02,0x5d,0x0c,0x36,0xc9,0x3a, + 0xd8,0x7b,0xbc,0xed,0x5f,0xb6,0xea,0x91,0x09,0xab,0xe5,0xbd,0x3c,0x3a,0x9a,0x08,0x08,0x7a,0x8e,0x35, + 0x71,0xe5,0x08,0x59,0x4f,0x87,0x36,0x0c,0x38,0xe4,0x85,0xed,0x77,0xac,0x66,0xdf,0x1a,0xf9,0x13,0x74, + 0xc8,0x2d,0xee,0x30,0x14,0x95,0x1d,0x84,0x6e,0x69,0x5c,0xe4,0x62,0xf8,0x48,0xdc,0x6c,0x13,0x38,0x72, + 0xdc,0x69,0x32,0xd4,0xb5,0x18,0xf2,0x5f,0xfc,0xdc,0x1a,0xd3,0x9e,0x3b,0xf5,0x6d,0x03,0x5b,0xce,0x12, + 0x7d,0xc6,0x0d,0xcf,0xcc,0x25,0x90,0x4a,0x5f,0x74,0x47,0xeb,0x41,0x7d,0x2a,0x3d,0xd1,0x1a,0xda,0x97, + 0xfd,0x62,0xe6,0xe6,0x65,0xcb,0xcc,0x5b,0x37,0x84,0xf6,0x1f,0x61,0xe6,0xe9,0x69,0x2f,0xf7,0xf7,0x36, + 0xb0,0xe4,0xcc,0x5e,0x3a,0x25,0x7e,0x00,0xa0,0x84,0xaf,0x85,0xd5,0xba,0xc3,0x98,0x06,0x41,0x21,0xb8, + 0x66,0x96,0x4c,0xf9,0xaa,0x7f,0xf0,0x4a,0x4c,0x6e,0x84,0xa9,0xe0,0x5f,0x5a,0xf5,0x47,0xab,0x7e,0x6f, + 0xd5,0x4b,0x3a,0x45,0x13,0xfc,0x37,0x0a,0x72,0x76,0x2e,0xe9,0x2f,0xfa,0xb7,0xad,0x17,0x9a,0x7c,0xef, + 0xfa,0xf6,0x3d,0x42,0x51,0x85,0x0e,0x27,0x6d,0xd6,0x06,0xed,0xfe,0xda,0x5a,0x44,0x37,0xb6,0xc6,0xc1, + 0xc6,0xde,0x2f,0x19,0x27,0x62,0x7b,0xe5,0x24,0x22,0x2e,0x70,0xf2,0xa6,0x59,0xec,0xbf,0x03,0x7d,0xa4, + 0xb5,0xd9,0xea,0x8b,0x59,0x0e,0x14,0x37,0x66,0x9d,0xb2,0xac,0x21,0xca,0x46,0x49,0x77,0xa3,0x57,0xa7, + 0x75,0x6b,0x68,0x97,0x85,0x3d,0xba,0xd5,0x1d,0xe1,0xd2,0xb8,0xab,0xe3,0xd3,0x9b,0x22,0x1a,0xd0,0x19, + 0xe8,0x6b,0x20,0xa3,0x29,0x45,0x46,0xa3,0xc3,0xc8,0xb9,0xe1,0xca,0xfc,0x66,0x86,0x36,0xb7,0x27,0x54, + 0x19,0x48,0x09,0xa1,0x97,0xaf,0xb3,0x76,0x37,0x12,0x27,0x32,0xf1,0x29,0xee,0x22,0x97,0x0d,0x9c,0xc2, + 0xd6,0xee,0x05,0x1d,0x02,0xd6,0xde,0x1d,0x56,0x39,0x70,0xe5,0x6a,0x10,0x4b,0x96,0x83,0x5f,0x32,0xbe, + 0xd7,0x97,0x08,0x8f,0xcf,0xb2,0x05,0x5c,0x66,0xad,0xd8,0x19,0x8d,0xdd,0x34,0x38,0x66,0x81,0x2e,0x39, + 0x64,0x14,0x1b,0x41,0x96,0x25,0xa6,0xb7,0xe6,0xff,0x15,0x9c,0xf8,0x72,0xfc,0x6b,0xca,0xcc,0xde,0x3d, + 0xc8,0xb1,0x3a,0x77,0x76,0xb6,0x7f,0x30,0x54,0x5c,0x99,0x99,0x40,0x95,0x41,0x78,0xde,0xf1,0x74,0xf8, + 0x06,0x82,0x69,0x89,0x1a,0x76,0x76,0x1a,0x02,0x9f,0xff,0xee,0x5f,0x99,0x75,0xc5,0xe6,0x2a,0xfc,0x83, + 0xf0,0xea,0xc4,0x61,0xbe,0x6b,0xf3,0xcb,0x05,0xcc,0x89,0xcb,0x01,0xad,0x9a,0xd4,0x85,0xd0,0xeb,0x81, + 0xc1,0xa7,0x33,0x49,0x53,0xad,0x58,0xbf,0x97,0x19,0xda,0xe2,0xf1,0xec,0xab,0x1f,0xdb,0x11,0xe2,0x6c, + 0x0d,0xc7,0xc4,0x26,0x6c,0x33,0xdb,0x6b,0xe9,0x1f,0xb8,0x31,0xac,0x7a,0x55,0x3e,0xf8,0xd1,0x51,0x95, + 0x15,0x96,0x9b,0x60,0xfa,0xc7,0xf6,0xb0,0xa2,0x65,0x1e,0x49,0xd8,0x64,0x4c,0xae,0x3c,0x71,0xf8,0x42, + 0x54,0x41,0xd3,0xc8,0xb1,0x57,0x78,0x3d,0x46,0x35,0x7a,0x64,0x97,0xba,0x0c,0x1c,0x17,0x7e,0x74,0x5e, + 0x0c,0x54,0x75,0xe6,0xda,0xc9,0x1c,0x7c,0x41,0x18,0x53,0x66,0xe8,0x77,0xdc,0x0a,0x8b,0xf8,0x17,0xc9, + 0x09,0x0e,0x97,0x18,0x4a,0x1b,0x15,0xa0,0x14,0xd0,0x05,0x11,0x0b,0x02,0x6d,0xdd,0x45,0x5b,0x87,0x71, + 0xc2,0x02,0x0c,0x09,0x2a,0x6e,0x74,0x75,0x09,0x91,0x2e,0x07,0x6f,0xd0,0x35,0x2c,0x22,0x81,0x7d,0xbc, + 0x7c,0x16,0xb1,0xcd,0x7b,0x4a,0x23,0x11,0xf1,0xda,0x40,0xd3,0x38,0xb7,0x60,0xd9,0x44,0x53,0xf6,0x71, + 0x64,0x83,0x3a,0x13,0x6d,0xa0,0x47,0x02,0x9b,0xa7,0x73,0x44,0x14,0x13,0xa0,0x9c,0x03,0xe2,0x4e,0xcb, + 0x81,0x90,0x8b,0x26,0xd8,0xe2,0xd5,0x25,0x74,0x49,0xa2,0x76,0xb0,0x5d,0x12,0xf3,0x0e,0x9f,0x60,0xe4, + 0x78,0x92,0x5c,0x4f,0x62,0x13,0xe2,0x4b,0x2f,0xb2,0xed,0xed,0x9a,0x1f,0x44,0x41,0x89,0x70,0xbc,0x9c, + 0x84,0x07,0xa3,0xfd,0xcd,0xff,0xb8,0xe1,0x24,0x3c,0x18,0x3d,0x29,0x1d,0x3d,0x9c,0x84,0x07,0x49,0x92, + 0x75,0xcf,0x6a,0xf3,0x90,0xa4,0xbe,0x05,0x5f,0xb1,0xaf,0x2f,0xa8,0xc6,0x44,0x35,0x9c,0x9e,0x58,0xe5, + 0x73,0x31,0xcb,0x76,0x77,0xe7,0xe6,0xc5,0xaf,0x9b,0x54,0x58,0xd4,0xed,0x8d,0xaf,0xc7,0x85,0x2a,0x6b, + 0x78,0xcb,0x72,0xf0,0x48,0x7d,0xfd,0x24,0x7c,0xa7,0xcc,0xe7,0xb3,0xc6,0xb8,0x5f,0x85,0x45,0xfa,0xa9, + 0xfa,0x13,0xdf,0xda,0x55,0xe0,0xd2,0xfb,0x68,0x48,0x98,0xdb,0x8a,0xaa,0x96,0x28,0xc4,0x16,0x63,0x49, + 0xe3,0xf0,0x35,0x84,0x22,0x08,0x07,0x7e,0xb2,0xf7,0x70,0x7a,0x91,0x8a,0xb9,0x96,0x63,0x14,0x0d,0xde, + 0x18,0xd1,0x85,0xe1,0xb2,0x73,0x3e,0x87,0x61,0x2f,0x20,0xc9,0x39,0xc4,0xa6,0x3a,0xf2,0x86,0x12,0x10, + 0x7b,0x1b,0x25,0xb4,0x74,0xc7,0x9a,0x14,0x99,0xce,0x5d,0x24,0x26,0x57,0x22,0xbc,0xb9,0xe9,0xb3,0xf6, + 0xa0,0xb6,0x6c,0x0c,0x93,0xa6,0xf0,0xc2,0x86,0x5e,0x0c,0x48,0xc6,0x25,0xe3,0xb9,0x18,0xc5,0xd9,0x20, + 0x8d,0x06,0x06,0xd9,0x5f,0xd7,0xd4,0x2d,0xcd,0x1a,0xfb,0x23,0x15,0x3a,0xe1,0x71,0x70,0x20,0x0b,0x0f, + 0xce,0xef,0xd4,0xb8,0xe6,0x7d,0x21,0xdf,0xc1,0x7a,0x71,0xcb,0xc0,0xed,0x56,0xf4,0xc5,0x6e,0x6f,0x75, + 0x76,0xbf,0x88,0xbe,0xf0,0x8e,0xc4,0x0e,0xcc,0x98,0xa8,0xd3,0x82,0xcc,0x0d,0x44,0xc1,0xc1,0x63,0xb9, + 0x00,0x34,0xc4,0x81,0x55,0x89,0xea,0x8c,0x50,0xc2,0xb5,0x6e,0x46,0xc4,0x63,0xec,0x35,0xee,0x82,0x0b, + 0xfb,0xc8,0xc1,0xcb,0x2e,0xee,0xa5,0xc3,0x57,0xce,0x2e,0x80,0x81,0x3f,0x27,0x37,0x0f,0x80,0xd0,0x7d, + 0x6f,0x43,0xd6,0xca,0x3c,0x26,0xbd,0x2e,0x05,0xfd,0xfe,0x4c,0xac,0x58,0x00,0xbd,0x0b,0x00,0xe1,0x70, + 0x54,0xeb,0x33,0x61,0x3a,0x36,0xd4,0x7f,0x1a,0x17,0x2b,0x64,0x5c,0x08,0x5c,0x13,0xab,0x36,0xb0,0x4e, + 0x93,0xee,0x8e,0xc3,0xfd,0xd3,0xad,0x69,0x63,0x1f,0xf5,0x12,0xac,0x47,0x9f,0xf2,0x15,0x36,0xc1,0x5e, + 0x0d,0x27,0xaa,0xbb,0x6b,0xcb,0xee,0x24,0x5a,0xe4,0xdf,0x9b,0x21,0x41,0xa3,0x1b,0xa1,0x82,0x19,0xa4, + 0x03,0x34,0xb1,0x6d,0x20,0x1b,0x78,0x46,0xd2,0xf9,0x00,0x1a,0x54,0x85,0x19,0x37,0x48,0xa6,0x84,0xf8, + 0xcc,0x12,0x92,0x8b,0x4f,0x2f,0x42,0x3e,0x75,0x19,0xda,0x39,0xb9,0x03,0x6a,0xef,0x00,0xe7,0x22,0x61, + 0xff,0x1f,0x21,0x5b,0xa1,0x4a,0xfe,0x9b,0x6b,0x4a,0x70,0x01,0x08,0xce,0x34,0x73,0x2d,0xcd,0xee,0x81, + 0x02,0xcb,0x26,0x94,0xd9,0x8f,0x36,0xd4,0x51,0x32,0x2e,0xf9,0x8e,0x31,0x3e,0x8c,0x7f,0xd3,0xf1,0x12, + 0x57,0x8a,0xad,0x6d,0xe4,0xe0,0xce,0x80,0xa9,0xdf,0x43,0x37,0x88,0x59,0x62,0x2d,0x00,0x0b,0xde,0xc5, + 0x4c,0xe1,0x6d,0x9b,0xa8,0xce,0xbc,0xe7,0x57,0xab,0xe7,0x6c,0x3f,0xed,0xb6,0x4b,0x07,0x5c,0x44,0x14, + 0x6b,0x6b,0xed,0x84,0x81,0x94,0x7d,0x5a,0x9b,0x8d,0x36,0x3d,0x09,0x8c,0x0a,0xaf,0x2e,0xd9,0x3a,0xb3, + 0xef,0x61,0x6b,0xb2,0xbe,0xb0,0x22,0xdb,0xbf,0xb4,0x9d,0x79,0x66,0xee,0x6e,0x62,0xdd,0x9b,0x0f,0x8d, + 0x3e,0x0e,0x81,0x40,0x80,0xe0,0x78,0x26,0xc2,0x53,0x03,0xa1,0x6f,0x3b,0xb5,0x6c,0x46,0x74,0xfe,0xb3, + 0x3d,0x16,0x6e,0x2e,0x17,0xd3,0xaf,0x57,0x6b,0x4b,0x90,0x4f,0x04,0xe0,0x67,0x17,0xcc,0x0c,0x0e,0x34, + 0xc2,0x23,0x4d,0x9c,0x61,0xa0,0x71,0x3d,0x8e,0x5d,0xa6,0x3d,0xbb,0xc5,0x58,0x73,0xfc,0x3f,0xea,0x5c, + 0x6f,0x77,0x8f,0x3b,0x87,0xe9,0xc1,0x5a,0xc2,0xba,0xcd,0x88,0x94,0xfa,0xf3,0xa0,0x8b,0x17,0x1c,0x94, + 0xf0,0x22,0x88,0x7f,0xb4,0x70,0xd2,0xf1,0x59,0xf9,0x99,0x38,0xc1,0xb4,0x77,0x60,0x96,0xa3,0xa8,0x50, + 0x13,0x16,0x32,0x13,0x20,0xd9,0xd9,0x1d,0xc1,0x83,0xf9,0x0a,0x2d,0xfa,0x54,0x10,0xd3,0x39,0xf5,0x14, + 0xdb,0x1b,0xbe,0x06,0x41,0xb4,0xdf,0x9e,0x94,0x9e,0x03,0x6f,0x0e,0x45,0xe5,0x29,0x27,0xb1,0xe9,0x69, + 0x3d,0xb9,0x84,0xcd,0x72,0x7a,0x56,0x82,0xf6,0x33,0x3d,0xbb,0x48,0x52,0x9b,0xcf,0xff,0x27,0xb0,0xb5, + 0x3d,0x60,0x5e,0x73,0x9a,0xd3,0x12,0x04,0xdf,0x20,0x3b,0xa1,0x29,0x31,0x5f,0xf2,0xff,0xd5,0xea,0x22, + 0xb9,0x73,0x0c,0x2d,0x8f,0xc1,0x9b,0x97,0x0f,0x5e,0xac,0xd7,0xd9,0xc2,0xc7,0x36,0x00,0xd6,0x2f,0x66, + 0xfd,0x77,0x76,0x86,0xd3,0x0d,0xbf,0xae,0xbd,0xe7,0x0e,0x03,0x3a,0xc8,0x70,0xbb,0x41,0xc2,0x58,0xde, + 0x6c,0xb9,0x64,0xe3,0x50,0x6a,0xd9,0x2a,0x01,0x3b,0x76,0x16,0x06,0xc8,0x18,0xf0,0xd9,0xe8,0x47,0x91, + 0x0b,0x3e,0xbd,0xd9,0xb4,0x1e,0x9b,0x8a,0x10,0xa1,0x84,0xa5,0x53,0x99,0x8c,0x8c,0xc7,0xf1,0x80,0x3c, + 0xae,0xe4,0x52,0x1c,0xf7,0x0d,0x36,0x1c,0xd7,0x12,0xff,0x42,0x84,0x3b,0x98,0x94,0xe3,0x52,0x9d,0x94, + 0xea,0xba,0x54,0x17,0xa5,0xba,0x57,0xaa,0x4f,0xe0,0x45,0xbc,0xb9,0x6c,0x07,0x87,0x5b,0x23,0x4a,0xe6, + 0x6f,0x9b,0x25,0xad,0x80,0x25,0xbe,0x50,0xce,0xa4,0x30,0x9a,0xe7,0x58,0x36,0xfc,0x6e,0x05,0x1b,0xb7, + 0xdd,0x77,0x17,0x86,0x72,0xd8,0xda,0xc3,0x8a,0xec,0xf8,0xb6,0x35,0x9d,0xcf,0xf5,0xcc,0xda,0x36,0x39, + 0x16,0xd5,0xba,0x88,0x15,0x47,0xd4,0x18,0x7c,0x0b,0x21,0x9d,0xe5,0x0b,0x71,0xc0,0xbd,0xb4,0x94,0x90, + 0x21,0x33,0x0c,0x76,0x07,0xe1,0x25,0x22,0x95,0x69,0x23,0x0d,0xb2,0x31,0x9a,0x69,0xda,0xe2,0x60,0x7c, + 0x12,0xe5,0xa9,0x57,0xc8,0xf8,0x2f,0xb3,0xe2,0xd3,0xcb,0x11,0x0f,0x5b,0x4e,0xa5,0x4d,0x96,0x38,0x6b, + 0xe3,0xd0,0x82,0xd7,0xc7,0xca,0x3f,0x86,0x8d,0x5c,0xe7,0x92,0xba,0x87,0x9d,0x6b,0x9f,0x98,0xbd,0x80, + 0x6c,0xbe,0x27,0xfc,0xe7,0x00,0xd9,0xc1,0x57,0xef,0xbb,0x6c,0xe4,0x80,0x1f,0xc4,0x83,0x8e,0x17,0xc4, + 0x80,0x31,0x2f,0x17,0xf1,0x77,0xd8,0x85,0xa5,0x01,0x29,0xca,0x45,0xdb,0x90,0x8b,0x50,0xc2,0x5b,0x07, + 0x4b,0xb9,0x97,0x0f,0x94,0x77,0x6b,0x5c,0x15,0x02,0xdb,0xee,0xd7,0x3d,0x1d,0x27,0xef,0x6d,0x5e,0x43, + 0x18,0x85,0xb0,0xab,0x90,0xd8,0x6d,0x75,0xc3,0xe3,0x75,0x23,0x8b,0xc1,0x57,0xc2,0x46,0xc5,0xa5,0x29, + 0xca,0x37,0x65,0x64,0x1c,0x18,0x17,0xb1,0xf0,0x76,0x76,0x9e,0xe0,0x16,0xb3,0x4a,0x44,0x8a,0xa1,0x01, + 0xe5,0x86,0x91,0x27,0xcb,0xde,0xb6,0x0b,0x0e,0x6e,0xca,0xde,0xb8,0x3c,0x26,0xfa,0x5d,0xad,0x8a,0x01, + 0x83,0x44,0x6f,0xdc,0x22,0xae,0xdc,0xcc,0x5f,0x1f,0x53,0x5b,0x74,0x56,0xbe,0xeb,0xdc,0xd3,0x8a,0x65, + 0xbd,0xeb,0x02,0x7a,0xe3,0x8d,0x33,0xae,0x46,0xb0,0x38,0xce,0x3e,0x11,0x53,0xaf,0x6c,0x48,0x1d,0xd6, + 0x7e,0x70,0xc0,0xe3,0xc0,0x42,0xb1,0x77,0x77,0x5b,0x5f,0x66,0xd3,0x8f,0xc6,0x08,0xe9,0xbc,0x0d,0x7f, + 0xe2,0x63,0xe1,0xc1,0xf8,0x23,0xb4,0xa2,0x1b,0x97,0xd6,0x4c,0xae,0x35,0x0f,0x46,0x29,0x0c,0xad,0x47, + 0xc7,0xda,0x2e,0xd9,0x34,0x25,0x0c,0x4c,0xb7,0xb2,0xa2,0x63,0xc6,0xb5,0x61,0x49,0x56,0x04,0x96,0x5d, + 0xe5,0xa6,0x11,0x9e,0x13,0x44,0x23,0xd3,0xb5,0xf3,0x9e,0x56,0x82,0xd7,0x43,0xb5,0x46,0x47,0xc9,0xa6, + 0x58,0xc6,0xd6,0xd2,0xa6,0xd1,0x27,0x7d,0x5b,0xcb,0x76,0xc3,0xd6,0x72,0x2d,0x4e,0x39,0x95,0x9f,0x2e, + 0xda,0xc7,0x84,0x98,0xaa,0x70,0x9a,0x68,0x3d,0x59,0x40,0x59,0x0d,0xc5,0xa6,0x0b,0x74,0x05,0xa5,0x9f, + 0x2c,0xe0,0x33,0x00,0x9c,0x57,0x28,0x8a,0xd4,0xb1,0xf4,0x86,0x4b,0x36,0x07,0xda,0x07,0x17,0x21,0xaa, + 0xcc,0xfc,0x4b,0x19,0x08,0xf4,0xec,0x85,0x19,0x4e,0x5e,0x99,0x01,0xd9,0xdc,0xab,0xab,0x8a,0x9e,0x26, + 0xa5,0x3c,0xa5,0x30,0x7d,0x77,0xdf,0xb0,0xd4,0x8c,0x32,0xf4,0x69,0xc3,0xae,0x9e,0x5e,0x0e,0x61,0x04, + 0x3f,0x5e,0x00,0x63,0x13,0x36,0x65,0x98,0xba,0x63,0x14,0x67,0xde,0x1d,0x61,0xe4,0x52,0xba,0xf4,0x12, + 0x68,0x19,0x58,0x12,0x87,0x0e,0x2e,0x6c,0x12,0x8f,0xdb,0x5f,0xb3,0xde,0x2c,0xc2,0x68,0x1f,0xf2,0xb4, + 0x3e,0xa0,0x8a,0x25,0x4f,0x4f,0x52,0x98,0x99,0x2b,0xdb,0xc2,0x69,0xdf,0x34,0x5d,0xa4,0x29,0x15,0x01, + 0x33,0x96,0x37,0x68,0x0d,0xea,0x3b,0x83,0x4c,0x64,0xc8,0x45,0xd7,0xbd,0xc7,0x5d,0xd6,0x01,0x67,0x28, + 0xb7,0xaa,0x08,0xed,0x67,0xec,0x49,0x75,0x07,0xf6,0xb1,0xde,0xb0,0xc9,0x32,0x36,0x1e,0xe3,0xd0,0x50, + 0x5e,0xf7,0x61,0x99,0xcd,0x89,0xba,0xd6,0xe8,0x08,0x32,0xf7,0x27,0xb6,0xde,0x85,0xb3,0xf5,0x86,0xc1, + 0x01,0x2a,0xe8,0x78,0xce,0xfd,0xd5,0x6f,0xf7,0x4d,0xc4,0xe0,0x5a,0x3a,0xcc,0xde,0xe1,0x9f,0x10,0x21, + 0x21,0x12,0x13,0xd7,0x48,0x71,0xf8,0x66,0x67,0xe1,0xca,0x93,0x03,0x23,0x52,0x53,0xc8,0xed,0xd1,0x48, + 0xe9,0x8d,0xe9,0x0e,0x3f,0xe0,0xf9,0xfe,0x0d,0x0a,0xea,0xee,0xf5,0x6f,0x74,0x56,0x16,0xf0,0x47,0x20, + 0xba,0x83,0xe0,0xc0,0xad,0x9c,0x71,0x4e,0xa8,0x59,0x19,0x2b,0xf6,0xb2,0x2a,0xb4,0x08,0x44,0xe0,0x8c, + 0x81,0x88,0xad,0x88,0x2c,0x8d,0xc0,0x29,0xe6,0xd2,0x71,0x31,0x78,0xdd,0x80,0x2a,0x4b,0xa8,0xc3,0xb3, + 0xb3,0x0f,0x33,0xe3,0x56,0xd0,0x52,0x60,0x68,0x13,0xe0,0xfd,0x72,0xc0,0x74,0x56,0x10,0x40,0x56,0x1a, + 0x1b,0x5e,0xec,0xa8,0x3c,0x2c,0xe8,0xcc,0x78,0xd1,0x9c,0xdb,0xc3,0x3b,0x3b,0xc6,0x0a,0xb8,0xaf,0xea, + 0x4e,0x6e,0x73,0xc7,0x70,0x4a,0xe7,0x5e,0x98,0x30,0x66,0xb0,0x57,0xf8,0xa4,0x8d,0x93,0x9d,0x92,0x8b, + 0xd3,0x57,0xab,0x05,0x3a,0x18,0x49,0xdb,0x70,0x73,0xec,0x79,0xb9,0xd5,0xec,0xe5,0x66,0xc2,0xf4,0xb1, + 0xce,0xcc,0xd8,0x77,0xd0,0x83,0x09,0xe7,0xda,0xb7,0x29,0xea,0xd8,0xec,0xf7,0x8d,0x85,0x95,0xb9,0xf5, + 0x72,0x28,0xe4,0x2e,0xe2,0x0c,0x5e,0xa4,0x0b,0x1b,0x20,0x4f,0x5a,0x33,0x8d,0xa0,0x3d,0x40,0xd7,0xe4, + 0x73,0x78,0x52,0xe0,0x6f,0xca,0xd4,0xd3,0x31,0x3b,0x19,0x0c,0xca,0xf5,0xba,0xdd,0x75,0x11,0xf6,0x7a, + 0x94,0x6f,0x87,0xd7,0x0d,0x03,0xc9,0xc1,0x0a,0x95,0xea,0x8e,0x13,0x02,0xbe,0xdb,0x75,0x2f,0xc6,0x1d, + 0xeb,0xa3,0xd2,0x96,0x95,0xe8,0x96,0xfc,0x0b,0x83,0x62,0xf7,0x6f,0x84,0x2c,0x36,0xec,0xae,0x09,0x16, + 0x42,0x0b,0x74,0x33,0x7e,0xa7,0x75,0x4f,0xc6,0x95,0x13,0xff,0xe4,0x59,0xcd,0x34,0x0a,0x62,0x51,0x20, + 0x0a,0xe6,0x6a,0xf5,0xd5,0x3f,0x24,0x60,0x76,0x9c,0xef,0x46,0x91,0x04,0x3d,0x82,0xc7,0x28,0x07,0x3e, + 0xa2,0xad,0xf0,0xcd,0xdf,0xb7,0x59,0x7a,0xcd,0x1c,0x5d,0xc4,0x53,0x04,0x17,0xf8,0xf5,0x3d,0x2d,0x86, + 0xb4,0x1c,0xce,0x03,0xb1,0xc0,0xcd,0xf4,0x11,0x2c,0xb2,0xa7,0x98,0x0b,0xd2,0x7b,0x97,0xfd,0xd8,0x06, + 0xb3,0x72,0x47,0xd0,0x0e,0xe6,0xd8,0x3a,0x44,0x73,0x6b,0x4d,0x95,0x40,0x23,0xab,0xc1,0x15,0xab,0x26, + 0x15,0x9d,0xa3,0xc4,0xd2,0x8c,0x6b,0x8e,0xed,0x00,0x5a,0x5a,0x5f,0x6f,0x9d,0xa2,0x0f,0xb4,0x7d,0x2e, + 0xd4,0x85,0x3a,0x87,0x11,0x22,0xd7,0x47,0x07,0x2a,0xf3,0x89,0x85,0x12,0x33,0x96,0xa0,0xf3,0x18,0x08, + 0xef,0x5d,0xa0,0x2a,0x7e,0xd8,0xe6,0x08,0xcb,0x9f,0x01,0xdf,0x6e,0x00,0xd8,0x0d,0x45,0x6b,0xdd,0x8f, + 0x68,0xdb,0x89,0x34,0xc2,0x7c,0x12,0xad,0x39,0xd3,0xfd,0x2c,0xf2,0xb0,0x29,0xb6,0x67,0xdc,0x09,0xc1, + 0x6d,0x58,0xb4,0xb6,0x83,0xc3,0x4c,0x14,0x11,0xb1,0x6e,0x74,0x31,0x45,0x3e,0x1b,0x6d,0xbc,0x45,0xb0, + 0x6f,0x83,0x26,0xed,0xb5,0x98,0x88,0x6f,0xe8,0xa3,0x42,0xce,0x11,0x7d,0xc3,0x78,0x79,0x74,0xd2,0xe9, + 0x10,0xb8,0x57,0x66,0xef,0xca,0x3b,0x38,0xdb,0x7b,0x01,0x99,0x49,0x78,0x5b,0x20,0xa7,0x7f,0x05,0x5d, + 0x78,0x69,0x10,0x03,0x10,0x3c,0xab,0xfe,0x52,0x7d,0x06,0xfd,0x7c,0xb6,0x42,0x2e,0x83,0x1a,0xc3,0x6f, + 0xe9,0xe0,0x23,0xbe,0xfc,0xb1,0xee,0x25,0x4a,0x6c,0x8e,0xec,0x5d,0x3f,0x7d,0x28,0x00,0x37,0xcb,0x6b, + 0xa6,0x41,0x4c,0x2e,0x5a,0x25,0xe6,0x7b,0x8d,0x8d,0x97,0x37,0x8a,0x11,0x75,0xc9,0xbe,0x39,0xf1,0x0c, + 0x0c,0x86,0x45,0x39,0xb4,0x5a,0xe1,0xc2,0xf5,0xb1,0x20,0x2d,0x60,0xa4,0xcd,0xad,0x05,0x43,0x32,0xb4, + 0x9e,0x00,0xcd,0xd5,0x11,0x8a,0xd2,0xea,0x0d,0x39,0xda,0x00,0xfb,0xee,0x04,0x52,0xc0,0x46,0xc4,0x45, + 0x67,0xf7,0xff,0xc3,0xaa,0xcf,0xfb,0x2a,0xbe,0xc6,0xfa,0x26,0xe1,0x74,0x54,0x65,0x36,0xb4,0x9f,0x99, + 0x4d,0xf8,0x13,0x2f,0xde,0xc1,0x50,0x0b,0x62,0x09,0xc0,0xfe,0xba,0x02,0xf1,0x20,0xea,0x85,0x08,0x33, + 0x57,0x63,0x07,0xaf,0x41,0x34,0x17,0x42,0x84,0x17,0xa5,0x55,0xa1,0x88,0xf7,0x43,0x97,0x38,0x73,0x61, + 0xdb,0x88,0xc1,0x53,0xd7,0x65,0x77,0x0c,0xd3,0xbe,0xa9,0x57,0x30,0x0a,0xc7,0x84,0xd5,0x1c,0x79,0xcb, + 0x18,0x23,0xc0,0xb3,0xd5,0xda,0x15,0x04,0x46,0x05,0xce,0x07,0x76,0x74,0x4a,0x9f,0x2b,0x33,0x1c,0x0e, + 0x4a,0xb0,0xd1,0xea,0xe9,0xe9,0x67,0xa7,0x6e,0xbb,0x1f,0x15,0xc4,0x99,0x50,0x7c,0x96,0x2a,0x2d,0x07, + 0xa7,0xfd,0xf6,0x2f,0xcc,0x3b,0xc6,0x65,0x26,0xde,0xcd,0x94,0xb1,0x03,0xcb,0xc2,0x59,0x97,0xce,0xf9, + 0xd0,0x2d,0x9d,0xfb,0x1b,0x3a,0xcb,0xc3,0xa4,0x57,0x10,0xdb,0x25,0xb3,0xb7,0x14,0x8f,0x1b,0x9c,0x40, + 0xf4,0x61,0x5c,0x65,0x39,0xc2,0xb8,0x88,0xeb,0x3f,0x1c,0xff,0xf0,0x04,0x0a,0xc4,0x88,0xc2,0x1b,0xdc, + 0xa5,0x21,0x11,0x90,0xee,0x5a,0x3e,0x68,0x40,0x07,0xf4,0x31,0xb2,0xe5,0x3b,0xbd,0xe6,0x4b,0xb9,0x0f, + 0x9c,0xc7,0xf1,0x04,0x60,0x93,0xb6,0x81,0xad,0xc2,0x79,0xec,0x63,0xe8,0xc1,0xb5,0x3d,0xfb,0x82,0xbf, + 0xb7,0xf1,0xef,0x78,0x63,0xd1,0x36,0xd2,0xd8,0x3b,0xca,0x5a,0x2c,0x6d,0x1a,0x15,0xf0,0x41,0xc4,0x7b, + 0x52,0xd4,0x13,0xca,0x5f,0x1d,0x8e,0xd7,0xb5,0x8a,0x4f,0xfa,0x1b,0xe9,0xb8,0xaf,0xa2,0xe8,0x41,0x04, + 0x6b,0x91,0xef,0xe9,0x39,0x5f,0x7a,0x24,0x7c,0x02,0x35,0xfe,0x6d,0xcb,0xb7,0x87,0x5b,0xc6,0x01,0x9e, + 0x49,0x54,0x26,0x2b,0x26,0xb0,0xff,0x63,0x17,0xbb,0xe3,0x63,0x8e,0x68,0x9f,0x86,0x09,0x52,0x11,0x10, + 0x0e,0x88,0xda,0x0a,0x0a,0x75,0x76,0x63,0x38,0x3e,0xbe,0x5a,0xea,0xe3,0x63,0xeb,0xa8,0x80,0x52,0xbc, + 0x93,0xe8,0xd7,0xe7,0x71,0x86,0x31,0x85,0x0b,0x68,0x49,0x9b,0x28,0xd1,0x7e,0x24,0xd5,0xfb,0xb7,0xf9, + 0x24,0x74,0x8f,0x6b,0xa4,0xd3,0xe2,0xa4,0xb3,0x8c,0x81,0x63,0xc5,0x86,0x94,0xde,0x12,0xcc,0x56,0xb0, + 0x69,0x5e,0x83,0x6b,0x0d,0x4f,0x7a,0xc8,0x9b,0xd9,0xbd,0xcd,0x48,0x3b,0x6e,0x73,0x0d,0xb0,0x86,0xc9, + 0xad,0x18,0x9f,0x74,0xaf,0x74,0x4e,0x86,0xb9,0xc8,0x7d,0x4f,0xb7,0x1b,0x96,0x18,0xb1,0x16,0xda,0x21, + 0x01,0xbd,0xde,0xe4,0xab,0x59,0x6a,0xef,0xd9,0x61,0x18,0x35,0xeb,0x60,0x90,0xfe,0x39,0xc0,0xc5,0x9d, + 0x8b,0xe4,0xbd,0x9a,0xde,0x9a,0xd3,0x70,0xb8,0x4c,0x9f,0x0e,0xed,0x52,0xf0,0xad,0x21,0xc7,0xdc,0x5d, + 0x43,0xdd,0x77,0x7b,0x13,0xcd,0xde,0xde,0x06,0x13,0xbd,0x2f,0x17,0x72,0x19,0xc8,0xb1,0xf2,0x2e,0x25, + 0x20,0x22,0xf3,0xe5,0xdd,0x6d,0xc4,0xb3,0x8f,0xf0,0x08,0x3f,0x30,0xf4,0xe8,0x2e,0xf4,0x18,0xc6,0xf9, + 0x9e,0x77,0x7c,0xbc,0xd7,0x71,0x7c,0x14,0x0f,0x89,0xb5,0x7a,0x4f,0xfc,0xd8,0x71,0x6f,0x8f,0x24,0xea, + 0xb8,0xb3,0xc8,0x36,0x2e,0xeb,0xd0,0xad,0xf3,0xbf,0xd9,0x53,0x91,0x40,0xa3,0xf3,0x95,0x61,0x7d,0x37, + 0x20,0x43,0x09,0xc2,0x60,0x39,0xc9,0x3d,0x2f,0xad,0x2d,0x9d,0x73,0x6c,0xd6,0x15,0x2e,0x81,0x64,0xc6, + 0x12,0xf6,0x5c,0xb8,0x8b,0x4d,0x77,0xd4,0xd6,0xb0,0xde,0xaa,0x5b,0x1a,0x1a,0x76,0xbb,0x67,0x0a,0xe6, + 0x1e,0x1e,0xb5,0x88,0x36,0x60,0x25,0x93,0x6d,0x37,0x06,0x47,0xdb,0x63,0xaf,0x2d,0x05,0x50,0x32,0x05, + 0x50,0x82,0xa5,0x90,0xe2,0x58,0x84,0xcc,0x6e,0x3d,0xc7,0x5a,0x18,0xbb,0xc4,0xf5,0x1d,0x52,0xd6,0x9d, + 0x9d,0x6e,0x18,0x28,0x58,0x9f,0x21,0x24,0xa1,0xea,0x05,0xad,0x84,0xe9,0xb8,0x38,0x98,0x28,0xb7,0x64, + 0x84,0x5e,0x84,0x83,0x7f,0x5a,0xaa,0x8f,0xa5,0x7a,0x56,0xaa,0x57,0x65,0x76,0x68,0x42,0xd5,0x8b,0xc4, + 0x55,0xa2,0x22,0x1e,0xa9,0x17,0x65,0x76,0xfb,0x83,0x75,0x0c,0x4c,0x25,0x7e,0x6a,0x04,0x4f,0xc1,0xbd, + 0x7c,0xce,0x57,0x0a,0xdb,0xfd,0x01,0x4d,0x12,0x13,0x6b,0xe9,0x6d,0x51,0x4e,0xe7,0xcb,0x99,0x4e,0x5f, + 0xd1,0x2e,0xf9,0xe4,0x1e,0x2f,0xf3,0x4f,0xa9,0x6d,0xe3,0x15,0x87,0x61,0x3a,0x5a,0x2b,0x43,0xaf,0xa6, + 0x7d,0xec,0xc1,0x62,0xdb,0xc1,0xc3,0x92,0xb3,0x2f,0x84,0x33,0x76,0x9e,0x8f,0xdd,0x1a,0x9c,0x12,0x8d, + 0x89,0x79,0x57,0x5d,0xf2,0x44,0xe8,0x36,0x23,0x13,0xd6,0xbe,0x2a,0x82,0x38,0xe3,0x98,0xb9,0x79,0xfb, + 0x18,0xa3,0x1f,0x71,0xec,0x17,0xbd,0x45,0x64,0x86,0x17,0x78,0xaa,0x11,0xda,0x67,0xb9,0xf3,0x00,0x54, + 0xbf,0x2f,0xc5,0x58,0x11,0x92,0x85,0x4e,0x2d,0x66,0x66,0xfe,0x52,0x2d,0xdb,0x41,0x2d,0x6b,0x25,0x40, + 0x33,0xdc,0x53,0x03,0xb8,0xd6,0xf4,0x94,0xb6,0x08,0x5b,0x8b,0x7a,0xd9,0x52,0x4f,0xb6,0x1a,0x5e,0xe3, + 0xf1,0x90,0xd5,0x65,0xe6,0x12,0x44,0x33,0x48,0x1b,0xcc,0xc9,0xf4,0x96,0x43,0xca,0x13,0xac,0x6d,0x23, + 0x4e,0x36,0x75,0x0a,0xc1,0x88,0x12,0x76,0xc3,0x26,0x14,0x48,0xef,0x55,0x10,0x1a,0xd4,0x46,0x6d,0x0a, + 0xa6,0xdc,0x58,0x05,0xb0,0x24,0x7e,0x9a,0x19,0x45,0x3c,0x5e,0xe9,0xf0,0x63,0xbd,0x03,0xfb,0x10,0x94, + 0x1c,0xb1,0x2f,0x4a,0xd3,0x68,0x97,0x1f,0xe1,0x4c,0x90,0x72,0xb1,0x31,0x3c,0x55,0x26,0x83,0x3e,0xbf, + 0xc8,0x19,0x70,0xfb,0x3d,0x8e,0x11,0xfc,0xc8,0x46,0xb1,0x9c,0x26,0x49,0x1a,0xb3,0xb7,0x4b,0xeb,0x93, + 0x64,0x59,0x08,0x3a,0x11,0x67,0x53,0x76,0xd3,0x7f,0xb3,0xc1,0xf7,0x73,0xf8,0xc4,0x9b,0x3c,0x91,0xf3, + 0xe7,0x0a,0x31,0xed,0x94,0xb1,0x67,0x90,0xfd,0x9a,0x58,0x21,0x85,0xf7,0x9f,0xcd,0x5c,0xf0,0xd3,0x2d, + 0x5c,0xe1,0x26,0x21,0xda,0xd6,0xeb,0xf5,0xf8,0x29,0xf3,0x5a,0xcf,0x68,0x4b,0x0d,0xb3,0x3c,0x1f,0xd7, + 0x77,0xe9,0x49,0x69,0xa3,0x9a,0xd8,0xf0,0x11,0x7d,0x9f,0xa8,0xa7,0xe5,0x68,0xd9,0x16,0xf3,0xec,0xf6, + 0x3a,0xaf,0xcb,0x34,0x27,0x68,0x66,0x45,0x51,0x7a,0xa5,0xd8,0xb1,0xc1,0x2c,0x6f,0xfa,0x4c,0x2b,0xa9, + 0xe8,0xad,0x78,0xd0,0xea,0xf4,0x93,0x5e,0xe3,0x63,0xc3,0x3f,0x3d,0x45,0x94,0x45,0xcb,0x34,0xd1,0x8b, + 0xc3,0xcf,0xbf,0xf1,0xab,0x84,0xfa,0x86,0x9e,0x78,0x08,0x61,0xcb,0x7d,0x73,0x52,0xdf,0xb0,0x76,0x40, + 0x76,0xec,0xf0,0x3d,0x49,0xfe,0x23,0x7b,0x5f,0xd2,0xd0,0x05,0xd2,0x89,0xba,0x8a,0x63,0x5f,0x54,0xdc, + 0x73,0xb3,0xa7,0x74,0xc6,0xd8,0x14,0xaf,0x08,0x23,0x5c,0x25,0x13,0xd3,0x0c,0xdc,0x7e,0x99,0x59,0x0d, + 0x18,0x01,0xc6,0x7c,0xae,0x67,0x6f,0xe6,0xcb,0xb3,0xa2,0xf4,0x71,0x99,0xfa,0x19,0x1c,0x48,0x52,0xae, + 0x00,0x09,0xee,0xb1,0xf2,0xc0,0x0d,0xac,0x30,0x44,0x80,0xfa,0xa0,0x7b,0xe6,0x96,0x50,0x63,0x8f,0x37, + 0x74,0x43,0xf9,0xc8,0x34,0x3a,0x71,0x4f,0x86,0x3d,0x81,0xb7,0xe8,0xd0,0x85,0x1b,0xac,0xac,0x09,0x2c, + 0xa3,0x4b,0xc0,0x5e,0x68,0x84,0xc4,0x6b,0xc1,0x37,0xc3,0x0c,0x2d,0x18,0x8f,0x34,0x50,0x4c,0x84,0xef, + 0xca,0xd5,0xd0,0x95,0x7b,0xd2,0x8e,0xcc,0xf6,0xcd,0x4e,0x3e,0x18,0x5b,0x85,0x64,0xa7,0x76,0xe3,0x76, + 0x18,0x98,0x8a,0xf1,0x91,0x4c,0x5f,0xb2,0xde,0xed,0x18,0x3b,0x9b,0x1d,0x98,0xf8,0x89,0x65,0x63,0x34, + 0xb1,0x35,0xb4,0xc1,0x96,0xf5,0xb2,0xd7,0xc0,0x14,0xec,0x48,0x05,0x9d,0x63,0xdb,0xd1,0x41,0x12,0x1a, + 0xea,0x5b,0x16,0x78,0x6d,0xa6,0x0d,0xae,0x28,0x41,0x8f,0x84,0x68,0xe8,0x01,0x53,0xe7,0x26,0xc2,0x50, + 0x17,0x03,0xd9,0x0b,0x86,0x98,0xb3,0x5a,0x2c,0x9c,0x9b,0x70,0x62,0x2a,0xd1,0x1b,0x67,0xad,0x2f,0xb3, + 0x21,0xf0,0xdd,0xd4,0x51,0x1b,0xa7,0xbb,0x9e,0x68,0x09,0x52,0xb8,0x50,0x0a,0x62,0x85,0xb0,0xa5,0x48, + 0x84,0xaa,0x0e,0x60,0xf7,0xa5,0x6f,0x9b,0x6d,0xd8,0x52,0xfd,0x66,0xae,0xba,0xcd,0x94,0xe6,0xe2,0x40, + 0x69,0xc2,0x2c,0xa2,0xf5,0x48,0xa0,0x14,0x81,0x99,0x56,0x7e,0xe9,0x1d,0x7b,0xa8,0xc5,0xff,0x3b,0x76, + 0x6f,0xc5,0xc1,0xc9,0x70,0x93,0x7c,0xc2,0x66,0xa9,0xd5,0xc0,0x7e,0x84,0xc8,0xae,0x72,0x93,0x67,0x95, + 0xee,0x7e,0x62,0xab,0xae,0x76,0x1b,0xa1,0xc9,0xbb,0x8a,0xf6,0x8c,0x83,0x70,0x55,0x81,0x5a,0x11,0x42, + 0x64,0xdc,0x4e,0x45,0x08,0x80,0x08,0x17,0xc2,0x03,0x43,0xdd,0xa3,0x03,0xed,0x23,0x2c,0xd3,0x87,0x2f, + 0xfc,0x6a,0x27,0xb1,0x77,0xc2,0x89,0xc4,0xae,0x17,0x72,0x20,0xa6,0x0d,0x01,0x6b,0x59,0x6b,0xd5,0xde, + 0x86,0xc0,0xec,0x22,0x1f,0xeb,0xc5,0xd1,0xc2,0xf1,0xc8,0xdd,0x23,0x65,0x2a,0x1a,0x92,0x3c,0xb3,0xc7, + 0x96,0xdc,0x14,0xd5,0xda,0x9b,0xa2,0x5a,0x4b,0x0d,0x58,0x14,0x58,0x32,0x0a,0xe4,0x49,0x35,0x66,0xb5, + 0x1b,0x39,0x77,0x8b,0xd5,0xde,0x75,0xc5,0x6a,0x45,0xf3,0x8e,0xef,0x75,0x30,0x92,0xb5,0x56,0xff,0xd5, + 0x0f,0x9b,0xa6,0x36,0x11,0x7d,0x3e,0x2f,0x94,0xb3,0xac,0x40,0xf0,0x32,0xf2,0xdf,0x7e,0xae,0x9f,0xca, + 0xdd,0x17,0x94,0xcf,0x45,0x6b,0xea,0x1b,0x64,0x29,0x59,0xfa,0x1a,0x53,0x43,0xfd,0xc2,0xa5,0xd0,0x05, + 0xcc,0x74,0xbf,0x1c,0xfd,0x63,0x74,0xf0,0x65,0xc4,0xe8,0xe1,0x4d,0x99,0xe5,0xb1,0x44,0x1e,0x54,0x12, + 0x8c,0x30,0x51,0xcf,0x39,0x8d,0x5d,0x92,0x15,0x6a,0x22,0x0a,0x37,0x57,0x32,0x79,0xaa,0xd1,0x88,0x14, + 0x0d,0xb2,0xf4,0x0c,0x12,0x34,0x2a,0xfd,0xb6,0x6f,0x63,0xed,0x02,0x8e,0x89,0xdb,0xb3,0x2c,0xe3,0xf3, + 0x92,0x09,0xec,0xe8,0x64,0xd9,0xb6,0x72,0xb5,0x11,0x47,0x3c,0xe4,0xda,0xf8,0xf2,0x10,0x5e,0x6b,0x69, + 0x84,0xbd,0x80,0x28,0x97,0xe8,0x9b,0xe9,0x85,0xcf,0x14,0x1f,0x69,0x93,0x77,0xb9,0x0c,0x3e,0x83,0x40, + 0xb7,0xe2,0x9c,0xb5,0x7a,0xc9,0x9d,0x67,0x8d,0x1f,0xa8,0xcf,0x82,0xc3,0xda,0xa8,0x59,0x9d,0x9f,0x9d, + 0xf1,0x53,0xb3,0xd0,0xf3,0x39,0xd7,0x4c,0x7d,0x7f,0xc4,0x85,0x45,0x3a,0xa2,0xa6,0x34,0x4e,0x1a,0xf0, + 0xcd,0x02,0xe4,0xf4,0x62,0x9e,0x17,0x3c,0x8d,0x7b,0x55,0x39,0x07,0xff,0xfb,0x53,0x5f,0xc4,0x67,0x96, + 0xef,0x77,0xb9,0x41,0x22,0x3a,0xcd,0xe7,0x8d,0x04,0x6f,0x9c,0x98,0xe7,0xb4,0xdf,0x8b,0x48,0xee,0x6a, + 0x7f,0x54,0xca,0x65,0x90,0x11,0x21,0x4c,0x1d,0xad,0xd5,0x77,0xdc,0x09,0x3a,0xaa,0xaa,0xeb,0x53,0x3a, + 0x82,0x1a,0x42,0xb0,0xc4,0x0c,0xb3,0xa3,0x92,0xca,0x97,0x6d,0x75,0x5a,0x4d,0x97,0x0d,0x3f,0x51,0xa7, + 0x6e,0x94,0x99,0x15,0x85,0x1d,0x47,0x14,0x08,0x3b,0xb0,0xd7,0xd5,0xbc,0x21,0xb2,0x84,0x16,0xb0,0x66, + 0xf2,0x84,0x09,0x55,0xf3,0x6b,0xcb,0x9b,0x57,0x9e,0x38,0xfb,0x62,0xe7,0x1f,0xef,0xc4,0xde,0xcd,0x8a, + 0x06,0xfd,0x9c,0x29,0x5d,0xca,0x2f,0x5c,0x31,0xca,0x8a,0xd6,0xb1,0xc0,0x1e,0x53,0xe7,0xc5,0x6c,0x46, + 0x5d,0xc3,0xd9,0xdd,0xea,0xfa,0x92,0xb8,0x2a,0x4a,0x24,0x70,0xac,0x5b,0x55,0x34,0x97,0xf9,0x42,0x15, + 0xad,0xbe,0x64,0xee,0x4e,0xcd,0xab,0x6a,0xa1,0x2e,0xa9,0x89,0x62,0x41,0x93,0x2e,0x8d,0x96,0xd5,0x79, + 0xad,0x4f,0xe9,0x87,0x20,0xa7,0xf8,0x83,0x30,0x68,0xd5,0x9c,0xe7,0x60,0xa3,0x7d,0x0b,0x65,0x75,0x5d, + 0x53,0x3d,0x54,0x43,0xa9,0x16,0x39,0x21,0x4b,0xc2,0x29,0x9f,0x8a,0x96,0x08,0xf4,0x7c,0x86,0x85,0xa0, + 0x87,0xdf,0x97,0x84,0x21,0xe8,0x1c,0x94,0x4b,0xce,0x67,0x4a,0xb8,0x49,0x02,0xcc,0xfc,0x72,0x4e,0x10, + 0xa9,0xdc,0x98,0xe0,0xa5,0xc1,0x4b,0x4e,0xcc,0x54,0xd9,0x70,0xd4,0x27,0xcc,0x38,0x01,0x00,0x65,0x62, + 0x7f,0x22,0x64,0x26,0x5f,0x7b,0xa5,0xae,0x0a,0x8e,0x7b,0x4c,0xcb,0xfc,0x33,0xed,0x8f,0xf3,0xb6,0x5d, + 0xa4,0xf7,0xef,0x5f,0x5f,0x5f,0x8f,0xae,0xbf,0x1a,0x55,0xf5,0xd9,0xfd,0x83,0x6f,0xbe,0xf9,0xe6,0xfe, + 0xa7,0x79,0x51,0x5e,0x44,0xea,0x97,0x21,0x42,0x80,0x16,0x3b,0xbc,0x67,0xe3,0xef,0x00,0x75,0x29,0xcf, + 0xc9,0xe6,0x5a,0x1f,0xf5,0x77,0xe2,0x35,0xfe,0x18,0x24,0x24,0x7e,0xc1,0x8b,0xbb,0x42,0xe3,0x1f,0xca, + 0x85,0xe3,0xc5,0x75,0x5b,0xea,0xf7,0xc1,0x6f,0x84,0xda,0x87,0x57,0x24,0xf3,0xad,0x81,0x85,0xdf,0x0f, + 0x1d,0x18,0xbd,0x15,0x15,0xfa,0x63,0x6c,0xef,0xf4,0x7b,0xb6,0xe9,0xf2,0x09,0xaa,0x0d,0xdf,0x12,0x41, + 0x02,0x29,0x22,0x1d,0x88,0xa3,0xdf,0xe4,0xd0,0x3c,0x41,0x01,0x84,0xdf,0xa3,0xd4,0x3c,0x04,0x96,0x39, + 0xdf,0xf7,0xbc,0x60,0x26,0xed,0x84,0x28,0xd0,0xad,0x68,0xb7,0x4d,0x35,0x94,0x78,0xe1,0x95,0x61,0xdf, + 0x86,0x43,0xb8,0xf3,0x92,0x82,0x8e,0x6d,0xbf,0x62,0xdf,0x82,0x3b,0x84,0xb6,0x6f,0xe8,0x2c,0xf8,0x56, + 0xa4,0xe5,0x50,0xcd,0x71,0x80,0x7f,0x9c,0x10,0x6c,0x21,0xb7,0x9b,0x51,0x2f,0x88,0x57,0xdb,0xcd,0x42, + 0x79,0x2e,0xb4,0x73,0xcf,0xfb,0xad,0x09,0x19,0x10,0x45,0xdd,0x63,0x5f,0xb3,0x9a,0x15,0x07,0x0e,0xfe, + 0x4c,0x75,0xf4,0x5b,0x76,0x2d,0xd0,0x86,0x0c,0xb2,0x34,0x96,0x0e,0x15,0xfd,0x4a,0xdc,0x49,0x73,0x45, + 0x4c,0xd7,0x26,0x60,0x7d,0xb9,0xbf,0xbf,0x7f,0x1f,0x4e,0x9a,0xc4,0xcb,0xb7,0xe7,0x43,0x25,0x08,0xf4, + 0xfe,0x75,0xff,0x25,0x65,0xf2,0xbf,0x97,0x2f,0x08,0x1a,0xfe,0xcd,0x08,0xe3,0xbc,0xbd,0x9c,0xab,0x93, + 0x6a,0x76,0xa3,0x70,0x86,0xaa,0x73,0xda,0x21,0x0a,0x10,0x47,0xec,0x4a,0x4b,0x5c,0x15,0x63,0xf4,0xb6, + 0x68,0xe9,0x7f,0x3e,0x9b,0x01,0x57,0xab,0xbc,0xa6,0x65,0xc6,0x7b,0x43,0xf8,0x92,0xf6,0x76,0x45,0x9b, + 0x98,0xbf,0xc3,0xcf,0x81,0x3a,0xff,0x52,0x9d,0x7f,0xa5,0xce,0xbf,0x56,0xe7,0x7f,0x57,0xe7,0xff,0x50, + 0xe7,0x67,0x75,0xb5,0x5c,0xa8,0x32,0xbf,0xa2,0x2d,0xc5,0xb3,0x44,0xf8,0xe1,0x4a,0xcd,0x08,0x59,0xcc, + 0xd5,0xac,0x55,0xc4,0x38,0xe1,0xba,0x0f,0xa4,0xb3,0xed,0xab,0x56,0x8b,0x62,0xca,0xf7,0x8b,0x9c,0xd7, + 0xaa,0xb8,0x3c,0xa3,0xce,0xd0,0xa0,0x40,0xfa,0xcc,0xd5,0x02,0xc1,0xce,0xd4,0x72,0xae,0x72,0x75,0xa2, + 0xf2,0x93,0x93,0x5a,0x9d,0xcc,0x0a,0xfa,0xab,0x14,0x3d,0x4e,0x09,0x6b,0x10,0x16,0xa3,0x2e,0x81,0xe7, + 0x53,0xb3,0xd3,0x52,0xe9,0x4b,0x55,0xa8,0x8b,0x93,0x19,0x55,0x50,0x5f,0xa8,0xdf,0x55,0xbd,0x50,0x84, + 0x63,0xea,0x76,0xaa,0xea,0xe5,0xc9,0x0d,0x71,0x8b,0x4d,0x7e,0xb9,0x50,0x84,0x72,0x88,0x62,0x6f,0x16, + 0x39,0x1d,0x4b,0x84,0x02,0x09,0x6b,0x37,0xcb,0x13,0xfa,0x5b,0x28,0xf8,0x7d,0xa9,0xa5,0xa2,0xc9,0x57, + 0xd7,0xd4,0x02,0x1f,0x60,0xf9,0x72,0x56,0x54,0x0a,0x58,0x0a,0xc2,0x95,0x0b,0xc5,0x87,0x06,0xb5,0x74, + 0x42,0xd8,0x40,0x2c,0xe3,0x14,0x5f,0x86,0x42,0x78,0x63,0x59,0x13,0x9f,0x3b,0xcd,0xcb,0xab,0x9c,0x5a, + 0xe2,0x2b,0xdf,0x81,0xab,0xe4,0x61,0x06,0xe9,0x73,0xd9,0x28,0x3b,0xf6,0x29,0x0d,0x8f,0xfe,0x64,0xb2, + 0x0c,0xbe,0xe1,0xb5,0x68,0x79,0x6d,0x5a,0x7a,0x38,0xa7,0x16,0x95,0x1c,0x7c,0x3c,0x44,0x18,0x6b,0xd0, + 0x9c,0xe9,0xf9,0x8c,0x78,0x46,0xc6,0xb1,0x4a,0x0e,0xdb,0x79,0x7e,0x42,0xb5,0xcf,0xf5,0x19,0x28,0xc8, + 0x4b,0xe0,0x58,0x1c,0xbb,0x52,0xb5,0x39,0x7f,0xab,0x65,0x8b,0x92,0xf6,0xfc,0xb5,0xe7,0xb1,0x3b,0xa6, + 0x09,0x33,0xe7,0x05,0x0e,0x83,0x22,0x9f,0x57,0x67,0x54,0x49,0xb9,0xe4,0x7f,0xc0,0xcc,0x34,0x35,0x97, + 0x34,0xa1,0x37,0xca,0x9c,0x4b,0x4a,0x8b,0x14,0x4d,0x01,0x0d,0x57,0xd7,0xca,0x06,0x79,0x56,0x27,0xf3, + 0x6a,0x7a,0xf1,0xfb,0xb2,0x02,0x76,0x3f,0xad,0xf9,0x7e,0x17,0x40,0x0b,0x41,0xfe,0x6f,0x42,0x2e,0x5c, + 0x9d,0xa9,0xbc,0x2c,0x2e,0x51,0x76,0x5a,0xd4,0x53,0xa6,0x1d,0x8a,0xc5,0x82,0x00,0x54,0x4d,0x97,0x35, + 0x21,0x5e,0x1c,0x28,0x38,0x91,0x9a,0x29,0x35,0x42,0x59,0x04,0xa0,0x12,0x02,0x9a,0x86,0x5b,0xb6,0x7b, + 0xa7,0xf9,0x14,0x00,0x18,0x78,0x4a,0xab,0x33,0x75,0x36,0xbf,0x59,0x9c,0x13,0xe4,0xe4,0x67,0x1a,0x80, + 0xac,0x79,0xf1,0xe9,0x8b,0xcb,0xbc,0x21,0xa0,0x2e,0x9a,0x86,0xf6,0xd7,0x9e,0x14,0xe2,0x96,0xe8,0x1f, + 0x55,0x48,0xe7,0x44,0x35,0xbf,0x39,0xab,0xe4,0x97,0xbf,0x03,0x01,0xa9,0x9a,0xeb,0x02,0x98,0xbd,0x61, + 0x5f,0x62,0x9e,0x1f,0xfe,0xc7,0x5f,0xb6,0x0c,0x33,0x20,0xc5,0xaf,0x0a,0x7d,0x1d,0xb1,0x6e,0xfe,0xc7, + 0x41,0x14,0xfb,0xef,0x92,0xed,0xff,0x7f,0x2b,0x99,0x2b,0xf2,0x7e,0xb5,0x75,0x28,0x65,0x65,0xd4,0xcd, + 0xae,0xd6,0x69,0x84,0x6d,0xcc,0x38,0x7f,0x22,0x8f,0x69,0xe0,0x21,0xdb,0xd6,0xc3,0xba,0xaa,0x1a,0x73, + 0xca,0x3d,0x94,0x58,0xea,0x7c,0x57,0xd2,0x75,0x55,0xf3,0xa1,0x56,0xd3,0x20,0x34,0xed,0x23,0x8c,0x61, + 0xae,0x96,0xf5,0x3c,0x0a,0x62,0x70,0xd5,0x41,0x3f,0x36,0x03,0xff,0x12,0x06,0x72,0xee,0x91,0xbf,0x2f, + 0x75,0x7d,0xf3,0x8e,0x81,0x85,0xef,0xa8,0x5b,0xad,0xfa,0x9e,0x93,0x36,0xd4,0x37,0x6d,0x72,0xe3,0x42, + 0x57,0xb8,0xfe,0x9e,0x12,0x49,0xf2,0x87,0x8e,0x6f,0x3b,0x45,0x07,0xe3,0x16,0xde,0x51,0xab,0x0b,0x30, + 0x60,0x48,0x3e,0x20,0x69,0x66,0x49,0x67,0x7c,0x99,0x66,0x1b,0x04,0xf0,0x0b,0x2e,0xce,0x0c,0x93,0x47, + 0x96,0x98,0xe0,0x88,0xe5,0xba,0x7d,0x48,0x89,0x05,0x6d,0x2a,0x1d,0x47,0x36,0x27,0x52,0xfe,0x91,0x55, + 0x8d,0x9d,0x3e,0xbc,0x7a,0x97,0x0e,0x12,0x70,0xc3,0x3d,0x7e,0xf5,0x2e,0xfe,0x95,0x2f,0x32,0xc5,0xbd, + 0xd5,0xdd,0xdb,0xdb,0xd2,0x01,0x38,0xb9,0xeb,0xa2,0x37,0xed,0xbe,0x36,0x3e,0xe8,0x7f,0xe1,0x63,0x53, + 0x92,0xbf,0x95,0xe0,0x79,0x8f,0x58,0x17,0x93,0xf6,0xc9,0x6c,0x96,0x71,0xb8,0x6c,0x76,0x05,0x87,0x28, + 0x13,0x1e,0x0c,0x6c,0xd4,0xd6,0x1b,0xaf,0x1e,0x05,0x79,0x08,0xb9,0xad,0xf2,0x05,0xcc,0xda,0x87,0xcb, + 0x06,0x79,0x5c,0x56,0xe4,0xdc,0x77,0x8d,0xdf,0xca,0xc1,0x91,0xbf,0x56,0x90,0x79,0xbd,0x23,0x82,0x8a, + 0xc0,0x71,0xb8,0x70,0x50,0x60,0x8d,0xd8,0x24,0x88,0xfe,0x30,0x5c,0xd2,0x64,0xae,0xe1,0x4c,0x81,0x59, + 0x7d,0x2c,0xa8,0x6b,0xa3,0xbb,0xad,0xcf,0xcb,0x5a,0x2e,0xfd,0x0e,0x27,0x20,0xc7,0x74,0xdd,0x28,0xdc, + 0x01,0x9f,0x56,0x45,0x11,0x87,0xae,0x85,0x20,0x45,0x56,0xa0,0xf7,0x41,0x5e,0xf3,0x0c,0x18,0x46,0xb3, + 0x5f,0x19,0x83,0x28,0xd1,0xb5,0x1e,0x5e,0xe9,0x05,0x61,0xb1,0x10,0x21,0x05,0x98,0x85,0x3f,0xbf,0x23, + 0xa4,0xa0,0x2d,0xb4,0x0e,0x90,0x4b,0x5e,0x77,0x6d,0x82,0x6c,0x9d,0x36,0xc8,0x80,0xbf,0x23,0xda,0x46, + 0x4f,0x2c,0x86,0x82,0x12,0x42,0xe5,0xa6,0xe7,0x97,0x1c,0x01,0x95,0x6d,0x4c,0xc7,0xed,0xa4,0x17,0xd8, + 0x02,0xf2,0x8b,0xc9,0x31,0xff,0x72,0xbc,0x1a,0x70,0xf8,0x7c,0x3b,0x12,0x27,0xd9,0x58,0x15,0xa9,0xef, + 0xc2,0xf3,0xf2,0x59,0x55,0x0f,0xd6,0x52,0xb1,0x23,0x97,0x11,0xea,0x15,0xc9,0x83,0xfd,0x9d,0x1d,0x4e, + 0x32,0x57,0x1d,0x49,0xdd,0x87,0xc5,0x91,0x3c,0x14,0x12,0x7b,0xa6,0x11,0xe3,0x0f,0x04,0xbf,0x21,0x6e, + 0x75,0xad,0x10,0xbd,0x7d,0x5a,0x67,0x87,0xc6,0xe6,0x26,0xf2,0x2e,0xf0,0x91,0x75,0x02,0x8e,0xa0,0xe1, + 0x01,0x14,0x47,0x4e,0xe5,0x16,0x05,0xf7,0x82,0x2d,0xeb,0x9e,0x3b,0x36,0xe2,0x6f,0x1b,0x89,0x38,0x2b, + 0xda,0xc4,0x46,0xdc,0xc4,0xe4,0x08,0x62,0x43,0x70,0x62,0x10,0x29,0xe2,0x8d,0x09,0xe1,0xc8,0xb7,0xd9, + 0xc6,0xb2,0xb0,0x1b,0x51,0xbf,0x10,0xc1,0x5f,0xb8,0x52,0xf6,0x8c,0x80,0x49,0xbf,0x8b,0x49,0x60,0xed, + 0xd4,0xde,0xc4,0x76,0x0d,0x25,0xe2,0x4c,0xe6,0x23,0x40,0x95,0x1c,0xc0,0x9f,0x56,0x0f,0xc9,0xed,0xe7, + 0xca,0xb8,0x60,0xf6,0x58,0x9e,0xd5,0xaa,0xac,0x39,0xba,0x47,0x89,0x60,0xb3,0x6c,0x00,0xc5,0x01,0x3f, + 0x30,0x9a,0x87,0xe0,0x1a,0xdf,0xcc,0xe9,0x78,0x3d,0xaf,0xe6,0x33,0xbe,0x65,0xb3,0x1b,0xf3,0x82,0xc7, + 0x19,0x26,0x48,0xfc,0xb7,0x30,0xc5,0x04,0x83,0x0b,0xbc,0x13,0xe6,0x75,0xef,0x0a,0x1d,0xb9,0x6f,0xdd, + 0xdc,0x6f,0x48,0x94,0x78,0x56,0x8e,0x77,0x77,0x6b,0x22,0xc5,0x0b,0xbe,0xe1,0xc8,0xdc,0x86,0x45,0xa0, + 0x51,0x1c,0x65,0x3e,0xac,0x4a,0x25,0x01,0x87,0xfc,0x36,0x9b,0xb9,0x7b,0xbe,0x67,0xf5,0xe0,0xf6,0x98, + 0xa1,0xe1,0xa6,0xee,0x6c,0x8f,0x99,0x59,0x62,0x1b,0x63,0xd3,0x5f,0x3c,0x6e,0xcf,0x93,0x20,0x29,0x5c, + 0x32,0x37,0x00,0x6d,0xad,0xf8,0x69,0x32,0x9a,0x1a,0x76,0x1d,0xf2,0xd0,0x64,0xe7,0x75,0xbc,0x51,0x85, + 0x6a,0x7d,0xb4,0xd4,0x29,0x4a,0x94,0x1b,0x25,0x4a,0x5f,0x62,0x09,0xa3,0xee,0xb9,0xbd,0xab,0x84,0xd5, + 0x65,0xd3,0xa4,0xce,0x1a,0x09,0xd8,0x38,0xe5,0x7b,0xbf,0x27,0xb8,0x2e,0x61,0x3e,0xfb,0x99,0x9d,0xee, + 0x8c,0x2d,0x93,0xe2,0xa4,0x87,0xf5,0x19,0x25,0xe4,0xf5,0x99,0xba,0xaa,0x61,0xd7,0x6b,0x61,0x1e,0x1e, + 0x0a,0x54,0x62,0x06,0xc4,0xc2,0x3f,0x7e,0xbb,0x8b,0xad,0xc0,0x0c,0x51,0x09,0xed,0xb5,0x62,0x69,0x2c, + 0x5f,0x43,0x40,0x36,0xf4,0xad,0x9c,0x1a,0xf8,0x66,0xe9,0xbe,0x01,0x72,0x59,0x5a,0x9e,0x93,0x67,0xe9, + 0x74,0xd8,0xc3,0x6f,0x7f,0xac,0x1f,0x2c,0x9d,0x03,0x1d,0xf1,0x5f,0xd4,0xd6,0x12,0xc3,0x8a,0x6c,0xb5, + 0xd2,0xe4,0x7a,0x5c,0x4d,0x0a,0x84,0x91,0x32,0xe9,0x91,0x3a,0x4d,0xd2,0x53,0xb9,0xb5,0x76,0xee,0x54, + 0xac,0x52,0x62,0x51,0x35,0x2d,0x2b,0xd7,0x3b,0xa1,0x2a,0xbb,0x6d,0xce,0x7b,0x6d,0xce,0xb9,0xcd,0xfe, + 0x34,0x98,0xb6,0x13,0xb5,0x2d,0xd7,0x6f,0x6a,0x09,0xc7,0x36,0x65,0xab,0x29,0xfa,0x8a,0xd7,0x21,0x5a, + 0x96,0x32,0x35,0x44,0x12,0xc2,0x6a,0x53,0x0c,0xd1,0xd1,0xd4,0x62,0x90,0x42,0xf3,0xb0,0x77,0x1e,0xa2, + 0x66,0x03,0x45,0x43,0x1f,0x84,0x9e,0xe7,0x5b,0xd5,0x58,0x2e,0xc4,0x91,0x10,0x20,0x41,0xe0,0x0f,0x44, + 0xb3,0x06,0xf2,0x44,0xb0,0xbe,0x82,0xf8,0x01,0x8e,0xfb,0x57,0xfb,0xb7,0x6c,0x01,0x17,0xa6,0xea,0x90, + 0xa3,0x60,0x15,0xa3,0x3a,0xbf,0x7e,0xc5,0x52,0xd4,0x82,0xa5,0xa9,0xbb,0xd1,0x28,0xda,0xed,0xd8,0x62, + 0x87,0xf5,0xc0,0xcc,0xee,0x63,0x55,0x94,0xec,0x38,0x9f,0x60,0x17,0x62,0xe9,0x11,0x3a,0x29,0xd0,0xec, + 0x7b,0x61,0x2b,0x0c,0xcc,0xb9,0xd6,0x60,0xb3,0x7a,0x7f,0xc1,0x7a,0x28,0x20,0x1e,0x03,0x14,0xff,0x18, + 0x87,0xba,0x8a,0xed,0xf4,0x2a,0xda,0x1f,0x38,0x76,0xb4,0x8d,0x09,0x24,0x1a,0xfa,0x9a,0x35,0xf4,0xb5, + 0xdf,0x2a,0x41,0xe3,0x5b,0xd1,0xae,0x36,0x43,0x82,0xc8,0xc0,0x06,0x2f,0x31,0x01,0xca,0x2e,0xe9,0x40, + 0x20,0x86,0xe2,0xb4,0x0e,0xd0,0xfc,0x59,0xe7,0x88,0x1c,0x56,0xc2,0x6e,0x9b,0x88,0x3c,0x2c,0x1c,0x29, + 0xbb,0x4e,0x58,0x45,0x79,0xae,0xeb,0x82,0x89,0x00,0x9a,0xab,0x17,0x16,0x95,0x58,0xa4,0xfb,0x22,0x0e, + 0x29,0xcf,0x24,0x09,0xf1,0x5e,0xcb,0xa3,0xcb,0x33,0xdd,0x89,0x39,0xcd,0x31,0x01,0xdb,0x5e,0x92,0x20, + 0x48,0x40,0xe0,0x1b,0x5c,0x2d,0x20,0xa1,0xc8,0xf8,0xca,0xce,0xb0,0xa4,0x88,0xe4,0x39,0xba,0x7d,0x52, + 0x10,0xa2,0x40,0x00,0x47,0xfa,0x27,0xd7,0x14,0xde,0xd4,0xb1,0xf8,0x41,0xb9,0xba,0x70,0xeb,0xf2,0xb7, + 0xb8,0xab,0x50,0xf0,0x06,0x07,0x77,0xe2,0x27,0x53,0xd8,0x06,0x9b,0x34,0xf9,0x44,0x7e,0x24,0x2f,0x62, + 0xd4,0x8a,0x96,0x7f,0x29,0x69,0x21,0x26,0x95,0x21,0x04,0x1d,0x0d,0x44,0xc4,0xee,0xcf,0xa5,0xfa,0x03, + 0x99,0x49,0xfa,0x12,0x3f,0xb0,0x42,0xeb,0x15,0x42,0x66,0xe8,0xbc,0xe8,0xce,0x04,0x76,0x3c,0x33,0x74, + 0x9a,0x23,0x01,0xa2,0xbd,0x88,0x48,0x0b,0x5b,0x26,0xfd,0x8e,0x65,0x9e,0xbf,0x43,0x93,0x30,0xd1,0x1b, + 0x35,0x8b,0x8b,0x5a,0x5f,0x04,0xca,0xc2,0xd4,0x9d,0x9d,0xe8,0xe9,0xcb,0x47,0x4f,0x9f,0x98,0x9b,0xdd, + 0xa4,0x95,0x89,0x88,0x4e,0x53,0x5c,0x18,0xd1,0xa3,0xe5,0x4a,0x19,0x41,0xcb,0xb2,0xb4,0x6e,0xd6,0x4f, + 0xa5,0xc9,0xff,0xe5,0x73,0x9d,0x71,0x73,0x81,0xe8,0x60,0xdd,0x3a,0x24,0x8b,0xc7,0xe3,0x46,0x16,0xdc, + 0x0d,0x54,0xc3,0xa0,0xc0,0x98,0xc1,0x72,0xe5,0x49,0xbb,0x31,0x52,0x6d,0xae,0xdb,0xc3,0xed,0xd9,0x04, + 0x9a,0xdf,0xd3,0xf0,0xde,0x3f,0xfd,0xf5,0xfd,0xc3,0xb7,0x4f,0x1f,0xba,0x58,0x61,0xaf,0xd8,0x21,0x31, + 0x5a,0xf8,0x53,0xdc,0x08,0x8e,0x59,0xb4,0x25,0x4e,0x4b,0xc7,0xc7,0x85,0x5e,0x9c,0x6f,0x5c,0xa5,0xc6, + 0xfa,0xc5,0xa6,0xad,0x16,0xee,0x46,0x6b,0x68,0x0a,0xf2,0xb3,0x5c,0x50,0xaa,0xb2,0x1d,0x62,0x6b,0x50, + 0xeb,0x1f,0x62,0x69,0x18,0xd8,0xe7,0x8d,0x5b,0xc4,0x58,0xb8,0x2b,0x5b,0xd9,0x86,0xa1,0x8e,0x6f,0xbb, + 0xf3,0xab,0xf9,0x72,0x62,0xf4,0xe7,0xc4,0x1f,0xf0,0x67,0xee,0x80,0x3f,0xab,0x83,0x23,0xfc,0xba,0xb7, + 0x7d,0xb1,0xa3,0x6a,0xb3,0x29,0x98,0x98,0xb5,0xb7,0x23,0x6e,0xc7,0x2f,0x08,0x21,0x86,0xf2,0x49,0x6c, + 0xce,0xda,0x05,0x24,0x8b,0x71,0xc1,0x2b,0x36,0x70,0xb1,0x51,0xa8,0xb0,0x81,0xca,0x12,0x8b,0xb2,0x06, + 0x45,0x8b,0xa6,0x31,0xb8,0xa7,0x42,0xb5,0x3a,0x7e,0x13,0xd7,0x9b,0xa4,0x74,0x32,0x06,0xae,0x1e,0xc8, + 0xb0,0x06,0x0b,0xf0,0xcd,0x11,0x4e,0x36,0x6e,0xb3,0x1f,0x68,0x03,0x49,0xa5,0xad,0xb9,0x3e,0x77,0x2c, + 0x34,0x9d,0x8b,0x63,0xc5,0xf1,0xec,0xc2,0xf2,0xb0,0x91,0x65,0xf2,0xcf,0xdf,0x53,0x91,0x75,0xe4,0xb2, + 0x12,0x14,0x8e,0x9f,0xde,0xf0,0x90,0x39,0x1e,0xdd,0xf7,0x30,0x17,0xf9,0xb6,0xe4,0xd8,0xac,0x91,0xe8, + 0x73,0x70,0xb3,0x00,0xcc,0x80,0xd9,0x58,0x95,0x05,0xdf,0x05,0xc6,0xcc,0x95,0xe8,0x66,0x2c,0x01,0xec, + 0xe2,0x2a,0xfb,0x1e,0x96,0x25,0xf4,0x69,0x8e,0xe0,0xbb,0x15,0xfb,0x6c,0x1f,0x2f,0x6a,0x7d,0xc5,0x05, + 0xd9,0x56,0xb1,0xcb,0x63,0x8b,0x6e,0x08,0x0e,0x76,0x61,0xc1,0xcc,0x46,0x91,0xbc,0xa8,0xd5,0xbd,0x5a, + 0x7d,0xaa,0xd5,0xe3,0x5a,0xbd,0xab,0xd5,0xc3,0x5a,0xbd,0xf7,0x50,0x70,0xed,0xa0,0xe0,0xba,0x5e,0xab, + 0xd7,0x75,0x76,0xff,0xf0,0xc3,0x75,0x32,0xda,0xfd,0xb0,0x77,0x7c,0xef,0xc3,0xd1,0xd1,0x7d,0x0f,0x18, + 0x4f,0xea,0x0d,0x5f,0x4b,0x1a,0xc9,0xf6,0x01,0x2e,0x2f,0x38,0x50,0x1c,0xf5,0x66,0x89,0x7f,0x73,0xc4, + 0xf6,0xa1,0xbf,0x19,0xfd,0x21,0xfc,0xa8,0xbf,0xb9,0xb6,0x73,0x23,0x12,0x4c,0x71,0x70,0x57,0x8b,0x11, + 0xcc,0x1b,0x0f,0x8e,0x1a,0x38,0xf1,0xab,0x6f,0x04,0xbb,0x7c,0xf3,0xa5,0xec,0xa9,0x18,0xcd,0xf8,0xdb, + 0xe8,0x9a,0xe4,0xab,0xaf,0x7b,0x05,0x9a,0x4e,0x81,0x69,0xf2,0xcd,0x3f,0x7a,0x05,0xa6,0x9d,0x02,0xcb, + 0xe4,0xeb,0x7f,0xf6,0x0a,0x2c,0x3b,0x05,0x0e,0xbe,0xfc,0x5a,0xb4,0x60,0xf4,0xe0,0x74,0x07,0xb6,0x8b, + 0xbb,0x07,0xc9,0x70,0xc6,0x1e,0x32,0xe6,0xab,0xd5,0xe9,0x6a,0x35,0x4b,0x6e,0x45,0xc8,0x05,0x33,0xa7, + 0x69,0x4e,0xb5,0x7e,0xf5,0x75,0xda,0xc0,0x28,0x93,0x2d,0x85,0xc7,0x92,0xf4,0x4d,0x9a,0xf7,0x92,0xbe, + 0xf9,0x47,0x3a,0xed,0x25,0x7d,0xbd,0x9f,0xce,0x76,0x77,0x3b,0x29,0x07,0xe9,0x6c,0x6f,0xaf,0xf3,0xd9, + 0x41,0x7a,0xda,0x2d,0xf3,0xcd,0x57,0xe9,0x69,0xb7,0xcc,0xc1,0x97,0x5f,0xa5,0xf3,0x6e,0xa1,0x83,0x2f, + 0xff,0x9e,0xce,0xf7,0xf6,0x40,0xf6,0xc9,0x84,0xf8,0xcd,0x77,0x9e,0xd1,0x70,0xd4,0x95,0xe1,0x33,0xc7, + 0xfb,0x0f,0x32,0xa2,0x08,0xe5,0x12,0xcf,0xf8,0xca,0x2b,0x53,0xce,0x69,0x57,0x9c,0xef,0xed,0x25,0xe3, + 0xab,0x9d,0x9d,0xd7,0xb5,0x58,0xb7,0x5f,0xc1,0x29,0x68,0x99,0x31,0xe7,0xcc,0x13,0xea,0x82,0xc3,0x17, + 0x93,0x78,0x91,0xe1,0x6e,0xc1,0x22,0xd0,0xbb,0x10,0xf5,0x43,0x90,0x7c,0x19,0xd3,0x3e,0xb9,0x8c,0x03, + 0x7a,0x8e,0x5e,0x6e,0xe3,0x0a,0x77,0xa9,0x04,0x46,0xf4,0xf6,0xb3,0x45,0xf0,0x99,0xe2,0x3a,0x31,0x88, + 0xa0,0xa1,0xc1,0x16,0x52,0x08,0xae,0x16,0x3b,0x3b,0xf4,0xa8,0xec,0x15,0xf0,0x00,0xcc,0xaa,0x03,0x98, + 0xd9,0x53,0x50,0xe8,0x15,0x07,0xe4,0xdf,0xbc,0xf9,0xec,0x69,0x0f,0x3f,0xba,0x43,0x35,0x8e,0xc4,0x37, + 0xe2,0xc1,0xbe,0x21,0x2e,0xbf,0x38,0xa6,0xd4,0x2f,0x88,0x66,0xfa,0x22,0x4a,0x62,0x98,0x64,0x47,0x49, + 0x64,0x1d,0x09,0x5d,0xdf,0xc4,0x04,0xcd,0xbc,0x96,0xbb,0xce,0xa2,0xc6,0x7c,0x5c,0xbb,0x8f,0xa9,0x7a, + 0xbe,0x1e,0x79,0x42,0xcc,0xf5,0x6e,0x91,0x16,0xc1,0xe9,0xf6,0xd1,0x74,0x09,0x86,0x1e,0xd5,0x5c,0x0b, + 0x8f,0x18,0x47,0x87,0x3f,0x2f,0xf5,0x96,0xb9,0x33,0xa9,0x3e,0x4a,0x41,0xc9,0x05,0x1f,0x3d,0xeb,0x71, + 0xe3,0x74,0xda,0x5e,0xe6,0x8b,0x78,0x48,0xd0,0x83,0xab,0x2d,0x93,0x91,0xc8,0x88,0x07,0x0b,0xac,0x93, + 0xf4,0xf0,0xc8,0x57,0xfd,0xaa,0x43,0x93,0xc6,0x26,0x72,0x34,0xdb,0xc4,0x88,0xfb,0x9f,0x5f,0xcf,0xef, + 0xea,0x58,0x8c,0x2c,0x5b,0x25,0x0a,0xf1,0x52,0xcd,0x6e,0x28,0xa1,0x98,0xa6,0x05,0x6e,0x4a,0x64,0x2b, + 0x4e,0xa8,0x7b,0xb3,0x30,0x82,0xe0,0x8b,0x6e,0x03,0x05,0xf5,0xdd,0x7c,0x65,0xa8,0xc6,0xb8,0x9b,0x80, + 0x06,0x53,0xed,0xc2,0x77,0x9b,0xa7,0xff,0xe7,0x6e,0xbc,0x71,0xdd,0x60,0xa1,0x1c,0xea,0x7c,0x99,0x2f, + 0xd8,0x79,0x5d,0x99,0x77,0x1c,0xd4,0x77,0x35,0xc1,0x15,0xfb,0xda,0x9e,0x3b,0xa2,0xcd,0xea,0xc2,0x26, + 0xd1,0xf1,0x22,0x06,0xd1,0xfd,0x85,0x32,0x26,0xfd,0xc9,0x17,0xa9,0xde,0x0d,0xa2,0x1d,0xbc,0x0d,0x26, + 0x42,0xee,0x3e,0x34,0x31,0xfb,0xc6,0x38,0x13,0x11,0xdb,0x7a,0x54,0x17,0x67,0xe7,0xed,0xa4,0x99,0xb4, + 0x59,0xc4,0x75,0x45,0x90,0x9a,0x7c,0x31,0x25,0x78,0xbb,0xf8,0x62,0xf2,0x85,0x21,0xf8,0xa1,0x85,0xf8, + 0x22,0x35,0xf9,0x50,0x8e,0x23,0xdb,0xd0,0x78,0x74,0x0a,0x46,0x41,0xb1,0x48,0x99,0x3b,0x81,0x6b,0xa9, + 0x3a,0x49,0x89,0x2b,0x2a,0x66,0x33,0x08,0x7f,0xe3,0xbb,0x9a,0xb9,0xac,0x96,0x8d,0x5e,0x2e,0x3e,0xd7, + 0x84,0x29,0x82,0xab,0x42,0x6a,0x7b,0x57,0x3d,0xe5,0xb8,0xc6,0x4c,0x12,0x1d,0x18,0x34,0x51,0xd1,0x36, + 0x18,0xc4,0x86,0xcb,0x56,0x7c,0xc9,0x91,0x2f,0x88,0x77,0x53,0xea,0x7f,0xfb,0x52,0x10,0xdb,0xcb,0xad, + 0x23,0xae,0xa0,0x49,0x32,0x65,0x77,0x6c,0xd9,0x69,0x56,0x9b,0xe8,0xd6,0x13,0x5f,0x56,0x12,0x94,0x8d, + 0x7b,0xcd,0x44,0x98,0x80,0x52,0x98,0xc0,0x01,0xe1,0x53,0x2d,0x91,0xe3,0x25,0x5b,0xbb,0x0c,0x13,0x2c, + 0x1c,0x70,0x60,0x00,0xc0,0x60,0x25,0x07,0x6a,0xcd,0x9a,0x0e,0xbf,0x71,0x2d,0xf7,0xfe,0x10,0xc7,0xef, + 0x99,0xcd,0xda,0x06,0xaa,0x9e,0x82,0x9f,0xeb,0x07,0x04,0x9f,0x14,0x93,0xb9,0xb3,0xbf,0x5b,0x26,0xa9, + 0x91,0x36,0xd0,0x13,0x8a,0x67,0x73,0xca,0x3f,0x5c,0xaa,0xf9,0x51,0x7a,0x38,0x57,0xcb,0xa3,0x74,0x39, + 0x08,0xcc,0x2f,0xbb,0x72,0xa4,0xec,0x11,0xde,0x23,0x8e,0x26,0xb9,0x5a,0xc9,0xcb,0xd5,0x1e,0x9b,0xf5, + 0x20,0xc9,0x46,0x96,0xda,0xa6,0xae,0xd9,0xe0,0xe5,0x10,0x7c,0x31,0x61,0xc8,0x61,0x66,0xac,0x3b,0xf0, + 0x23,0xc1,0x33,0xfe,0x83,0xc2,0x7e,0xf0,0xfd,0xbb,0xd7,0xaf,0x46,0xa2,0x18,0x29,0x4e,0x71,0xd7,0x57, + 0xc0,0xc1,0x3c,0xea,0xf6,0xc6,0x7f,0x0d,0xbe,0x3c,0xdc,0x6a,0xa1,0x73,0x62,0xb0,0xe7,0x88,0x26,0xdb, + 0x57,0x88,0x9f,0x60,0xa3,0x3b,0x3e,0xc8,0xc7,0x95,0x50,0x1d,0x05,0xee,0x1e,0x67,0xcb,0x27,0x3e,0xf0, + 0x0a,0xeb,0xc7,0x53,0x6d,0xfa,0xf1,0xb8,0xfb,0xaf,0x3b,0x4d,0x86,0xf7,0x49,0xfe,0x54,0xf7,0x2f,0x0c, + 0x0c,0x3b,0x21,0x5a,0xf1,0xb2,0xaf,0x15,0x37,0x34,0x6f,0xc9,0xc1,0xca,0x11,0x9d,0x98,0x8f,0xcd,0x4a, + 0x78,0x7c,0xef,0xa6,0x64,0xfa,0x55,0xc3,0xcf,0xa7,0x0a,0xe6,0xe6,0xbb,0x2e,0xe6,0x66,0x7d,0x3a,0xcf, + 0x0d,0x53,0xa5,0x75,0x2b,0x71,0xd6,0xf1,0x64,0x53,0xec,0x9d,0x1e,0x44,0xcd,0x97,0x33,0xce,0x36,0xf6, + 0x70,0xe5,0x2c,0xe9,0xdc,0x6f,0xf9,0x73,0x0f,0x08,0x24,0xb4,0x6c,0x81,0x1d,0x21,0xda,0xaf,0x2a,0x8b, + 0xee,0xdd,0xbb,0x8a,0xc6,0x35,0xc3,0x2e,0x53,0xab,0x51,0x6c,0x74,0x5a,0x94,0xb1,0x45,0x73,0xba,0xf5, + 0x85,0xac,0xe9,0x17,0x13,0xa4,0xd8,0x93,0x17,0xcf,0x70,0x26,0x2e,0xe4,0x9b,0xe3,0x92,0x30,0x41,0x05, + 0x4c,0x60,0x2f,0x29,0xf8,0x05,0x2c,0x1a,0x6e,0x3c,0x97,0xeb,0x11,0x32,0xb3,0x49,0x2c,0x36,0x89,0x94, + 0xf7,0x0b,0x4c,0x7b,0x90,0x03,0xe1,0x9f,0x71,0x2c,0xf4,0x66,0xa4,0x5b,0x31,0x5a,0xdc,0xba,0x8d,0x76, + 0xf3,0xdd,0x68,0x1d,0x85,0x41,0x7d,0x3b,0x27,0x78,0x78,0x9e,0x21,0xca,0x0e,0x38,0x59,0xd9,0x96,0x17, + 0xb5,0x33,0x68,0x50,0x01,0xf3,0x7c,0x18,0x25,0x0f,0xf6,0x21,0xc0,0x27,0x22,0x9b,0x98,0x0d,0x93,0x7a, + 0x44,0xa9,0x17,0xa0,0x00,0x65,0x55,0x88,0xef,0x8e,0x1f,0xf3,0xf7,0x61,0x21,0x88,0x7b,0x26,0xb7,0x34, + 0x90,0xd4,0x13,0x27,0x8f,0x89,0xe4,0xbd,0xd0,0x37,0xe9,0x17,0x40,0xf1,0x26,0xf5,0x31,0x68,0x4c,0x78, + 0x70,0xad,0x53,0x29,0xcd,0x25,0xd8,0x3d,0x82,0xc9,0xe9,0x7b,0xb8,0x6a,0x8d,0xaa,0x7f,0x57,0x67,0x0f, + 0x41,0xc1,0x6c,0xff,0x5e,0x13,0xe5,0x94,0xfc,0x50,0xc7,0x9f,0xea,0xec,0x0f,0x7a,0x4e,0x26,0xdf,0xe2, + 0x39,0x49,0xbf,0x81,0x80,0xe5,0x53,0xbd,0xb3,0xf3,0x3d,0xbf,0x1b,0xe2,0xa2,0xd7,0x85,0x77,0xa6,0x0b, + 0x36,0xe5,0x1d,0x48,0xb4,0x87,0xb5,0x89,0x90,0xdf,0x31,0x68,0x21,0x60,0x86,0xfd,0x3a,0xd1,0x32,0x19, + 0x0c,0x48,0x22,0x78,0xa6,0xc6,0x30,0x5c,0xa7,0x1a,0x77,0x23,0xb5,0x85,0x47,0x2a,0x20,0x8f,0xbc,0x6e, + 0x41,0xbc,0xe4,0xda,0x1b,0xd6,0xdd,0xab,0x43,0xca,0x79,0x77,0x97,0x66,0x21,0x08,0x9d,0x1c,0x14,0xbc, + 0xa8,0x1f,0x64,0x8f,0x83,0x0d,0xf7,0x43,0xa8,0xdd,0x65,0x3e,0x40,0xaf,0x56,0xcc,0x30,0x04,0x60,0xfc, + 0xbd,0x67,0x55,0x32,0x09,0xf4,0x4b,0x33,0xf5,0xb8,0xb6,0xf3,0x04,0x06,0x9f,0x4a,0xc8,0x4c,0x25,0xdf, + 0xd6,0x96,0xf3,0x07,0xe5,0xcf,0x13,0x06,0x63,0xbf,0xdd,0x5d,0xf5,0xcd,0x57,0xe6,0x79,0x6f,0x8f,0xef, + 0x73,0x21,0x98,0x79,0xc8,0xf5,0x08,0x96,0x08,0xcc,0x66,0xea,0x1e,0xdf,0x2a,0x2d,0xb1,0x97,0x0a,0x37, + 0x02,0x66,0x62,0x9c,0x8c,0xc5,0xe2,0xa4,0x56,0xff,0xae,0x69,0x07,0x1c,0xd7,0x91,0x27,0x76,0x7f,0xab, + 0x6d,0xb8,0x72,0x41,0x65,0xbf,0xd6,0xff,0x57,0xf1,0xa2,0xdb,0x82,0xe5,0x1c,0x12,0x9c,0x07,0x35,0xfd, + 0x58,0x67,0xbf,0xe0,0xbe,0xa2,0xf8,0xdf,0x3b,0x3b,0xe2,0x85,0x12,0xff,0xfb,0xf0,0xe0,0x28,0x79,0x90, + 0xfd,0xfd,0xab,0x80,0xd6,0xd6,0x85,0xa7,0x64,0x68,0x12,0x7e,0x74,0xfd,0xc8,0x4b,0x70,0xb7,0xe3,0x36, + 0xab,0x46,0xc7,0xb0,0xfe,0x5a,0x6c,0xc6,0x05,0xb5,0xb1,0xb8,0x84,0x1d,0x5a,0xd6,0x35,0xc7,0x98,0x41, + 0x0a,0x87,0x52,0xb2,0x51,0x7e,0xff,0x3b,0x2b,0x3a,0xef,0x0f,0xb2,0x7d,0x09,0xb5,0x84,0x92,0x72,0x75, + 0xd2,0x13,0xa3,0x6b,0xa5,0x11,0x5a,0xb5,0xab,0x93,0xd3,0x9a,0x11,0xb3,0xb9,0x75,0xe0,0xcc,0xba,0xfe, + 0xb5,0xde,0x14,0x8a,0x60,0x28,0x3f,0x4e,0x6e,0x0d,0xc5,0x90,0x96,0xca,0x9c,0xf4,0x69,0xbd,0x4e,0x43, + 0xa9,0x50,0x1b,0x8c,0x3a,0x26,0x6a,0xe9,0x57,0x62,0x14,0x86,0x64,0x30,0xf0,0x62,0xb7,0xa3,0x5f,0xad, + 0xba,0x92,0xa5,0xb2,0x70,0xea,0xa6,0x6d,0x27,0xab,0xac,0x70,0x4d,0xc2,0xb6,0x93,0x54,0x56,0x65,0xe2, + 0xf9,0x05,0x93,0x22,0xd7,0x82,0x67,0x3a,0x7c,0x1f,0xff,0x5a,0x1b,0x81,0x4b,0x6f,0x8a,0xdf,0x70,0x54, + 0x76,0x7b,0x35,0x4b,0x9b,0xfd,0x30,0x89,0x68,0xf7,0x94,0x67,0xb0,0x63,0x34,0xb7,0xd3,0x70,0xcc,0x24, + 0x7f,0x1d,0x2f,0x97,0xe7,0x40,0x4a,0xb8,0x1c,0x24,0x51,0xee,0x1c,0xa3,0xe4,0xb5,0x54,0x37,0x65,0xf8, + 0x1c,0x49,0x45,0xbd,0x4f,0xa7,0xca,0x66,0x6c,0x7c,0x3e,0x95,0x10,0xc3,0x35,0xdf,0x42,0xa1,0x74,0xa1, + 0xda,0x42,0xfd,0x56,0x87,0x8a,0x18,0x1a,0x85,0x31,0xac,0x60,0x10,0xac,0x0b,0x55,0x14,0x4e,0xde,0x50, + 0x16,0x56,0xde,0x50,0x16,0x81,0xd4,0xa9,0x1a,0x9a,0x46,0x7b,0x29,0x76,0x67,0x32,0x5d,0x62,0x20,0xe9, + 0x37,0xb3,0x56,0x65,0xbd,0x0f,0x79,0x92,0xf3,0xac,0xdd,0x4c,0x15,0xb1,0xbf,0x88,0x7f,0xf3,0x40,0xfc, + 0xbb,0x51,0x58,0x24,0xc0,0x39,0xc7,0xd4,0xe7,0xf2,0xb8,0xdd,0xb3,0xe0,0xe8,0x1e,0x51,0xe2,0x6b,0xc9, + 0xb9,0xeb,0x75,0x96,0x43,0x5d,0x1b,0x05,0x0a,0x6f,0x36,0x83,0xe5,0x4b,0x84,0x08,0x92,0xbe,0x7b,0xff, + 0xf2,0x05,0x27,0x98,0x5b,0x09,0xac,0x77,0xa5,0x84,0x38,0xeb,0x86,0x1f,0xc7,0xcd,0x13,0x50,0x29,0xb2, + 0x0a,0x17,0x73,0x5b,0x94,0x4b,0x3d,0x06,0x76,0x32,0x71,0x9d,0xa0,0xce,0x6f,0xbc,0xb2,0xa6,0x63,0x40, + 0x10,0x16,0x81,0x97,0x1c,0x98,0xe3,0x8e,0xc9,0x6f,0xf4,0xe6,0xed,0xeb,0x6f,0xdf,0x3e,0x7d,0xf7,0x8e, + 0x79,0x4a,0x2b,0xd9,0xb4,0x41,0xc0,0x20,0xa1,0x3b,0x96,0xb8,0x93,0x75,0x32,0x89,0xa2,0x54,0xfc,0xd8, + 0x40,0xdf,0xcd,0xb3,0x46,0x6d,0xe3,0x9a,0x38,0x13,0xb9,0x0a,0x86,0x3f,0xd4,0xfd,0xe8,0xf5,0x9b,0xf7, + 0xcf,0x5f,0xbf,0x42,0xed,0x4b,0x5b,0xdb,0x6a,0x35,0x64,0x84,0xb2,0xbd,0xcf,0xae,0x84,0x81,0x35,0x8a, + 0xb8,0xea,0x18,0xdb,0x0e,0x28,0x6b,0x7d,0xe8,0x80,0x80,0x12,0xd3,0x4e,0xa6,0xde,0xe2,0x76,0x1a,0xdc, + 0x7a,0x33,0x1c,0xa6,0x43,0x54,0x76,0xec,0x8a,0x71,0xf5,0xd2,0x52,0xd0,0xa2,0x9f,0xc7,0x0e,0xc2,0x32, + 0x19,0x6a,0xc6,0x22,0x97,0xb7,0x04,0xd0,0x54,0xef,0xdb,0x58,0xc8,0x54,0xa1,0x6d,0x3c,0x1d,0x26,0xe4, + 0x00,0x9b,0x10,0xc8,0xa3,0xeb,0x95,0xef,0x8c,0xdc,0x57,0x2a,0x53,0xd6,0x24,0x2e,0x5e,0x7d,0x6f,0xd9, + 0x77,0x76,0x7e,0x2b,0x63,0x3f,0xdb,0x22,0x0a,0x75,0x45,0x12,0x60,0x21,0xa2,0xb5,0x8a,0x3f,0xb1,0xff, + 0x49,0xfc,0x27,0x59,0xf4,0xa0,0xb9,0x3a,0xfb,0xef,0x68,0xb7,0xde,0x8d,0x1e,0xdc,0xe7,0x47,0x67,0x22, + 0x49,0x7c,0x4c,0x41,0x4c,0x7b,0xdd,0xb4,0x0c,0x13,0xe3,0xce,0x4b,0xd2,0x87,0x17,0x9f,0x67,0xc4,0xa2, + 0xd3,0x5e,0xf1,0xd0,0xe6,0x24,0xcc,0xf3,0x83,0x05,0xe3,0xc2,0xd0,0x8a,0xf5,0xe5,0x2d,0x52,0x07,0x2b, + 0x29,0xc8,0x80,0xe6,0x8a,0x7f,0x73,0x8f,0x11,0x2a,0x87,0x11,0x2a,0xe2,0xb5,0x1b,0x22,0xe3,0x3b,0x32, + 0x06,0x59,0x56,0x46,0x96,0xf7,0xd3,0x78,0xb4,0x9b,0xdc,0xf7,0xd7,0xda,0x48,0x44,0xbd,0xfb,0xe3,0x78, + 0xb2,0x7d,0xf8,0x9f,0xf8,0xe8,0x6f,0x1f,0x92,0xe4,0xfe,0xd9,0x70,0xd4,0x23,0x0e,0x2a,0xe9,0xdc,0x49, + 0xe4,0x43,0x02,0x67,0xef,0x6a,0x0f,0x2a,0xfa,0xb0,0xa5,0xcd,0x62,0x16,0x19,0xfe,0x1e,0x07,0xf6,0x85, + 0x6d,0x50,0xca,0x75,0x70,0x62,0x4e,0x0b,0x5f,0xdf,0xb2,0x60,0x82,0x1b,0x57,0x72,0x04,0x7d,0x63,0x01, + 0x31,0x1b,0xba,0x4c,0xae,0xe2,0xce,0xbb,0x82,0xd3,0x43,0x10,0xd3,0xbe,0xf8,0x9c,0xd1,0xed,0xe5,0x1d, + 0x16,0xac,0x4d,0x21,0x37,0x6b,0x30,0x5f,0x58,0xa8,0xd3,0x22,0xbb,0xff,0x9f,0xbd,0xbd,0xfb,0x6a,0x46, + 0x0f,0x1f,0x9a,0xbf,0x6d,0x17,0xb4,0x39,0xeb,0x36,0x2f,0xdb,0x7b,0xf7,0xd5,0xa2,0x18,0x0a,0x07,0x72, + 0x5a,0xb8,0xb0,0x82,0xa6,0xfb,0x90,0x2b,0xfb,0x7b,0xa8,0xdd,0x3d,0xf4,0x54,0x76,0x66,0xca,0x96,0xc3, + 0x65,0xaf,0xf9,0x7a,0x18,0x02,0x29,0x56,0x8c,0x50,0x69,0xd8,0xed,0xa8,0xc8,0xf5,0x21,0x32,0xaa,0x15, + 0xe1,0x2a,0xae,0x0a,0xb3,0xd3,0xfa,0x77,0x0b,0xfd,0xd9,0x6d,0x08,0xa6,0x69,0xdc,0xe4,0xc4,0x97,0xab, + 0x70,0xef,0xc2,0xc4,0xf5,0x5a,0x9d,0x17,0xd9,0x61,0xf4,0x8b,0x3e,0xb9,0x28,0xda,0x48,0x45,0x2f,0xab, + 0x3f,0x60,0x79,0xd6,0x44,0x47,0xea,0xaa,0x0f,0x59,0x50,0x76,0x17,0xd9,0xfc,0xcf,0xb6,0x9b,0x54,0xaf, + 0x22,0x91,0x7f,0x01,0x5f,0x12,0x55,0x77,0x02,0xe7,0x38,0x42,0x4a,0xc0,0xfd,0x73,0xc7,0xd1,0xfa,0x28, + 0x8b,0xad,0x17,0x91,0xee,0x27,0xa3,0xb6,0xfa,0x09,0xb4,0xc3,0xe3,0xbc,0x21,0x22,0xce,0x51,0xf9,0x07, + 0xf6,0x6a,0xab,0xf3,0x22,0xd4,0x3c,0x9b,0x49,0x3a,0xc7,0x0e,0xda,0xe5,0x58,0x78,0x75,0xb7,0x95,0x7a, + 0x1d,0x02,0xe2,0x65,0xd1,0x95,0x47,0xb2,0x72,0xa3,0xee,0xe9,0x69,0xca,0x10,0xfc,0x18,0xef,0x94,0xee, + 0x42,0x19,0xaf,0xc5,0x79,0xd7,0x49,0xc1,0xb3,0xbd,0x0c,0x8e,0x45,0xfd,0x72,0xc8,0xe2,0x46,0xdf,0x10, + 0x96,0x59,0x5c,0x82,0x5b,0x21,0xe6,0xc5,0x1f,0x7a,0xc6,0x69,0xab,0x95,0xf9,0x9e,0xcf,0xdf,0x65,0x46, + 0x27,0xee,0x54,0xcd,0xb1,0x4d,0xcc,0xe1,0x2a,0x95,0xf3,0x39,0x6c,0x52,0x7a,0x35,0x64,0xb8,0xc6,0xd0, + 0x9c,0xca,0x13,0x3e,0x81,0xe7,0x49,0x2a,0xd1,0xe5,0xfa,0x21,0x49,0xc2,0xb8,0x53,0xcc,0xab,0xea,0xf1, + 0x40,0x78,0xc9,0x71,0x12,0x17,0xd9,0x50,0xd8,0x49,0xa7,0x24,0x2a,0xac,0xd2,0xa7,0xcc,0x68,0x6f,0x17, + 0x46,0xe5,0x83,0xd8,0xa5,0xb5,0x09,0x90,0x83,0x2d,0xdf,0x4f,0x76,0x51,0x35,0xa9,0xd9,0x0a,0x17,0xcf, + 0x99,0x48,0x84,0x55,0xa7,0xb6,0xaa,0xff,0x99,0x5b,0x49,0x6c,0x04,0xd4,0xc1,0x51,0x39,0x97,0xc9,0x8b, + 0xf8,0xf4,0xb0,0x82,0x36,0x78,0x51,0xc4,0x39,0x4d,0xba,0xa5,0x31,0x38,0xfb,0x14,0x63,0xe0,0x7c,0x82, + 0xc1,0x25,0xfd,0xba,0x62,0xc2,0x9b,0x15,0x38,0xa9,0x2d,0xe1,0x7f,0xe6,0x11,0xec,0xa5,0x43,0xb0,0x97, + 0x84,0x60,0x6f,0x18,0x3f,0xec,0x06,0x8a,0x9d,0x63,0x66,0x1a,0x04,0x45,0x9a,0x6b,0x5d,0x0c,0xd6,0x4b, + 0x84,0x4a,0x81,0x36,0x09,0xc4,0x70,0xd2,0x89,0x74,0x0a,0x6b,0xfb,0x89,0x45,0xa5,0x37,0x77,0x04,0x9b, + 0xb3,0x32,0x0a,0x5f,0x09,0x47,0x96,0x87,0x6f,0x77,0xba,0x99,0xe8,0x91,0x44,0x09,0x63,0xfe,0x5d,0x6a, + 0xfc,0x6c,0x40,0xd3,0x05,0x97,0x9e,0x28,0x81,0x41,0xc2,0xb8,0x0c,0xbb,0xb3,0xcb,0x46,0x0a,0x6c,0xdf, + 0xd6,0x0e,0xab,0xc8,0xe2,0x72,0x57,0x27,0x1e,0xa7,0xbb,0x29,0x38,0xf9,0xff,0x77,0x0a,0xe4,0xe8,0xdd, + 0x9c,0x05,0x97,0xae,0xc2,0x54,0xc1,0x0d,0x3e,0xbe,0xfd,0xe6,0x7c,0xc8,0xbc,0x79,0x19,0xd4,0x5f,0x9a, + 0x3b,0xda,0x2f,0x6e,0xce,0xa0,0xdf,0xf1,0x53,0x59,0x27,0x12,0x4a,0xd3,0xa2,0xf3,0x5a,0x61,0xa0,0x1c, + 0x23,0xca,0x4e,0xcb,0xe4,0x8e,0x09,0x2e,0x93,0xf4,0xee,0x6e,0x06,0x13,0x7e,0x5d,0xf8,0x43,0x19,0x74, + 0x92,0x18,0xf9,0x07,0xf6,0xd1,0x49,0xd7,0x70,0x3a,0x38,0xf8,0x2e,0xf8,0xe0,0x33,0x7a,0x29,0xc1,0xb5, + 0xb7,0x6b,0x77,0xcd,0x10,0x1b,0xfb,0x4d,0xa1,0x26,0xbd,0xa2,0x25,0x45,0x59,0xe3,0xde,0x18,0x81,0x72, + 0x52,0x57,0xbc,0xce,0xaa,0x35,0x9a,0xd1,0xfe,0x91,0x60,0xc5,0x23,0x44,0xba,0xd7,0xe2,0x92,0x43,0xd3, + 0xb3,0xc7,0xaf,0x91,0xe2,0x9f,0xf7,0x55,0x2f,0x7d,0xaf,0xad,0x4c,0xd6,0x43,0xa6,0x63,0xfb,0xd9,0x42, + 0xdd,0x46,0x6a,0xae,0xf3,0x30,0x93,0x5f,0x4d,0x6a,0x58,0x27,0x27,0x70,0x9d,0xfc,0xd4,0xaf,0x53,0xb2, + 0x4d,0x9d,0x1c,0x27,0xac,0xc8,0x70,0x57,0xcf,0xf7,0xea,0x53,0x91,0x45,0x5e,0xa7,0x1c,0xa9,0xc7,0xf4, + 0x2e,0x7e,0x00,0xfc,0xfa,0xae,0x97,0xfd,0xb0,0xf3,0xae,0x61,0x71,0xf5,0xbe,0xfb,0xc5,0xeb,0xf0,0x15, + 0x05,0xc6,0xf7,0x20,0xbc,0x73,0x3a,0x36,0x73,0x29,0x10,0x3c,0xdc,0x82,0x6a,0x02,0x0b,0x71,0x57,0xe0, + 0x9a,0x4f,0xe3,0x5e,0xb1,0x18,0x3d,0x92,0x73,0xfa,0x7d,0xaf,0x5f,0xd7,0xbd,0xd4,0xa7,0x25,0x02,0xb7, + 0x6c,0x36,0x1c,0xf6,0xee,0xee,0x76,0xbb,0xa5,0xe2,0xf7,0xae,0xd9,0x87,0xdd,0xb1,0x5e,0x77,0x13,0xb9, + 0x51,0x11,0x4e,0x3e,0xa1,0x39,0x9e,0x98,0x5a,0xe1,0xe3,0x46,0x84,0x90,0x2b,0xf6,0x0c,0x2e,0x18,0x9f, + 0xcd,0x1c,0x41,0x68,0x1e,0x4b,0x89,0x24,0xf5,0xd7,0xf1,0x0e,0xda,0x54,0xc7,0xa1,0x27,0xc3,0x53,0xde, + 0x24,0x4f,0x8a,0xf0,0xe2,0xde,0x27,0x05,0xa3,0x8d,0x40,0xf9,0x57,0x74,0xd9,0x9f,0x4d,0xc3,0x02,0x71, + 0x46,0xdf,0x48,0x66,0x97,0xff,0x32,0x08,0x45,0x0d,0xbc,0x19,0xbb,0x1b,0xd7,0xd5,0xb1,0x54,0x1c,0xaa, + 0x0c,0x0b,0x6b,0x57,0xbd,0x59,0xdb,0xce,0xce,0xf1,0x60,0x2b,0x30,0x70,0x3c,0x29,0x7a,0x77,0xa3,0xbd, + 0x2a,0xac,0x39,0x8e,0xd0,0x3a,0x6f,0x04,0xfd,0xb2,0xa0,0x99,0xcd,0x6e,0x61,0x17,0x6d,0x6e,0x20,0x26, + 0xc2,0xa3,0x66,0xb5,0x21,0xc7,0xff,0x61,0x82,0xc6,0x51,0x42,0xf6,0xea,0xa5,0x26,0xc3,0xa5,0x8c,0x9f, + 0x8a,0xc9,0xc3,0x22,0x7d,0x5d,0x10,0x49,0xb2,0xaf,0x96,0x9d,0x08,0x4d,0x83,0x62,0x9d,0x46,0xc1,0xc1, + 0x03,0xa1,0x99,0xe6,0x3d,0x2b,0x1d,0x27,0xd0,0x6a,0x77,0x76,0x76,0x77,0xa7,0xff,0x8d,0xbb,0xb0,0x97, + 0x58,0x9a,0xe1,0xcb,0x94,0xa7,0x0f,0x4c,0xbe,0xaa,0x76,0x0f,0x38,0xea,0x5a,0x5f,0x22,0x85,0xa6,0x18, + 0xe3,0xbc,0xc0,0xe9,0x7b,0x12,0xf3,0x34,0xc1,0xb9,0x68,0x95,0xcf,0xe7,0x49,0xac,0x56,0xf7,0x92,0xe0, + 0x40,0x7e,0x13,0x2e,0x29,0xa1,0x69,0x03,0x5d,0xd4,0xa5,0xc7,0xc6,0xfd,0x9d,0x89,0xa4,0x98,0x67,0x2c, + 0xae,0x0f,0xdf,0x15,0xbb,0xd1,0x13,0x5c,0x02,0x1d,0x1d,0x31,0x76,0x77,0x91,0xc6,0xe1,0x0f,0x57,0xb9, + 0x12,0xcb,0x5a,0xa0,0x7d,0xa0,0x50,0x9e,0x3d,0x2f,0xa0,0xf3,0x4e,0x88,0xbc,0xa3,0xe2,0xef,0x3f,0x57, + 0xe1,0xd4,0x95,0xf8,0x4c,0x85,0x4b,0x54,0xc8,0xb1,0x48,0x8c,0x39,0x88,0xf3,0xc8,0x93,0x85,0xda,0x7f, + 0x20,0xc4,0xd1,0xa7,0x82,0x0a,0xe4,0x54,0xa0,0x72,0x3e,0x95,0x28,0xf1,0x18,0x25,0x96,0x5c,0xe2,0x31, + 0x4a,0x2c,0xa9,0xc4,0xd4,0x95,0x38,0x45,0xf4,0xcf,0xfd,0x07,0xf1,0x3c,0x83,0xdb,0x1d,0xe2,0x95,0x10, + 0x15,0xb4,0xa4,0x43,0x69,0xf9,0x20,0x9f,0x7c,0x2a,0xd2,0xc7,0x05,0xcb,0xca,0x93,0x49,0x29,0x8d,0xd9, + 0xba,0x53,0x5b,0x45,0xba,0xaf,0x6e,0x01,0x67,0x69,0xa9,0x0c,0x94,0xa5,0x73,0xe5,0x60,0x2c,0x3d,0x55, + 0xe7,0x79,0xf3,0xde,0x2e,0x51,0x2a,0xb5,0x10,0x59,0x6c,0x78,0x20,0x99,0x4e,0xcb,0xfb,0x44,0x47,0xe1, + 0xb9,0x46,0xa3,0x46,0xac,0x2c,0x1b,0xae,0x5a,0x9a,0xf3,0x86,0x2f,0x7c,0xac,0x1a,0x39,0x9b,0x27,0x03, + 0xed,0x28,0x42,0xa9,0x6e,0x5f,0x1b,0x1f,0x28,0x7c,0xde,0x02,0x05,0xec,0xd2,0x7f,0xbe,0xd3,0x65,0x1d, + 0xee,0xd0,0xb7,0x21,0x2b,0x79,0xa0,0xbf,0xfa,0x9b,0x91,0xf9,0x7a,0x59,0xff,0xde,0x41,0xe2,0xce,0x75, + 0xe2,0x8c,0x14,0xeb,0x24,0x02,0x2d,0xa0,0xe9,0xbf,0x51,0xff,0x80,0xe2,0x67,0xb3,0xab,0x63,0x39,0xbe, + 0x4e,0x12,0x09,0xc3,0x66,0xde,0x46,0x53,0xd0,0xd0,0x08,0x23,0xc2,0x17,0xca,0xb8,0xf4,0x38,0xb1,0x71, + 0x79,0xe9,0x9c,0x37,0x26,0xd9,0x1e,0x33,0x24,0xe6,0xaa,0x69,0x04,0x21,0xd8,0xe6,0xca,0xe5,0xbc,0x3d, + 0x31,0x41,0x9e,0xc0,0x4f,0xcc,0xf4,0x7b,0x04,0xaf,0xb8,0xf5,0x0c,0x61,0x8b,0x53,0x9d,0x4d,0xad,0x18, + 0x43,0x30,0x3b,0xe2,0x8e,0x69,0x36,0xf0,0x0c,0xcf,0x67,0x82,0x52,0x93,0x10,0x9c,0xa0,0x04,0x95,0x1c, + 0x11,0x51,0xe7,0xe6,0xab,0xb9,0x7b,0xb7,0x9f,0x9d,0xba,0x94,0xf0,0x3b,0xe8,0xca,0x24,0xe6,0xda,0x53, + 0x54,0x89,0xfb,0xcc,0xa5,0x72,0x75,0x8e,0xf2,0xa7,0xf4,0x24,0x19,0x57,0xae,0x57,0x76,0x62,0xd4,0xa5, + 0xfb,0xf6,0x21,0xd7,0xab,0xce,0x5c,0x13,0xea,0xc6,0x7e,0x6d,0xb2,0x8e,0x7d,0xff,0xdc,0xf7,0x27,0xe0, + 0xe9,0xcc,0x4e,0x53,0xd7,0xd9,0xf7,0x44,0xd4,0xd0,0x3f,0x13,0x87,0x60,0x7c,0xb1,0xb3,0x73,0xe1,0x98, + 0x8e,0xeb,0xec,0xc2,0x59,0xf0,0x5e,0x64,0x17,0x61,0xe8,0xf9,0x7b,0xd9,0xf6,0x75,0x10,0x8c,0x7c,0xb5, + 0xda,0xc6,0xa5,0xba,0x6f,0xab,0x0a,0x9c,0x10,0x81,0x31,0x2f,0xc9,0xbd,0xd5,0xea,0x0c,0x5b,0x99,0xd6, + 0xe0,0x4c,0x40,0xe0,0x53,0x76,0x8f,0x30,0xdb,0x64,0x99,0xe6,0xea,0x31,0x1e,0x4f,0x27,0xa7,0xe9,0x54, + 0xbd,0xc3,0xe3,0x7c,0x32,0x4f,0x1b,0xf5,0x10,0x8f,0x97,0xc4,0x41,0xab,0xf7,0x78,0x1a,0x08,0x08,0x71, + 0x36,0x39,0x4b,0x17,0xea,0x35,0x72,0x6f,0x56,0xab,0x73,0xf5,0x04,0x4f,0xc7,0xab,0xd5,0x95,0x7a,0x9a, + 0xbd,0x8d,0x9f,0xc7,0x27,0xc9,0xe4,0x44,0xe6,0x2c,0x3d,0x49,0xd4,0xc7,0x8c,0x49,0xb8,0x82,0x49,0x9a, + 0x67,0xd9,0x77,0x45,0xfc,0x3e,0x51,0xaf,0x32,0x0f,0x23,0xd9,0xcb,0x10,0xf3,0x7e,0x24,0x70,0xa4,0x53, + 0xa9,0x56,0xef,0x12,0xc5,0xbf,0x8f,0x89,0xc6,0x7b,0xe5,0xc1,0x72,0x12,0x53,0x09,0xce,0xf8,0x94,0xa8, + 0x27,0x3b,0x3b,0x4f,0xd8,0x8a,0xf6,0xf5,0xce,0xce,0x6b,0x58,0x9a,0x05,0xb5,0xb2,0x6e,0x0d,0xc7,0xa1, + 0xf0,0xa7,0xe7,0xd5,0xf5,0x6a,0xd5,0xb3,0x90,0xf7,0xad,0x8a,0xe1,0x7b,0x1d,0xb8,0x55,0xc1,0x8c,0x8d, + 0x43,0xd6,0x41,0x46,0xc6,0x12,0x51,0xff,0x7c,0xc8,0x1a,0xb1,0xa3,0x31,0x47,0xa4,0x12,0x17,0x97,0x52, + 0x5c,0x5c,0x98,0xa1,0x76,0x9b,0xa6,0xff,0x1e,0x27,0xea,0xfd,0xce,0xce,0x7b,0xea,0xfb,0x2b,0x18,0xcd, + 0x3f,0xdc,0xd9,0xc1,0xbd,0xb1,0x0a,0x43,0xfe,0x68,0x46,0xf4,0x51,0x86,0xac,0x9e,0x76,0x48,0x04,0x3b, + 0xde,0x60,0x1e,0x88,0x04,0xf8,0x68,0xa7,0x89,0x9e,0x7f,0x2a,0xe2,0xa7,0xc9,0x24,0x38,0xcc,0x5e,0xa9, + 0xa7,0x49,0xfa,0x0a,0x25,0x2a,0x6a,0x2d,0x01,0x52,0x51,0xc1,0x5c,0x80,0x25,0xc2,0x05,0xb5,0x41,0x8f, + 0xa8,0xf1,0xd5,0x8a,0xea,0x7a,0x15,0x77,0xae,0x81,0x78,0xd4,0xa3,0x46,0x04,0x7f,0x94,0xe1,0x16,0x0f, + 0xde,0xba,0xf8,0xc3,0xa7,0x5b,0xfc,0x81,0xa3,0xcf,0x2a,0x03,0x7a,0xf8,0xe3,0x05,0x1b,0x42,0xcb,0x85, + 0x36,0x0e,0x5d,0xd8,0x33,0x46,0xae,0x8b,0xda,0xe6,0x86,0x2d,0xe2,0xb2,0x1a,0xad,0xda,0xe0,0x91,0xda, + 0xe2,0x11,0x84,0x33,0xb6,0xa4,0x39,0x4b,0x37,0x42,0x9a,0x9c,0xc5,0x1b,0x7d,0x4a,0x9c,0xf0,0x88,0xbd, + 0x14,0xf0,0x05,0xb2,0x08,0x8f,0x98,0x42,0x84,0x3f,0x6a,0xd9,0xd1,0x92,0x31,0x73,0xb5,0xbb,0xfd,0xbc, + 0xc8,0x70,0x39,0x21,0x9d,0xad,0x52,0xe2,0x1c,0xaf,0x76,0x7b,0x5f,0x85,0xd0,0x7f,0x09,0xe8,0x27,0x0a, + 0xe5,0x8c,0xb7,0xc9,0x79,0x32,0x39,0x97,0xaa,0xd2,0xf3,0x84,0x10,0x87,0x1f,0x59,0x77,0x47,0x94,0x01, + 0x54,0xf2,0xcd,0xcc,0xee,0x2d,0x00,0xce,0x78,0x30,0xfd,0x90,0x3d,0xb2,0x8e,0x4c,0x08,0xc4,0x2b,0xd9, + 0x5a,0xa5,0x6a,0x78,0x6b,0x95,0x74,0x96,0x53,0xbb,0xe1,0xd6,0xba,0xe2,0xad,0x55,0xe2,0xae,0x62,0x22, + 0xac,0x67,0x90,0xdf,0xa5,0x31,0x2e,0xa8,0x3a,0x45,0xac,0xee,0x92,0x41,0xc8,0x75,0xd2,0x6c,0xb0,0xc5, + 0x64,0x11,0x1f,0x27,0xe9,0x71,0x1c,0x1a,0x67,0x53,0xb7,0x6f,0x3a,0xb0,0xba,0xad,0x43,0xd8,0xeb,0x0e, + 0x29,0x1e,0xee,0x3c,0xc7,0xdd,0x1d,0x48,0x67,0x93,0x1c,0x3b,0x32,0x22,0x98,0x96,0xa0,0xd4,0x4a,0x19, + 0xde,0x47,0xd3,0xfb,0x8f,0x32,0xbc,0xcd,0x6d,0xc4,0xb9,0x37,0xfd,0x6d,0xc4,0x53,0x72,0x29,0xdb,0xe8, + 0xac,0xb3,0x8d,0x6e,0xd4,0x19,0x6f,0x23,0x5c,0x90,0x72,0x63,0xb6,0xd1,0x9c,0x50,0x25,0x25,0xdc,0x50, + 0x93,0xab,0x15,0x7d,0x75,0xd3,0x95,0x3c,0xfc,0x14,0x9c,0xd8,0x91,0xa8,0x25,0x3a,0x01,0xb0,0xb6,0x8b, + 0xe6,0x55,0xfe,0xaa,0x73,0x8b,0xcd,0x77,0x96,0x77,0x7e,0xe1,0x23,0x74,0x05,0x37,0x3b,0x9c,0x96,0x8d, + 0x25,0x2c,0xde,0xc0,0x96,0x9e,0x8a,0x77,0xe5,0xac,0x08,0x70,0x72,0xb8,0x7f,0x94,0xb6,0x49,0x7a,0xf0, + 0x00,0x44,0xbb,0x15,0x30,0xb8,0xb8,0x16,0x81,0x41,0x88,0xd9,0xcf,0xdb,0x81,0xcb,0xaf,0xac,0xca,0x4b, + 0x08,0x71,0x99,0xa6,0xfd,0xa5,0xd8,0x88,0x3f,0x56,0xab,0x96,0xe0,0x17,0x97,0xcd,0x66,0x6c,0xcf,0xb1, + 0x9c,0x13,0x27,0x70,0x83,0x68,0x57,0xb4,0x36,0xaf,0x4d,0x94,0x28,0xb1,0xbd,0x9c,0xba,0x70,0xe2,0xf0, + 0x52,0x43,0xfa,0xe5,0xe1,0xb4,0x3e,0xac,0x8f,0x8e,0xf8,0xbe,0xcb,0xee,0xd5,0x91,0xbb,0xbb,0x6d,0xf2, + 0x86,0xe9,0x1e,0x53,0x86,0xf0,0x89,0x2d,0x2e,0x8c,0x4b,0x98,0xe7,0x29,0xea,0x40,0x58,0x7f,0x13,0x40, + 0x09,0x44,0x4e,0x6f,0x98,0x0e,0xb9,0xe9,0xfa,0xdf,0x2a,0xdd,0x81,0xcf,0x8e,0x8d,0x9d,0xd3,0xc8,0x12, + 0x6e,0x63,0x97,0xc0,0x4a,0x14,0xfd,0xd5,0x61,0x7e,0x94,0x5d,0xa2,0x4e,0x58,0x0b,0x86,0x87,0x6b,0xb6, + 0x5d,0xa8,0xed,0xae,0x00,0x3e,0xb8,0x26,0xc7,0x09,0x6a,0x61,0x3c,0x6e,0x6d,0x83,0x38,0xc6,0xc7,0x86, + 0xa9,0x3b,0xa4,0x94,0x2e,0xec,0x9e,0xf9,0x24,0x2b,0x46,0xf0,0xc8,0xe1,0x9e,0xe0,0x05,0x61,0xc2,0x50, + 0x10,0xbe,0xab,0x07,0xb8,0x45,0x7c,0xa8,0x22,0x8b,0x29,0x17,0xbc,0xba,0x6a,0x2e,0x97,0x2f,0xc1,0xd2, + 0x9f,0x0e,0x1a,0x1e,0xd0,0x66,0x77,0x1d,0x29,0xa6,0x58,0xd8,0x39,0x24,0x63,0x35,0x3d,0x8a,0x21,0x09, + 0xbd,0x53,0xd4,0xea,0x7d,0x29,0xd1,0xdd,0x00,0xad,0x4b,0x13,0x12,0x63,0xfe,0x72,0x64,0xbd,0x4b,0xfd, + 0xd2,0x17,0x89,0x4f,0x3d,0x2c,0x8e,0xe2,0xa6,0x86,0xbd,0x90,0x31,0xaf,0xac,0xac,0xed,0x56,0x38,0x16, + 0x77,0xff,0x79,0xa2,0xb6,0xf7,0xd7,0xfe,0xcd,0xea,0x39,0x8d,0x7f,0xc1,0x94,0x85,0xf5,0x26,0xd0,0xed, + 0x52,0x5c,0x59,0x08,0x2e,0x96,0xc9,0x44,0x56,0x19,0x70,0xdb,0x4c,0x6e,0x36,0x9c,0xd0,0x91,0x4c,0x7c, + 0x47,0xda,0xcb,0x89,0x97,0xe0,0x65,0x21,0xda,0x52,0xe7,0xd4,0xe4,0x14,0x33,0xfc,0x86,0xef,0x4e,0xba, + 0x12,0x8e,0x3a,0x15,0x7f,0x50,0xe3,0xcf,0x0a,0x09,0x22,0x1a,0xb9,0xe9,0xbb,0x98,0xb3,0xdf,0x34,0x9b, + 0x13,0x06,0xb9,0xde,0x7b,0x5d,0xb2,0x3b,0x6b,0x17,0xe0,0x15,0x59,0xd9,0x5b,0xeb,0x2a,0x3b,0x32,0xe8, + 0x50,0x00,0x52,0xa2,0x7f,0x61,0xde,0xac,0x59,0x85,0x1a,0x2c,0x36,0x98,0xea,0x42,0xe4,0xca,0xcc,0x0c, + 0xdc,0xe4,0xa4,0xe7,0x0a,0xfa,0x11,0x3a,0x21,0x04,0xbc,0x38,0x92,0x60,0xca,0x4e,0xd7,0x41,0x04,0xbf, + 0xd0,0x87,0xd5,0x6a,0xa5,0xde,0x48,0x68,0x74,0x38,0x87,0x4d,0x3a,0x1b,0xb5,0x4c,0xc4,0x14,0xe7,0xa6, + 0xeb,0x56,0x6f,0x3c,0x98,0x6e,0x3a,0xda,0xc9,0x9e,0xd4,0xe2,0x3c,0x50,0x79,0xf5,0x11,0x61,0x18,0xec, + 0x9d,0x70,0x51,0x1b,0xa2,0xa2,0xe3,0xb8,0x85,0xbf,0x97,0x9d,0x5d,0x73,0x49,0x8b,0x6a,0xf9,0x0a,0x6e, + 0x28,0x9e,0xde,0xdb,0x35,0x40,0xb7,0x3a,0x1d,0xe0,0x0f,0x36,0x56,0xcc,0x28,0xd1,0xcd,0x47,0x61,0x17, + 0x4f,0xac,0xf9,0xd0,0x78,0x60,0x3e,0xc7,0x89,0x1e,0x9c,0x66,0x73,0xaf,0x97,0x43,0xf5,0xfd,0x6b,0xcb, + 0xae,0xfa,0x96,0x89,0x50,0x35,0x5d,0x9a,0x4e,0xf9,0x81,0x96,0x89,0x4d,0x3b,0x2c,0x79,0x4f,0x31,0x4e, + 0x74,0x96,0x29,0x06,0xb7,0xc4,0xec,0x7b,0xc3,0xc5,0xd8,0xa1,0xc6,0x78,0x54,0x72,0x71,0x85,0xbc,0xc2, + 0x02,0xd6,0xd0,0xfa,0x7a,0xdd,0xab,0x20,0x2d,0x39,0xa6,0xd8,0xff,0xff,0xf9,0x2c,0x49,0x6e,0x46,0x9d, + 0x90,0x00,0x66,0xfe,0x4c,0x74,0xfd,0xad,0xc0,0xb4,0x72,0x5c,0x8e,0x39,0xa4,0x90,0xf7,0xe9,0x05,0x1a, + 0x69,0x83,0x80,0xc8,0xa3,0xe3,0xc6,0xd4,0x8a,0x45,0x19,0xae,0x56,0x79,0x7f,0x1f,0x60,0x7f,0xe2,0xa6, + 0xd0,0x6d,0x11,0x1c,0x4b,0xb5,0xf6,0xf5,0xb4,0x7c,0x6c,0x13,0xfe,0xe7,0xcd,0x04,0xc2,0xee,0xf0,0x00, + 0x31,0x0b,0x5d,0x3f,0xc8,0x0a,0x03,0x66,0xb0,0x03,0x55,0x95,0x89,0x76,0x2e,0x37,0x67,0x78,0x67,0xca, + 0x8e,0xcf,0x4d,0xe7,0xb0,0x30,0xf7,0x72,0xa0,0x63,0xb5,0x3f,0x02,0xd0,0x4b,0xe3,0xad,0x8d,0x51,0xf1, + 0x8e,0xe3,0x33,0xf4,0xd2,0x26,0x87,0x67,0xa9,0x4b,0xa4,0x53,0x13,0x87,0xa1,0x5b,0x1d,0x8b,0x0e,0xa5, + 0x0d,0xeb,0x1f,0xdb,0x33,0x51,0x61,0xe8,0x39,0x8b,0x7d,0x3a,0xc7,0x5c,0x74,0x7d,0xbf,0xb0,0x1b,0x8f, + 0x07,0xdc,0x8a,0x23,0xba,0xbb,0x6c,0x84,0xaf,0x87,0x7b,0xc3,0xbe,0xf2,0x0c,0x5c,0x00,0xde,0x49,0x5c, + 0x81,0xc5,0x39,0x63,0x2e,0x8d,0xb8,0x11,0x3e,0x62,0x43,0xac,0x56,0x39,0x2b,0xa1,0x37,0x1c,0xd9,0xcd, + 0x45,0x02,0xf0,0xc2,0xb2,0x4b,0x73,0x92,0x9b,0x3e,0xee,0x8a,0xfd,0x1f,0x53,0x42,0xad,0xbf,0x2e,0x6d, + 0x37,0xab,0xd3,0xb6,0xaf,0x49,0x74,0x36,0x5d,0x44,0xfd,0xed,0x67,0xd9,0xde,0x5e,0xe9,0x3f,0xe0,0x13, + 0xd5,0x5b,0x7e,0xf8,0x8c,0xac,0x56,0x08,0x5a,0xc5,0x5d,0x55,0x12,0x50,0x60,0xe8,0xe0,0x16,0x2f,0x33, + 0xa7,0x6d,0x7c,0x63,0xc4,0x22,0xf4,0x58,0xf1,0x1d,0x77,0xca,0xee,0xcf,0x4e,0xef,0xcd,0xfe,0x94,0x34, + 0xec,0x4f,0x36,0xa5,0xf6,0x61,0x0b,0xfc,0xba,0x8b,0xbe,0x06,0xc5,0x92,0x89,0x8c,0x27,0xc5,0xdd,0xd7, + 0xa2,0xbf,0x37,0xdd,0xf3,0xf3,0x78,0x6f,0xe0,0x58,0xa7,0xe5,0x29,0x1e,0xd4,0xac,0x67,0x0f,0x6e,0xab, + 0x11,0x90,0x00,0x45,0xc0,0xe1,0x1b,0x2a,0x47,0x3a,0x14,0xc1,0xb2,0x7c,0x0a,0x51,0x2c,0x3b,0xf6,0x62, + 0x61,0x8c,0x4b,0x5d,0x62,0x9f,0xfe,0x4f,0x77,0xef,0xa2,0xdd,0xb6,0x91,0xb4,0x8b,0xbe,0x0a,0x85,0xf1, + 0x91,0x80,0x10,0xa2,0x24,0x3b,0xc9,0x24,0xa0,0x11,0x8e,0x63,0xe7,0x7e,0xf3,0xc4,0x8e,0x33,0x33,0x14, + 0xa3,0x1f,0x22,0x41,0x09,0x16,0x05,0x70,0x00,0x50,0xb2,0x22,0xf2,0x81,0xce,0x6b,0x9c,0x27,0x3b,0xf5, + 0x55,0xf5,0x0d,0x20,0x68,0x3b,0x99,0xd9,0x7b,0xed,0xb5,0x97,0xd6,0x12,0x81,0xbe,0xa1,0x2f,0xd5,0xd5, + 0x55,0xd5,0x75,0xe9,0x3a,0x4b,0xea,0xe6,0x1e,0xef,0x40,0xc3,0x40,0xc2,0x76,0xac,0x0a,0xcf,0x30,0x6a, + 0x16,0xea,0xf3,0x29,0x3b,0xe8,0x83,0xca,0xb5,0xb8,0x47,0x0b,0x5d,0xcb,0x3c,0xf7,0xa2,0x9a,0x38,0x00, + 0xd7,0x3d,0xcf,0x8b,0x16,0x21,0x26,0xa2,0xa5,0xe4,0xc2,0xe8,0x8b,0xb1,0x4c,0x49,0x43,0x36,0x5f,0xc3, + 0xc3,0xa2,0x22,0xd9,0xdf,0xa7,0x31,0xc0,0x0e,0x41,0xce,0x3f,0x22,0x97,0x1c,0xdf,0x14,0xb2,0x05,0x1b, + 0x1e,0x1b,0xac,0x0f,0xdd,0x0e,0x17,0x10,0xd0,0x86,0xe2,0x09,0x4e,0x64,0x1b,0x64,0x71,0xb2,0x83,0x9a, + 0xe3,0xd0,0x45,0xb0,0x2f,0x8c,0x3b,0xdc,0x41,0x07,0x0e,0x41,0x87,0x75,0x08,0x75,0xb3,0x45,0xa0,0x36, + 0x4b,0xc5,0x17,0x99,0x29,0xc2,0x65,0x3f,0x35,0x9a,0x61,0x7e,0xa0,0x29,0x36,0x4b,0x8f,0x19,0xf5,0x3a, + 0xdb,0x03,0xab,0x9e,0x04,0xed,0x79,0x46,0x8c,0x36,0x51,0xb3,0x1f,0x9b,0xc6,0x15,0x24,0x6c,0xd8,0x98, + 0x92,0xb2,0x7a,0x42,0x10,0x04,0x0f,0x17,0x8f,0x4d,0x38,0x80,0x85,0x8e,0x02,0xbf,0x5a,0xaf,0xf7,0x5e, + 0x10,0xcd,0x54,0x8d,0x17,0x13,0x45,0x9d,0xc1,0x5a,0x4f,0x91,0x73,0xab,0x78,0xd5,0xf0,0x48,0x83,0x1a, + 0xd3,0xf5,0x7a,0xd5,0xfc,0x70,0x0f,0xf1,0x55,0x2b,0x15,0x9d,0x06,0xb3,0xa9,0xdd,0x24,0xec,0x9d,0x98, + 0x2b,0xfa,0x99,0xe8,0xe9,0xa1,0x81,0xa7,0xfe,0x0c,0xd4,0x26,0x3a,0x79,0x23,0x7a,0x2e,0xf2,0xb1,0xbd, + 0x39,0x56,0x77,0x2a,0x66,0x96,0x69,0xed,0xab,0x67,0x6d,0xc7,0x26,0x7b,0x4e,0x14,0xc1,0xf8,0x50,0x50, + 0xd8,0x47,0xbd,0x6b,0x79,0xae,0x75,0x87,0xbd,0x4d,0x44,0x6b,0xc9,0xa7,0x05,0x3a,0x42,0xf9,0x09,0x5c, + 0x52,0x68,0x7e,0xae,0x40,0xaf,0x88,0xf6,0x80,0x29,0x88,0xb9,0x0e,0xaf,0x98,0x21,0x30,0x72,0x0e,0x96, + 0x6e,0x54,0x6a,0x4b,0x52,0x63,0x7b,0xee,0x79,0xe1,0x1e,0x35,0x3a,0x68,0x36,0x28,0xab,0xda,0x30,0x2c, + 0x8c,0x73,0x6b,0x8e,0xe0,0x0a,0x86,0x45,0x87,0x15,0x55,0x1a,0x1e,0x4a,0x6a,0xc3,0x5b,0xb9,0xd3,0x6d, + 0x49,0xd0,0x06,0x71,0x42,0x3c,0x55,0xb1,0xb8,0x49,0x67,0xc1,0xe8,0x85,0x3e,0xfe,0xe4,0x26,0xb8,0x1b, + 0xe2,0xb5,0x52,0x91,0x6c,0x9d,0x17,0xbc,0x47,0x03,0x88,0xb7,0x52,0xf7,0xb5,0x56,0xfe,0x61,0x52,0xe5, + 0x1f,0x46,0x6d,0xb4,0x05,0x41,0xfe,0x8c,0x7d,0xaa,0xe0,0xf5,0x27,0x81,0xfe,0x2e,0x17,0xe9,0x5d,0xa4, + 0x94,0x9d,0x50,0x16,0x10,0xf3,0x61,0xfa,0xdc,0x9f,0xf2,0xac,0x54,0xf1,0xd4,0xee,0xbd,0x2a,0x86,0x3f, + 0xe3,0x94,0x1d,0x5f,0xc0,0xa0,0x5f,0x10,0xaf,0x58,0xf0,0x38,0xcc,0xc2,0xa2,0x85,0x22,0xa4,0xad,0x73, + 0x5e,0x60,0xc0,0x5d,0x45,0x30,0x5f,0x11,0x52,0x17,0xfd,0x0b,0x8b,0xd6,0xaa,0x40,0xa7,0x8d,0x2b,0x83, + 0xd4,0xb7,0x3a,0x20,0x25,0xcc,0xe7,0x37,0xdf,0xfb,0x0a,0xd0,0x46,0x60,0x4e,0x50,0x6a,0x11,0x8c,0x56, + 0xb4,0xbe,0x8b,0x6d,0x7e,0x0d,0x86,0x71,0x46,0x39,0x05,0x86,0x61,0xea,0x56,0xec,0x98,0xfb,0xac,0x43, + 0xbd,0x43,0xde,0x0d,0x17,0xef,0x33,0xfa,0xa1,0xdd,0xb7,0x34,0x2a,0x57,0x94,0x75,0x19,0xe7,0xc8,0xba, + 0xa1,0x9f,0xe5,0x84,0xb8,0xf9,0xbd,0x6c,0x38,0x7d,0x8c,0x4f,0xad,0x1e,0xc7,0xcb,0x21,0x54,0x55,0x82, + 0x11,0xaa,0xf7,0xfb,0xd3,0x49,0xf4,0x3d,0xed,0xa8,0x11,0x5a,0x39,0x3c,0x5c,0x4c,0x22,0x82,0xcb,0x79, + 0x78,0x49,0xc7,0xf9,0x05,0x7e,0xa9,0x33,0xc4,0x56,0x05,0xa1,0x2e,0xcc,0x2d,0xf7,0xfb,0xab,0x49,0x80, + 0x82,0xb3,0xf0,0x86,0x0b,0xd2,0x2f,0x17,0x5c,0x06,0xa1,0x6e,0x87,0xbf,0x7d,0x78,0xb8,0x94,0x82,0x73, + 0x55,0x70,0x6e,0x0b,0x5e,0x77,0x30,0x04,0x73,0x45,0x7c,0x3b,0x48,0xc3,0x9f,0x09,0x21,0x61,0x7b,0x60, + 0x1b,0xf6,0xb9,0x0b,0x97,0xaa,0x0b,0xa6,0xaf,0x5d,0x2d,0xcf,0x44,0x35,0x5b,0x4e,0x7a,0xdd,0x47,0x6a, + 0xe1,0x7b,0x91,0x00,0x14,0xf1,0x02,0x4a,0xfc,0x53,0x68,0x83,0x86,0xdf,0xfb,0x09,0x6d,0xd9,0x4b,0x76, + 0xb6,0x33,0x2a,0xc6,0xfc,0x30,0x89,0x1e,0xf8,0x97,0xa1,0x2a,0x31,0x3a,0xf3,0xf1,0x31,0xdd,0x5f,0x26, + 0xfc,0x56,0x3c,0x4e,0x3a,0x76,0xc6,0xc9,0x44,0x75,0xa9,0xb2,0x5d,0x42,0xaa,0x52,0xac,0xee,0xec,0x5e, + 0xe5,0x74,0x0f,0x12,0xb6,0x8e,0xe6,0x03,0x3b,0xf5,0x84,0x8a,0xa7,0x23,0x10,0xa6,0xdf,0x13,0xfd,0xb9, + 0xec,0x9f,0x4c,0x88,0x6c,0x20,0x0e,0x27,0x92,0x17,0xe1,0x78,0xc2,0x55,0x08,0x3b,0xdb,0x68,0x89,0xab, + 0xb8,0x2b,0x35,0xb6,0x0d,0xee,0xda,0xc2,0x05,0xe5,0x16,0x41,0xc4,0x10,0xc8,0xc2,0x10,0xc3,0x08,0x35, + 0x7d,0x81,0x51,0x61,0x68,0x02,0xde,0xd2,0x2f,0x33,0x50,0x8b,0x90,0x00,0xd0,0xc2,0x18,0x44,0x86,0xcc, + 0x68,0x5f,0xd1,0x01,0x40,0xe0,0x69,0x72,0x82,0xe8,0x9d,0x8d,0x46,0x92,0xef,0xa0,0xe3,0x8e,0x72,0x6a, + 0xc3,0x84,0xbb,0x37,0xb9,0x76,0x6f,0x63,0xb7,0x99,0x12,0x14,0xa8,0x1e,0xf3,0xbf,0xd2,0xba,0x86,0xa8, + 0x18,0xab,0x4a,0x30,0x12,0x8d,0x90,0x21,0xee,0xa7,0x93,0xd5,0x6a,0xbc,0x3c,0x13,0xdd,0xfa,0xb6,0x22, + 0xcc,0x33,0x90,0x79,0x38,0xc7,0x85,0x48,0x12,0x12,0x24,0x31,0x87,0xf7,0x1b,0x60,0x7d,0x3e,0xe7,0xd3, + 0x61,0x46,0xa4,0x45,0xaa,0x3d,0x70,0xdd,0x69,0x95,0x61,0xc4,0xf4,0xac,0x8b,0xef,0x8b,0x5b,0xad,0x4c, + 0x28,0x9e,0xb9,0x94,0x6e,0x04,0xac,0x3e,0xe4,0xf4,0x15,0x24,0xbc,0x6a,0x0a,0xbb,0xa6,0x7c,0x6e,0xf0, + 0xd1,0x12,0x4e,0x8d,0x64,0x56,0x96,0x7d,0xd5,0xda,0x31,0x10,0xf6,0x02,0xcd,0x6b,0x1a,0x4e,0xa3,0x92, + 0x85,0x09,0xd2,0x4b,0x9b,0x09,0x78,0x6e,0xb8,0x18,0x5a,0x44,0x03,0xdf,0xf9,0xb3,0x2e,0x4e,0x63,0xe6, + 0x70,0x1a,0xb3,0x89,0x2f,0x5e,0x78,0x16,0x7c,0xda,0x28,0x83,0x07,0xdb,0x08,0x7c,0x06,0x2c,0x3b,0x18, + 0xd5,0xa5,0x65,0x54,0x97,0xcc,0xa8,0x2e,0x04,0x21,0x5f,0xc6,0x8b,0x2d,0xfa,0x10,0xcd,0x5f,0x0e,0x38, + 0x36,0xc4,0xcc,0xf4,0xfd,0x26,0x3e,0x19,0xde,0x3c,0xbe,0x84,0x80,0x54,0xb7,0x7a,0x43,0x44,0x08,0x27, + 0x8c,0x6f,0x26,0x9a,0x5a,0x4e,0x4a,0xf4,0x6f,0x41,0xad,0xca,0x40,0x37,0x0a,0x40,0xe1,0x9d,0xe8,0x38, + 0x3c,0x56,0x90,0x49,0xdc,0xca,0xfe,0x3e,0xb8,0x33,0x13,0x84,0x5c,0x56,0xaf,0x08,0x84,0x32,0xdc,0x88, + 0x28,0x43,0x4a,0xf8,0xf7,0x4a,0xee,0x19,0x65,0x65,0xa8,0xc4,0xa1,0xd1,0xf8,0x1c,0x8e,0x18,0xc2,0x2c, + 0x0b,0x93,0x2c,0xbc,0xc8,0xc2,0x57,0x23,0xad,0xb0,0xf7,0x8a,0x92,0x94,0x9c,0x0b,0xcf,0x02,0x45,0x2d, + 0xdf,0x76,0x2c,0x90,0x75,0xc4,0xe4,0x23,0x75,0xf3,0xc2,0x54,0xff,0x26,0xba,0xdf,0x18,0x7b,0x8e,0x6b, + 0xe2,0x27,0x83,0xe1,0xb7,0xfb,0xfb,0x56,0xe1,0x7e,0xcb,0x8b,0x88,0x38,0x7e,0xa4,0xc6,0x95,0x59,0xc9, + 0xf6,0x6d,0x57,0xb7,0xb6,0xfe,0x90,0x41,0xff,0x86,0x2d,0xf6,0xf6,0xf7,0xff,0x89,0x2e,0x28,0x83,0x94, + 0x40,0x19,0xbc,0xfe,0x9e,0xc5,0xf7,0xda,0xf9,0x54,0xb4,0x4d,0x0f,0x69,0x97,0x93,0xfa,0x52,0x6c,0x24, + 0x4c,0xdf,0xfe,0xfe,0x5e,0x29,0x97,0x61,0x37,0xca,0x6b,0xd0,0xe8,0x6d,0xde,0xa8,0x7e,0xcf,0xb6,0x7c, + 0x6e,0x69,0x17,0x30,0x41,0xf4,0x6f,0x65,0xe5,0x63,0x0d,0x54,0x52,0xdb,0x2c,0xec,0x5e,0xae,0x93,0xa5, + 0x04,0x34,0x32,0x61,0x06,0xc2,0xaf,0xd8,0x53,0x97,0xa7,0x3d,0xb7,0x9a,0xee,0xb1,0x7b,0xb7,0x74,0x20, + 0x81,0x15,0x78,0x8b,0x3b,0x36,0x06,0x88,0x27,0xa0,0x9f,0x43,0xe7,0x79,0xb0,0x48,0x7e,0xbf,0x13,0xb3, + 0xf3,0xad,0x89,0x57,0x36,0x14,0xfc,0x55,0x58,0x6a,0x7a,0xe1,0x3f,0x32,0x74,0xf0,0xad,0x25,0x59,0x5b, + 0xeb,0x5f,0xbb,0xca,0xa9,0x15,0x44,0xfe,0xb7,0xdc,0x45,0x59,0x1e,0xe0,0x1d,0x78,0x3a,0x6c,0x4f,0xd4, + 0x96,0xe7,0x4a,0xa8,0xe3,0xb5,0x56,0x25,0xb8,0xdf,0x9a,0xc4,0xa1,0xf6,0x73,0x68,0xa6,0x52,0x05,0x9b, + 0x7f,0xe7,0xc4,0x0e,0xb3,0x41,0x55,0x5c,0xa7,0x9d,0xba,0x0d,0x7b,0xe0,0x24,0x4b,0x51,0x6b,0xe0,0xbe, + 0x6b,0x9f,0xa1,0xc4,0xbb,0xb3,0x71,0x45,0xbb,0xaa,0x51,0x76,0xf8,0x16,0x1d,0xcc,0x44,0xa1,0xd2,0x18, + 0x8a,0x18,0x4f,0x6e,0xfb,0xfb,0xdf,0x42,0xf9,0x58,0x79,0x73,0xc3,0xd2,0x09,0xac,0xaa,0xc9,0x02,0xce, + 0xb7,0x9c,0xa1,0x1e,0x6b,0x70,0xff,0x9d,0x7e,0x0a,0x8d,0x67,0xa7,0x4e,0x05,0x20,0x53,0x6e,0x43,0xf8, + 0xc1,0xb1,0x55,0x34,0x0d,0x69,0xaf,0x0f,0xaa,0x03,0xb1,0x1d,0x98,0x28,0x34,0x11,0x39,0xdb,0x8e,0xb9, + 0xda,0xa4,0xde,0x88,0x6e,0x9b,0x3a,0x61,0x30,0x74,0x8c,0xc2,0xc7,0xd3,0x61,0x25,0x56,0xcd,0x89,0xcd, + 0x25,0x92,0x92,0xc6,0x58,0xc4,0x87,0x27,0x8f,0x9f,0xfa,0x25,0x4d,0x39,0xf8,0xa1,0x90,0xd0,0x84,0x72, + 0xbe,0x0e,0x33,0x0d,0x98,0x3a,0x99,0x84,0xb8,0xb0,0x8a,0xfe,0x6f,0x7c,0x2e,0xef,0x04,0x36,0xc2,0xd9, + 0x02,0x05,0x12,0x55,0x98,0x8d,0x59,0xa9,0x89,0x4a,0xcc,0x8c,0xdd,0xd4,0xb8,0x82,0xaf,0x3a,0x86,0xf4, + 0x66,0x3a,0x9d,0xe7,0xae,0x43,0x72,0xa5,0x6c,0x6b,0x4c,0x25,0xe0,0x2d,0xfe,0xae,0x63,0x51,0x19,0x1a, + 0xea,0x86,0xb6,0xdb,0x57,0xee,0x75,0x99,0x98,0x28,0x79,0x99,0x78,0xaf,0x90,0xb7,0x48,0x19,0x00,0xd9, + 0x2a,0xff,0xc8,0x5c,0xa5,0x2e,0x6b,0xb5,0x04,0x3f,0x49,0xa6,0xd0,0xbf,0x76,0x14,0x52,0x7e,0x29,0xdb, + 0x35,0x4f,0x42,0xc0,0x8f,0xca,0x30,0x28,0xcf,0xe9,0xe7,0x3f,0x1b,0xf7,0xe0,0x6d,0xfb,0x82,0x1b,0xb6, + 0x2e,0x00,0xff,0x2c,0x7e,0x03,0x3c,0x51,0xc4,0xcb,0x6a,0xc9,0x01,0xaf,0x2f,0x64,0xc0,0x60,0x96,0x55, + 0x8c,0xee,0x24,0xc3,0x35,0x3c,0xfc,0xbb,0x33,0x13,0x7b,0x3b,0x5c,0x8c,0x8a,0x0e,0xfa,0xd6,0x05,0xfa, + 0x28,0x8d,0x50,0x7b,0xf7,0x15,0x0d,0x53,0x11,0x69,0x11,0xdf,0x33,0xe6,0x88,0x7e,0xcf,0x42,0x1c,0x31, + 0x91,0x44,0xf5,0x68,0xe3,0x8b,0x36,0x6c,0xfb,0x79,0x4c,0xad,0x13,0x65,0xa7,0x3e,0xbf,0xa5,0xff,0xc3, + 0x76,0x7a,0x67,0x84,0x29,0xca,0xec,0x02,0xc1,0xdf,0x9e,0xd1,0x18,0x17,0xc9,0x5d,0xec,0xe5,0xd4,0x19, + 0xe5,0x93,0x9f,0x2d,0x4c,0x66,0x92,0x01,0xb5,0xf6,0x56,0xd2,0xb0,0xdc,0xdf,0xcf,0x46,0xbe,0xa3,0xa2, + 0x00,0xae,0x99,0x95,0x97,0x9c,0x6d,0xd9,0xaa,0x14,0x17,0xe2,0x9d,0xa1,0x99,0x58,0x8e,0x8a,0x48,0xbe, + 0xdc,0xe9,0x45,0x76,0x6b,0x84,0xc3,0xbd,0x72,0x2f,0xde,0x73,0x51,0x8b,0xff,0xce,0x11,0x6f,0xf5,0xb4, + 0x1c,0xbd,0xab,0xaf,0x5d,0x33,0x44,0xc8,0xed,0xf3,0x77,0x54,0x53,0x23,0xe9,0x1c,0x67,0x57,0x93,0x6a, + 0xe8,0xf0,0xa0,0x9b,0x77,0xac,0xae,0xf0,0x91,0x6a,0x4b,0xbf,0xb3,0x7f,0x40,0xa3,0x61,0x4d,0x60,0xc3, + 0x7e,0x4e,0x54,0xec,0x3b,0xd1,0x67,0x8a,0x3e,0x2f,0x0a,0x22,0x38,0xf3,0x70,0x5a,0x55,0xe6,0x19,0xd0, + 0xa5,0x8b,0xb1,0x3a,0x9e,0x7a,0x76,0xd4,0xaf,0x55,0x8a,0xa3,0x3c,0xed,0x96,0xd1,0x8a,0xd3,0x6e,0xa9, + 0x56,0xda,0x96,0x66,0xb6,0x5b,0xb6,0x23,0xdd,0x51,0x0f,0x6b,0x26,0xed,0x2c,0xdb,0xfa,0xa0,0x56,0xe6, + 0x88,0xc6,0xa2,0x7b,0x17,0xaa,0x74,0xf1,0x06,0x39,0x71,0xce,0x99,0xbc,0x70,0x4c,0xd2,0xb0,0x4d,0xb7, + 0x3c,0x25,0x5a,0x0f,0x0f,0x75,0xd3,0x47,0xa2,0x8e,0x42,0x38,0xa2,0x36,0x5e,0xd5,0x8e,0xf1,0x28,0x16, + 0xde,0xe2,0x88,0xd2,0xf9,0x82,0xba,0x8c,0xd7,0x37,0x18,0x46,0x2c,0xc6,0xc6,0x45,0xb9,0x38,0xe6,0x79, + 0x06,0x89,0x34,0x44,0xab,0xec,0x29,0x56,0x85,0xa8,0x32,0x51,0x25,0x35,0x8d,0x61,0xeb,0xb2,0x59,0x4a, + 0x46,0x35,0xce,0x89,0x05,0x9e,0xc4,0xf0,0xac,0x61,0x23,0x2f,0xd8,0xcb,0x77,0x2b,0xb5,0x3f,0x3a,0x9d, + 0x1d,0xda,0x68,0x8a,0x0f,0x8e,0x94,0x01,0x1a,0xd3,0x18,0xc6,0x88,0xca,0x6f,0x04,0x5c,0xbc,0x97,0x28, + 0x8b,0xdb,0x7e,0x24,0x6d,0x97,0x37,0x82,0xb0,0x8a,0xa2,0xcb,0x4b,0x7c,0x2a,0x74,0xdb,0xd7,0xe2,0xb3, + 0x3b,0xe9,0x2a,0xe3,0x61,0x5b,0x0a,0xe2,0xc9,0xc5,0x9f,0xb5,0x86,0xe1,0x86,0xca,0xbc,0xea,0x48,0xd1, + 0x88,0x01,0xd9,0x8e,0x4e,0xd8,0xb8,0xae,0x61,0x6b,0xf5,0xac,0x2b,0x52,0xa1,0x8e,0x2c,0x08,0x09,0xab, + 0x72,0xac,0x54,0x14,0x84,0x40,0x5c,0x27,0xaf,0x2a,0x16,0x21,0x76,0x09,0x5c,0x99,0x8c,0x8f,0x59,0x48, + 0xd8,0xf6,0x94,0x37,0x84,0xa4,0x4b,0x6b,0x00,0xb2,0x8c,0xb7,0xad,0x2e,0x65,0xa4,0x92,0xbe,0x13,0xc1, + 0xc8,0x4c,0x77,0xa2,0x34,0xa8,0x09,0x92,0x12,0x25,0x58,0xb4,0x59,0x30,0x7e,0xe1,0xe0,0x63,0xd8,0x2e, + 0x04,0xc5,0x46,0xf8,0x8f,0x25,0x4d,0x84,0x08,0x9c,0xc2,0x97,0x81,0xfd,0xdc,0xa1,0xd7,0x97,0x2a,0xab, + 0x6c,0xd6,0xf7,0x0e,0xbd,0x21,0x07,0x40,0x54,0xd1,0x0f,0xf9,0x79,0x54,0x59,0x81,0xf9,0x68,0xda,0x07, + 0x65,0x8b,0x47,0x2f,0x9a,0xf6,0x2b,0x0e,0x80,0xf8,0xd2,0xaf,0x44,0x70,0x02,0x6d,0x7f,0x75,0x6b,0x2a, + 0x29,0x46,0x5b,0x7d,0x1a,0x8c,0x38,0x85,0xeb,0xe0,0x97,0xff,0x2b,0x01,0x1d,0x15,0xc6,0x1c,0x10,0xd6, + 0x92,0x07,0xd6,0x01,0x72,0x66,0x24,0xa6,0x7d,0x21,0x61,0xea,0x16,0xb1,0x13,0xda,0x90,0x38,0x5a,0x9a, + 0x04,0xe1,0x4d,0xab,0xb6,0x1f,0x61,0x38,0xf5,0x6c,0x25,0x09,0x2d,0x9a,0xb0,0xf0,0xa7,0x6a,0xe0,0x77, + 0x51,0x81,0xb2,0x5e,0x04,0xab,0x90,0x8e,0x88,0x79,0x80,0x2e,0xee,0x29,0x87,0xd7,0xc4,0x49,0x60,0xac, + 0x7b,0xca,0xaf,0x24,0x54,0x61,0x09,0x44,0xe7,0x68,0x6b,0x6f,0xde,0x75,0x9a,0x77,0xa5,0xaa,0x8e,0x3b, + 0xf7,0x0f,0x02,0x39,0xb3,0x78,0xde,0x86,0x02,0xb1,0x63,0x5f,0xf1,0xe0,0x3c,0x22,0x5f,0x0f,0x33,0xf6, + 0xe1,0x59,0xb8,0x11,0xfe,0xcc,0x32,0xe3,0x88,0x22,0x7e,0x6b,0x16,0x7a,0x56,0x97,0xad,0xc1,0x70,0x95, + 0x4e,0xd1,0x93,0xb0,0x6c,0x84,0x46,0xf6,0xa1,0xad,0xa8,0x01,0x44,0x6c,0xa0,0x0f,0x0b,0x09,0x0e,0x25, + 0x12,0x69,0x1a,0x67,0x65,0xc0,0x4f,0x8c,0xfa,0x96,0xe1,0xa5,0xab,0xaf,0xbf,0x84,0xae,0x7d,0x06,0x45, + 0x0a,0xcf,0x2a,0xd7,0x7a,0xe1,0x65,0x10,0x4a,0x62,0x53,0xc5,0x56,0x67,0xcc,0xe0,0x75,0x5c,0x2b,0xd6, + 0x79,0x0d,0x1f,0x0a,0xcb,0x38,0xdd,0x58,0x4e,0x3d,0xc1,0x39,0x35,0x2d,0x30,0x25,0x00,0x37,0x85,0xa0, + 0x59,0xfd,0xc7,0xc1,0xe4,0x38,0xca,0x9c,0xfb,0xa2,0x55,0x21,0x14,0x22,0x73,0xa5,0x5c,0xf6,0x1c,0x38, + 0xdb,0x79,0xf5,0x95,0x52,0x84,0x51,0x63,0x34,0xf9,0x46,0xad,0xd1,0x51,0x79,0x50,0xcd,0x89,0xf5,0x63, + 0x7a,0xfb,0xbc,0xa8,0x44,0x6a,0x03,0x35,0xff,0xcf,0x8b,0x15,0x5f,0x92,0x3d,0x5d,0x64,0x54,0xf5,0x67, + 0x82,0x37,0xb7,0xea,0xdc,0x3d,0x37,0xd4,0xa5,0x5a,0x51,0x85,0xe6,0x4e,0x50,0x5a,0x63,0xa7,0x9d,0x8b, + 0x74,0x5e,0xe3,0x16,0x93,0x7e,0xd8,0x4b,0x42,0x5d,0x2c,0xe9,0x95,0xfe,0xf3,0x7d,0xd6,0x7a,0x9d,0x99, + 0x2e,0x60,0x08,0x26,0x68,0x74,0xa1,0xba,0xc2,0x47,0xfe,0xb0,0x18,0x18,0x73,0x85,0xb8,0x18,0x38,0x26, + 0x3b,0x9c,0xe2,0x99,0x08,0x4e,0x3e,0x9b,0xa1,0x2f,0xdf,0xc0,0x3f,0x1d,0x7e,0x03,0x2f,0x2c,0x1c,0x08, + 0xd4,0xe6,0x02,0xb1,0x77,0x5c,0x79,0x9b,0x8d,0x72,0x29,0x31,0x2d,0x18,0xc1,0x09,0x14,0x10,0xda,0xb5, + 0x56,0x3f,0x51,0x55,0x84,0xf6,0xed,0x2b,0x04,0x5a,0x89,0xd4,0x61,0x30,0x2d,0x42,0x51,0xbf,0xfc,0x41, + 0xf4,0xf5,0x9b,0xc2,0x8a,0x26,0xde,0x55,0x61,0xcb,0x87,0xee,0x4b,0x67,0x0c,0xf3,0xaf,0xd8,0x20,0xbc, + 0x74,0x62,0x49,0x97,0x1a,0x31,0x94,0xb4,0x63,0x97,0x7c,0x3b,0x8f,0xbd,0xad,0x93,0x63,0x95,0x0c,0xe7, + 0xad,0x99,0x30,0xba,0x90,0xb8,0x42,0x82,0xd8,0x75,0x2c,0x58,0xd3,0x60,0xee,0x0a,0x9f,0x4a,0x6e,0x48, + 0x39,0xd9,0xb0,0x48,0xf5,0x10,0x02,0xc5,0xa3,0x05,0xed,0x8a,0x48,0x22,0xa3,0x1b,0xb0,0x9b,0x4f,0x75, + 0xe8,0xab,0x98,0xb3,0xfa,0x52,0xa2,0xf3,0xc0,0x81,0x1f,0x0f,0x1d,0xdd,0x56,0x97,0x84,0x82,0x5d,0x62, + 0x91,0xa1,0x5c,0x56,0x18,0x5b,0xe4,0x4a,0x5f,0x04,0x4f,0xe9,0xec,0xa9,0x26,0xc3,0xa9,0x28,0x2d,0x8b, + 0x0b,0x9a,0xa9,0x5c,0xca,0x40,0x08,0xa5,0x10,0xf4,0xb4,0x89,0xa0,0xe9,0x4c,0xb8,0xc1,0x1d,0xb9,0xc7, + 0xa2,0x71,0x13,0x7c,0x96,0x68,0xe5,0xf1,0x54,0x94,0x31,0xa7,0x81,0xc6,0xd2,0xd3,0x6e,0x2c,0x9d,0xb0, + 0xdb,0x0a,0xe7,0x8a,0xda,0xf8,0x6f,0x67,0x83,0x92,0xf9,0x63,0xa3,0x39,0x38,0xd7,0x5d,0x9d,0xc5,0xe5, + 0x78,0x3e,0x19,0xce,0xb6,0xb0,0x5f,0x12,0xce,0xcc,0x4e,0x89,0x67,0x6f,0xdb,0x67,0x61,0x3e,0x9e,0x71, + 0x07,0x47,0xca,0x01,0xfb,0xcc,0x38,0x54,0x9b,0x05,0x1b,0x15,0xd0,0x77,0x49,0x3b,0x0f,0x17,0x87,0x90, + 0x0d,0xaf,0x54,0x6c,0x43,0x11,0xd3,0xcd,0x62,0x13,0xc2,0xda,0x94,0x28,0x4c,0x80,0x8a,0x1d,0x01,0x97, + 0x1b,0xab,0xa9,0x57,0xd8,0xe0,0x23,0x1d,0xb4,0xd5,0xda,0x31,0xd2,0xb9,0xca,0x61,0x16,0x86,0x36,0x1e, + 0x36,0x97,0xb8,0x4c,0xaa,0x1f,0xd8,0x80,0x14,0x6e,0x0c,0x44,0x25,0x8c,0x19,0x58,0x6d,0x96,0xba,0x2a, + 0x80,0xa2,0xf4,0xdb,0xa2,0xf1,0x36,0x2f,0xd4,0x38,0xce,0xca,0x74,0xbe,0xa0,0x63,0xcc,0x30,0xad,0x88, + 0x95,0x34,0x28,0xe6,0xf3,0x2a,0xad,0xbf,0x4e,0xe1,0xf2,0xcf,0xad,0xd5,0xf6,0x05,0x64,0x91,0x49,0x43, + 0x09,0x3c,0x84,0xd2,0x8e,0xa0,0x13,0xd6,0xa0,0x65,0x7f,0xc5,0x16,0xad,0xd4,0x5b,0x68,0xa5,0xee,0xc4, + 0x1c,0xb4,0x29,0xb6,0x45,0x5e,0x4f,0x32,0x28,0x1a,0x0b,0x0e,0x36,0x3b,0x1b,0xb3,0x1f,0xdc,0x2b,0x9d, + 0x7b,0x70,0xe9,0x7b,0xec,0x87,0x85,0x12,0xf6,0x8e,0xcc,0x77,0x2d,0x01,0xba,0x54,0xd6,0x3c,0xec,0x97, + 0x83,0x75,0x89,0xbb,0x2c,0xc6,0xe8,0x4b,0x69,0xe0,0x7c,0x8c,0x57,0xf7,0x4b,0x19,0x0f,0xc4,0x14,0xb0, + 0xc5,0x41,0x6c,0xa8,0xcb,0x62,0x56,0x45,0xf7,0x6a,0x35,0x5a,0x82,0x5b,0x36,0xb4,0xc8,0xac,0xda,0xae, + 0x21,0xb1,0x54,0xf1,0xe6,0x81,0xac,0x12,0x87,0x7a,0x2a,0xa7,0xb8,0xfe,0x64,0x69,0x3e,0x3c,0xa5,0x75, + 0x99,0xe1,0x75,0xa5,0x76,0x2e,0xd7,0xb9,0x98,0xfa,0x6c,0xd8,0xd2,0x4f,0x54,0x50,0x3a,0x99,0x49,0x15, + 0xc7,0x3b,0x5d,0x34,0x74,0xdc,0x72,0x2d,0x01,0x7c,0x9e,0x39,0x96,0x4c,0xa6,0xa8,0xab,0x4d,0x9b,0x6b, + 0xc0,0x52,0x83,0x81,0xba,0x92,0x63,0x5f,0xb5,0x81,0xf0,0xed,0x05,0x4b,0x16,0xe7,0xd9,0xc5,0x00,0x81, + 0xff,0x7e,0xa9,0xd8,0x37,0x76,0xfc,0x73,0x1e,0xda,0x8c,0xac,0xfa,0x39,0x45,0x7c,0xe6,0x74,0xf6,0x32, + 0xb9,0x88,0xff,0xde,0x9d,0x85,0xbb,0x96,0xf8,0xb9,0x9b,0x47,0x4b,0xff,0x52,0x2e,0x4f,0x08,0xab,0xe2, + 0x5a,0xb8,0x6c,0x54,0xfc,0x25,0xbf,0xca,0x8b,0xdb,0x5c,0xc9,0xb3,0xdb,0xbe,0xad,0xf6,0x5e,0xd9,0xa0, + 0x21,0xf0,0x8b,0x95,0x37,0x34,0xae,0xb5,0xbb,0xb8,0xc6,0x85,0x8c,0xf2,0xb4,0x57,0x8e,0x53,0x13,0xef, + 0x97,0x5f,0x94,0x7e,0xf6,0xbb,0x62,0x30,0x35,0xed,0xcb,0xe1,0xa8,0x9d,0x6b,0xb3,0xd6,0x87,0x0d,0xe3, + 0x6b,0x8c,0x5c,0x21,0x43,0x6a,0x0e,0x01,0x76,0xe2,0x3b,0x8b,0xea,0xe8,0x50,0xd2,0xe6,0xd1,0x76,0x6d, + 0xcb,0x91,0x15,0x0a,0xaf,0x03,0xa4,0x6f,0x10,0x3a,0x55,0xf3,0x9e,0x4e,0x6c,0x8d,0xb4,0x08,0x9a,0x79, + 0x4e,0x74,0xea,0x65,0xc1,0x81,0x4d,0x4d,0xc0,0x55,0x7b,0xae,0xc6,0xaf,0x46,0xbf,0x66,0xd1,0x55,0x33, + 0xf7,0x01,0x47,0xa4,0xef,0x0e,0xe3,0x29,0x07,0x1c,0xd4,0xdf,0xc0,0x27,0xbf,0x1a,0x71,0x64,0xad,0x48, + 0xdf,0x79,0xc5,0x10,0x4b,0x13,0xcc,0x41,0x11,0xcb,0x2a,0xe8,0xc9,0x01,0xcc,0x3b,0xb9,0x95,0x16,0x5f, + 0xd2,0x1e,0xfe,0x27,0xdf,0x26,0x38,0x44,0x04,0x5b,0x4a,0x36,0xec,0x28,0x14,0xad,0x00,0x1b,0x12,0xa9, + 0x88,0x63,0x3e,0x40,0x00,0xa5,0xdb,0xde,0x3c,0x67,0x1d,0xff,0xab,0xf0,0xfe,0xbc,0x15,0xfe,0x89,0x6b, + 0x1a,0x3b,0x2b,0xc2,0x36,0xfc,0xfa,0x4c,0xee,0xbe,0x90,0xe0,0x7e,0x59,0x08,0x66,0x88,0x9f,0x99,0xb0, + 0xc8,0x40,0x4c,0x0b,0xa3,0x94,0x9b,0xa8,0xb3,0xbe,0xdb,0x1e,0x08,0x73,0x69,0xe0,0x5a,0x12,0x60,0xd3, + 0x9e,0xeb,0x78,0x36,0xd0,0xf9,0xd8,0x84,0xaf,0x76,0x49,0xa9,0x5f,0x13,0x2d,0x70,0x53,0x17,0xc5,0x82, + 0xb0,0x44,0x0e,0xe3,0x10,0xc2,0xcc,0xd7,0xb0,0xd8,0x84,0xe4,0xd1,0xa3,0xe5,0x60,0xf1,0xb5,0xdc,0xa9, + 0x15,0xe1,0x4d,0x11,0x1f,0x9d,0xde,0x9f,0xde,0xfb,0xfe,0x28,0x1a,0xac,0x4f,0xcb,0xd1,0x69,0x1e,0xf4, + 0x47,0xc1,0xe9,0xe6,0x74,0x73,0x04,0x62,0x39,0x3e,0x1a,0x1f,0x0e,0x3e,0xe8,0x8f,0x7e,0x7b,0x70,0xbf, + 0xf1,0x83,0xf5,0xf8,0x74,0x72,0x7a,0x74,0x7a,0x3a,0xa1,0xbc,0x8b,0xa2,0xc3,0x85,0x0f,0x1d,0x98,0x38, + 0x94,0xb4,0xe9,0xe1,0x75,0x11,0x7a,0xa7,0xa7,0x0f,0xf6,0x11,0x0b,0x8c,0x72,0x4e,0xba,0x72,0x8c,0xe7, + 0x41,0x9a,0xf0,0x9f,0xd3,0x8b,0x2f,0xde,0x2c,0xfd,0xba,0xef,0xa9,0xfe,0x48,0x6f,0xbc,0x3e,0x4d,0xc5, + 0x05,0x2e,0x9b,0xc2,0x3b,0x22,0x1e,0x45,0xdd,0xeb,0xbb,0xf4,0xae,0x8a,0xc6,0x9e,0xa3,0x07,0xe6,0x4d, + 0x42,0x83,0xf3,0x5b,0x51,0xb2,0x00,0x66,0xf5,0x00,0x61,0xe5,0x15,0x8e,0x15,0x57,0xa7,0xda,0xb1,0x42, + 0xae,0x9d,0x69,0xea,0xa6,0xe2,0x96,0xef,0xc9,0xdc,0x98,0x2a,0xfd,0xe0,0x54,0x84,0xea,0x3d,0x64,0x94, + 0x3a,0x52,0xe7,0xe7,0x99,0x18,0xa3,0x94,0x34,0xc5,0x17,0x69,0x0e,0xa1,0xc5,0xb6,0xc8,0x00,0xf1,0x2d, + 0x5b,0xee,0x83,0xb4,0xc7,0x77,0x04,0xb7,0x74,0x03,0x85,0x22,0x28,0x87,0xf3,0xde,0xf7,0x42,0x0f,0x67, + 0xb9,0xfb,0x2d,0x55,0x6b,0x6a,0xca,0xbb,0x99,0x52,0xa1,0x26,0xb8,0x3b,0xeb,0x9e,0x36,0x56,0x99,0xfb, + 0xe3,0xd3,0xc6,0xe7,0x47,0x6b,0xda,0xc4,0xa1,0x4b,0x6b,0xda,0x2a,0x96,0x97,0x36,0xa7,0x4e,0x2a,0x3b, + 0x53,0xc7,0x09,0x7f,0x76,0xea,0xf8,0xb3,0x8d,0xa9,0xe3,0x14,0x67,0xea,0xf8,0x5d,0x4f,0x9d,0xfb,0x2d, + 0x53,0x0b,0xe5,0x7d,0xa9,0x60,0x73,0xfb,0xf0,0x6c,0x24,0x93,0x77,0x5e,0xb0,0xf2,0x21,0x62,0x3b,0x72, + 0x9c,0x4f,0x04,0xcc,0x2c,0x16,0x2a,0x6e,0xa5,0x04,0x67,0x54,0xf1,0x36,0x25,0x86,0x64,0x56,0x31,0x66, + 0x87,0x2a,0xe2,0x05,0xb4,0x87,0x4c,0x44,0xd0,0x46,0x70,0x4b,0x09,0x81,0x79,0x7b,0x5e,0x42,0x71,0xa2, + 0x90,0x88,0xc9,0x2a,0x86,0x25,0x02,0x7c,0xd6,0x08,0xde,0xa9,0xef,0xd3,0x96,0x1c,0xc4,0x12,0x01,0x20, + 0x39,0x94,0xa5,0x04,0xb7,0x2c,0x55,0x4b,0x54,0xff,0x4a,0x7a,0xd8,0x19,0x64,0x54,0xba,0x6c,0xc3,0x49, + 0x72,0x4c,0xcc,0xce,0xd0,0x99,0xf8,0x6c,0x33,0x76,0x25,0x47,0x1b,0x55,0xa1,0x46,0x75,0xac,0xcc,0xad, + 0x98,0xa3,0x2a,0x8a,0x29,0x07,0xd1,0xec,0x88,0x61,0x8a,0xbe,0xea,0x08,0xa7,0xf2,0x1d,0x9a,0x2c,0x8e, + 0x9c,0xaa,0xa2,0x6c,0x22,0x48,0xa9,0x0e,0x8f,0xc9,0xd3,0xd4,0x0e,0xb8,0x29,0xd3,0x26,0x01,0x48,0xd5, + 0xe4,0x89,0xb3,0x26,0x1d,0x4c,0xd3,0xc6,0xf9,0x6c,0x4d,0x11,0xc7,0x5e,0xa5,0x89,0xe2,0xb9,0xa6,0x79, + 0x7a,0x40,0xf8,0xec,0xb7,0xd3,0xea,0x03,0x7f,0x4c,0xff,0xbd,0x83,0xc7,0x9f,0x9d,0x1e,0xc5,0x93,0x7e, + 0x40,0xb8,0x06,0x89,0x71,0x80,0xff,0xa3,0xc8,0xa3,0x6c,0x6f,0xf2,0x01,0xa1,0x9d,0xf5,0x01,0x3d,0x1e, + 0xd0,0xe3,0x41,0x7f,0xad,0xea,0xc4,0x8f,0x3f,0xfb,0x1f,0xaa,0x12,0x04,0xa3,0xa3,0xf0,0x8d,0x6e,0x8e, + 0x2a,0xdd,0x1c,0x8e,0x4f,0x6f,0x0f,0x27,0xfd,0x68,0xfd,0xb7,0x75,0xb4,0xfe,0x4b,0x70,0x3a,0x1e,0xff, + 0x46,0x6d,0x9f,0x4e,0xdc,0x4f,0x7d,0xf0,0xa7,0x3f,0xf5,0xb4,0x88,0xbd,0x71,0x72,0xf8,0xfb,0x93,0xc3, + 0x7f,0x9d,0x4d,0xc6,0xa7,0xa7,0x87,0xa7,0xa7,0x83,0xe3,0xc3,0x4f,0xcf,0x24,0xc9,0xeb,0x7f,0x39,0x90, + 0x99,0xe9,0x53,0x6b,0x84,0xe4,0xe1,0xaf,0x17,0xcd,0xf7,0x9f,0x16,0x7d,0xc2,0xb3,0x51,0x30,0x92,0x47, + 0x62,0xd6,0x9f,0x14,0xb1,0x83,0x6a,0xbd,0xdf,0x1e,0x7b,0xfd,0x17,0x74,0x88,0xbf,0xd4,0x63,0x39,0x3d, + 0x1a,0x05,0x9f,0x1d,0x85,0x3f,0xb5,0x8b,0x9d,0x9e,0x1e,0xa1,0x64,0xdf,0x1b,0xff,0xf6,0xd9,0xe4,0x83, + 0xcf,0x68,0x36,0x9f,0xa1,0xca,0xe3,0xbd,0x67,0x3f,0x3d,0x7d,0xf9,0xcf,0xe7,0x5f,0xf4,0x90,0xde,0xff, + 0xec,0x28,0x0b,0xbf,0x90,0xf4,0x53,0xf8,0x29,0x7b,0xad,0x9e,0xc7,0x47,0xe1,0x97,0x0c,0xa4,0x2a,0x86, + 0xab,0x0a,0x8e,0xab,0x6f,0xde,0xf9,0x60,0xfc,0x11,0x21,0xcd,0xc2,0xef,0xe9,0xbf,0xb7,0xbf,0xa8,0x87, + 0x5e,0xe4,0x3d,0xa6,0x6d,0xbb,0x7f,0xc1,0x8f,0x9f,0xe1,0x11,0x10,0x4c,0x2f,0x07,0xde,0x01,0xbd,0x24, + 0xd7,0x4b,0x64,0xec,0x23,0xe3,0x2f,0x27,0xc7,0x78,0x3e,0xcd,0xf9,0xe5,0x53,0x7e,0xae,0xf9,0xf9,0x11, + 0xbf,0x1c,0x78,0x9b,0xf0,0x39,0x75,0x65,0x9f,0x26,0x85,0xb8,0xe4,0x8b,0x7a,0x8d,0xa6,0xd6,0xd4,0xc4, + 0x9a,0x4a,0x04,0x43,0x3a,0xcf,0xbe,0xd9,0x99,0xbd,0xa6,0xd6,0xd7,0x7f,0x91,0x52,0x3f,0xf3,0x20,0x58, + 0x33,0xb8,0xd1,0xf7,0x1f,0x8a,0x6e,0xa2,0x86,0x70,0xd3,0xcf,0x85,0xc4,0x5d,0x3f,0x95,0x70,0x3a,0x74, + 0x3e,0x6e,0x18,0x21,0x7e,0x5e,0x84,0xbf,0x14,0xe1,0xd7,0x45,0xf8,0xaa,0x08,0x7f,0x2d,0xc2,0xdf,0x8b, + 0xf0,0xdf,0x45,0xf8,0x5d,0x11,0x7e,0x8b,0x29,0xfb,0xdb,0xfa,0xb7,0x9b,0xc3,0x22,0x8f,0x8e,0xc2,0xaf, + 0xf0,0x7a,0x73,0xb8,0x46,0x52,0xb4,0xfe,0xed,0x2f,0x47,0xe1,0x3f,0x28,0xc5,0x1f,0x9f,0x56,0xa7,0x2f, + 0x26,0x1f,0xd0,0x51,0x5d,0xf5,0xa9,0xd7,0x59,0xbe,0x2e,0xe6,0xfc,0xac,0x32,0x82,0xa3,0xf0,0x5f,0x54, + 0x2e,0x24,0x58,0x0a,0xe9,0x34,0x9f,0x08,0xec,0xb9,0xaf,0xc1,0xe8,0xc1,0x51,0xf8,0x4f,0x5e,0x76,0x7f, + 0x7d,0x1a,0x3c,0xa0,0xd1,0xfd,0x9d,0xdf,0xc6,0x83,0x0f,0x4e,0x27,0x94,0x97,0x26,0xec,0x8b,0xef,0x03, + 0xca,0x0a,0x89,0x71,0x3f,0xc2,0xe7,0x4f,0x07,0xe8,0x18,0xdf,0x21,0x1d,0x85,0x39,0x25,0x9e,0x0e,0xc6, + 0xbf,0x0d,0xa8,0x3d,0xea,0x44,0x4c,0x60,0x4b,0x0d,0x3f,0x08,0xa8,0xa5,0x32,0xe1,0x5e,0x43,0x38,0xe1, + 0x47,0xeb,0x07,0x01,0x77,0x3c,0x4b,0x10,0x77,0xa4,0x3c,0xcd,0x27,0x47,0x61,0x91,0x88,0x83,0xaa,0x8b, + 0x30,0x49,0x3a,0xdd,0xf3,0xf8,0x97,0x45,0x7c,0x59,0xfc,0x01,0x27,0x89,0x84,0x85,0x0b,0x37,0x08,0x25, + 0x51,0x0b,0x55,0x12,0x7b,0x67,0xe9,0xf5,0xb2,0xbe,0x3b,0x73,0xbc,0xf0,0x4e,0x93,0xa6,0x0b,0x7e,0x71, + 0x12,0x71,0x82,0x28,0x98,0x11,0x61,0x4d,0xed,0xd7,0x3b,0xaa,0x43,0xed,0x0e,0x7c,0x87,0x84,0x87,0x2f, + 0x5b,0x8e,0x43,0xeb,0x40,0x7a,0x98,0x3f,0x2e,0xd9,0xbb,0x5b,0x3d,0x86,0x1e,0x3f,0xf3,0xf2,0x13,0x8e, + 0x30,0xa6,0x6e,0x15,0x6d,0xc0,0x6a,0x62,0xc4,0xca,0xe4,0xf6,0x89,0xfe,0xc0,0xbd,0x0e,0xef,0x19,0x11, + 0x52,0x56,0x22,0x02,0x44,0x5b,0x70,0xfc,0x07,0x26,0x5b,0x81,0xcf,0x44,0xe1,0x13,0x41,0x00,0x7e,0x80, + 0xf5,0x06,0x1d,0xae,0xac,0xfd,0x2e,0xd6,0xd7,0x10,0xc7,0x97,0x4e,0x44,0x03,0xa5,0x60,0x4b,0xbf,0x12, + 0xae,0xfd,0x05,0xe4,0x46,0xfc,0x6e,0x43,0x18,0x28,0x37,0xd8,0xfe,0x14,0x0d,0x56,0x68,0xb0,0x4c,0xe7, + 0xd2,0x20,0xe8,0xea,0x79,0x3c,0x0d,0x2b,0x13,0x84,0x72,0x47,0x34,0x9f,0x6a,0x58,0x0f,0x99,0xab,0x72, + 0x62,0xc8,0x52,0xae,0xe5,0xb0,0x6a,0xa3,0x5c,0xb6,0x31,0xda,0xdd,0x88,0xef,0xb1,0x75,0xdc,0x0f,0x3d, + 0x1d,0x0e,0xd9,0x84,0x9e,0x1a,0xf9,0xb5,0xa6,0x41,0x30,0x08,0x39,0xd3,0x69,0x20,0x6c,0x93,0x83,0x48, + 0x2e,0x2a,0x93,0x92,0x0e,0x55,0x09,0x58,0x2b,0xc7,0x1d,0xc9,0x42,0x7b,0xd8,0xba,0x81,0xa5,0xaf,0x35, + 0xa5,0xb2,0x40,0xc0,0x65,0x7d,0x87,0x23,0x85,0xc5,0xe5,0x71,0x7c,0xe0,0x11,0x7a,0x86,0x2f,0xb6,0x03, + 0x4f,0x49,0xde,0xbc,0x83,0x28,0x0b,0xdd,0x32,0xcf,0xc4,0xdd,0x7f,0xbc,0xe7,0xef,0x39,0x7e,0xe5,0xbd, + 0x88,0x5b,0x9d,0xd8,0x89,0xe7,0x54,0xb5,0xa5,0x24,0x2f,0x08,0xb7,0x07,0x8e,0x7b,0x7e,0xd3,0xd9,0xf5, + 0xfa,0x7b,0xdb,0x41,0x02,0x04,0x02,0x00,0xf5,0x0c,0x28,0x08,0x06,0x0e,0x60,0x8d,0xe1,0xdb,0xbf,0x9c, + 0xe0,0x1e,0xa2,0x91,0x6a,0x9c,0xfc,0x6f,0xe7,0x21,0x88,0x7b,0x57,0x17,0xf4,0x75,0x15,0x3b,0xc3,0x2f, + 0x45,0xea,0x5f,0x48,0x62,0x12,0xcf,0x12,0x9f,0xdd,0xca,0x24,0x0c,0xf3,0xe1,0x94,0x1e,0x54,0xbc,0x83, + 0x61,0x63,0xe2,0xaa,0xce,0x39,0x9a,0x36,0x96,0xb1,0x90,0xcd,0xb2,0x5e,0x57,0x89,0xa8,0xe4,0xdf,0x8b, + 0x58,0xd0,0xfd,0xf0,0x4a,0x3e,0xbc,0x88,0x1b,0xe0,0x2c,0x37,0xd8,0xf6,0x1d,0xc2,0xc6,0x70,0x8e,0xce, + 0xad,0xa0,0xcb,0x3b,0x97,0xce,0x2d,0x71,0x6f,0x22,0x5f,0x0e,0x2f,0xe3,0xc5,0x78,0x36,0x89,0xa7,0x1c, + 0xfe,0x59,0x0d,0x18,0xaa,0x96,0xc4,0xa9,0x5f,0xba,0xfd,0x26,0x1a,0xa6,0xa3,0xdf,0x44,0xcb,0x58,0x31, + 0xab,0x63,0x38,0xd5,0x11,0x44,0x85,0xe3,0x11,0xda,0x41,0x9a,0x6b,0x50,0xb5,0x15,0xe2,0x4b,0xd8,0xae, + 0x06,0xea,0x2b,0x32,0x0f,0x2b,0x3b,0x0f,0x61,0xda,0x10,0xe7,0x3a,0x91,0x1d,0xd8,0x7b,0xbb,0x02,0x05, + 0x44,0xed,0x49,0x00,0x00,0x2c,0xc2,0x85,0xea,0x0f,0xa5,0x42,0x26,0x02,0x80,0x4e,0x42,0x0f,0xa3,0x07, + 0x2b,0xe9,0x17,0x48,0x80,0xee,0xa9,0x97,0x55,0x9e,0xf2,0x6a,0x6b,0x98,0xfa,0xb8,0xd0,0xe2,0x8d,0xcf, + 0x39,0x86,0x65,0x96,0x23,0xa4,0xf7,0xa1,0x99,0x1e,0x29,0x2e,0xa9,0x2f,0x55,0x22,0x6e,0xc3,0x86,0x56, + 0x80,0x7b,0x3c,0x5c,0x3d,0xfe,0xda,0x84,0xdb,0x59,0xc1,0xa7,0x67,0xfc,0x75,0x31,0x5e,0x89,0x12,0x3c, + 0xc1,0x72,0xdb,0xed,0x79,0x47,0xcc,0x29,0xa0,0x36,0x56,0x41,0x9e,0x87,0x33,0x22,0x80,0x2f,0xc3,0x9b, + 0xf0,0x3a,0xbc,0x70,0x03,0x2f,0xf0,0x07,0x6b,0x42,0xc0,0x79,0x7c,0xa1,0xbf,0x55,0x3f,0xce,0x87,0xb5, + 0xe8,0x4a,0x95,0x71,0x16,0x5f,0x8c,0x6b,0xc1,0xc2,0xc4,0xf6,0xf3,0xb3,0xa8,0xaf,0x7c,0x55,0x28,0x1f, + 0x3f,0xd6,0x5e,0x46,0x91,0xfd,0x08,0xde,0x14,0xd2,0x24,0x2e,0x13,0xbf,0x34,0xcc,0xea,0x57,0xec,0xa2, + 0x91,0xe7,0x09,0x31,0xc8,0x74,0x72,0xce,0x0a,0xca,0xc4,0x23,0x24,0xa6,0x35,0x37,0xbb,0x16,0xa5,0xe8, + 0x22,0x7e,0x56,0x62,0x6f,0x10,0x52,0xfd,0xbb,0xfd,0xac,0x6a,0x4a,0xb9,0x08,0x85,0xbf,0x9e,0x20,0x4c, + 0x78,0xcd,0x20,0xa3,0x24,0xec,0x30,0x25,0x8a,0x41,0xce,0x36,0x22,0x95,0x79,0x65,0xcb,0xf8,0xdc,0xd4, + 0x74,0x3c,0x0e,0x43,0xe7,0x6b,0x4a,0x23,0x5c,0x48,0x25,0x5d,0x0c,0x9a,0x60,0x77,0xf9,0x94,0xa3,0x66, + 0xfd,0xca,0x51,0x09,0x1f,0x70,0x90,0x12,0xb8,0x76,0x1a,0x71,0x40,0x99,0x03,0x15,0xdb,0x94,0x90,0x80, + 0x8f,0x10,0x44,0x20,0x0e,0x2b,0x65,0x00,0x7b,0x12,0x1e,0x87,0x98,0x2f,0xd0,0x36,0x91,0xcf,0xc5,0x6d, + 0x69,0xb4,0xbf,0x55,0x12,0xda,0xdf,0x25,0x5c,0x56,0x9e,0xb3,0xe1,0x49,0xab,0xca,0x6d,0x67,0x95,0x40, + 0x06,0x2d,0x63,0x5e,0xaf,0x5d,0xfd,0xa6,0xfd,0xfd,0x7f,0x17,0xa2,0x80,0x1b,0x5a,0x3c,0x29,0xbe,0x3c, + 0xca,0x60,0xc4,0xa1,0x87,0xe0,0xc5,0x84,0xfb,0x38,0x0d,0xa2,0xef,0x5b,0x09,0x46,0xd1,0xed,0xdb,0xa2, + 0x73,0x6d,0xbe,0xe5,0x15,0x7d,0x8f,0x35,0xf9,0x59,0x37,0x9c,0x38,0x93,0x32,0x75,0x6c,0x76,0xee,0xe2, + 0x06,0x4c,0x28,0x50,0x19,0x5c,0x8b,0x47,0xe4,0x24,0x08,0xcf,0x62,0x3a,0x75,0xef,0xc6,0x27,0x93,0x21, + 0x07,0x4f,0x3b,0x6b,0x7c,0xe5,0x38,0x3c,0xf4,0xcf,0x8c,0x0d,0x23,0x7d,0x4f,0x77,0x87,0xdd,0x94,0x9f, + 0xc5,0x67,0x6e,0x6f,0x10,0x7d,0xed,0x38,0x80,0xd7,0x2d,0xf6,0x45,0x42,0x88,0x2d,0x23,0xa4,0x56,0x10, + 0x3e,0x3b,0x23,0x3c,0x36,0x0d,0x6f,0xe2,0x24,0xbc,0x66,0x30,0x0f,0xfd,0x55,0x23,0x28,0x6f,0xe3,0xb5, + 0x2b,0x20,0xd2,0x22,0x54,0xa1,0x4d,0xa3,0xb9,0x8a,0x5b,0x34,0x83,0xff,0xfd,0x68,0x49,0xcc,0xac,0x42, + 0x76,0x4f,0xe8,0xf5,0x32,0x34,0xea,0xae,0xd1,0xcd,0x26,0x84,0xb1,0xc5,0xca,0xa2,0x22,0x9e,0x73,0xb5, + 0x12,0x2d,0x41,0x00,0xc1,0xbf,0x00,0x49,0x73,0x8d,0xbd,0x6b,0xb8,0x39,0x03,0x74,0x97,0x6f,0x5d,0xf0, + 0xfd,0x7d,0xb5,0xe2,0x12,0x75,0x52,0xda,0x62,0xc4,0xe7,0xa8,0xc1,0x2c,0x12,0x8d,0x45,0x0a,0x3e,0x9a, + 0x62,0x1d,0xce,0x86,0xd0,0x84,0x67,0x9c,0xea,0x6f,0x0b,0x15,0x0a,0xb5,0x58,0xff,0x28,0xf8,0x64,0x31, + 0x37,0x85,0xf7,0x9b,0x61,0x0e,0xca,0x85,0x48,0xf6,0x87,0xda,0x43,0xb4,0x0e,0xec,0x65,0x7d,0x46,0x9b, + 0x95,0xff,0xa7,0x80,0x14,0x5c,0xcf,0x48,0x7b,0xff,0x2a,0x6c,0x60,0x31,0xa8,0x86,0x25,0x8b,0x2c,0xa9, + 0x1c,0x50,0xf9,0x17,0x57,0xd0,0x61,0x48,0xf2,0x01,0x31,0xc0,0x65,0x52,0x17,0xe5,0x49,0x9c,0xd9,0xe6, + 0xc3,0x8c,0x3e,0xce,0xf4,0x9c,0xce,0x7e,0x18,0x67,0xb6,0x3f,0x44,0xdd,0x98,0x86,0xc3,0x9c,0xce,0x82, + 0x00,0x0e,0x88,0x6e,0x94,0x85,0x83,0xbd,0x4b,0x4e,0xb4,0x4b,0xbf,0x6c,0x4e,0xd4,0xf1,0x4c,0x34,0x91, + 0xf9,0xb4,0x74,0x13,0x00,0x19,0x61,0x33,0x49,0xfb,0x09,0xb4,0x6d,0xcd,0x12,0xf7,0x5e,0x1a,0xd0,0x63, + 0x3d,0x88,0x32,0xc6,0x33,0x44,0xee,0x7a,0xed,0xfd,0x45,0xc2,0x72,0xa3,0x14,0xf1,0x3d,0x12,0x02,0x4a, + 0x13,0x4c,0x16,0xd8,0xeb,0x60,0xa4,0x82,0x66,0x35,0xc0,0x5d,0x07,0x4c,0xa2,0x83,0x31,0x92,0xfc,0x03, + 0x15,0x68,0xed,0xc0,0xe6,0x9d,0xb8,0xde,0x10,0x1a,0x5d,0x93,0x55,0xc8,0x93,0xad,0x55,0x35,0x96,0x9a, + 0x5d,0xf7,0x25,0xf9,0xd8,0x3a,0x6e,0x9e,0xc4,0x7c,0x26,0xe7,0xe2,0x46,0xf4,0x12,0x2c,0xcd,0x9b,0xeb, + 0x45,0x5e,0x45,0x3f,0xbe,0x38,0x9d,0xf5,0x8f,0x68,0xa7,0x50,0x0a,0x3f,0x47,0x8e,0x5f,0xbf,0xeb,0xc4, + 0xd1,0x4b,0x02,0xaf,0xe1,0x02,0x35,0x93,0xd9,0xd2,0x3e,0xd3,0xe6,0x62,0x78,0x21,0xbe,0x7c,0x93,0xf0, + 0x2e,0x09,0xcf,0x92,0x78,0x7c,0x57,0x84,0x67,0x05,0x54,0xa2,0xd2,0x97,0x6f,0x11,0xcc,0x65,0x26,0xf4, + 0x79,0x93,0x42,0x13,0x0b,0x72,0xbd,0x85,0x58,0xd7,0xa7,0x04,0xc1,0xc7,0x5a,0x9e,0x9e,0xbe,0xae,0x40, + 0xba,0x4f,0xe9,0x11,0xb6,0x18,0x7c,0xfb,0x95,0x86,0x28,0x94,0x14,0xe6,0x22,0x14,0x25,0xcc,0x29,0x1c, + 0x60,0x0b,0x4f,0x44,0x30,0x12,0xb2,0x36,0xe5,0x51,0x19,0xb1,0x63,0xa1,0x18,0x60,0xd3,0xfa,0x00,0x6d, + 0xae,0x16,0x36,0x83,0x44,0x51,0x89,0x6c,0x2e,0x4c,0x73,0x01,0x67,0xc6,0x08,0x2b,0x00,0x4d,0x02,0x44, + 0x0b,0xf3,0x10,0x34,0x53,0x93,0x1e,0x5c,0x14,0x38,0x45,0x0a,0x57,0x8d,0x34,0xd3,0xc6,0x34,0xe6,0xf9, + 0x1e,0xd2,0xee,0x9f,0x06,0xe1,0xf3,0xd2,0x9f,0xaa,0xee,0x42,0xed,0x3b,0x9d,0x5e,0x9d,0x17,0x6f,0xe0, + 0xa8,0x90,0x72,0x71,0xf7,0x35,0xc5,0x51,0x33,0x4d,0xab,0x4a,0x84,0xec,0x53,0x82,0x75,0xee,0x78,0xae, + 0x23,0x99,0xa9,0x2a,0x07,0x5e,0xbf,0x08,0xe7,0xa8,0xc4,0x41,0x74,0x50,0x4e,0x64,0x68,0xd1,0xd4,0x84, + 0xf8,0x92,0xef,0x52,0xa7,0x56,0x1a,0xc9,0x88,0xf1,0x2e,0x27,0xa8,0x2e,0x94,0xc9,0x2c,0x2b,0xe4,0xfb, + 0x2b,0xf6,0x91,0x61,0x9a,0x74,0xbf,0xca,0xa5,0xf8,0x93,0xf2,0x8d,0xd5,0x46,0x07,0x02,0x93,0x6f,0x28, + 0x58,0xa2,0x4f,0x2d,0xda,0x9f,0xa2,0x04,0x59,0x2f,0xa8,0xaf,0xd3,0x57,0x16,0xcd,0xaf,0x64,0xaa,0xc5, + 0x05,0x81,0x71,0x32,0x9a,0x0e,0x30,0x75,0x34,0xf0,0x08,0xd2,0x66,0x79,0xa3,0x09,0xa8,0x68,0x5e,0x70, + 0x3d,0x37,0x09,0xcf,0x93,0x18,0xd5,0xe8,0xa0,0x00,0x69,0x01,0xc5,0x37,0x6d,0xc6,0x72,0x96,0x84,0xf6, + 0x04,0x89,0x94,0xc6,0x70,0xa7,0x06,0xed,0x6e,0xea,0xcd,0x68,0x0f,0x5f,0x34,0x6c,0x28,0xee,0x04,0x78, + 0xe9,0xa0,0x6c,0x21,0x7e,0xbe,0x79,0xb3,0xc7,0x85,0x26,0x99,0x39,0x7a,0x15,0x91,0x82,0x74,0x98,0xf0, + 0xe5,0x9c,0x63,0xc6,0x70,0x17,0x2c,0x21,0x06,0x88,0xaf,0xe9,0x2c,0x3c,0x60,0x87,0x78,0x0f,0xb4,0x8a, + 0xfa,0xab,0x64,0xd1,0x8b,0x95,0xdf,0x7d,0x7b,0x1f,0x25,0x84,0xba,0x68,0x75,0x08,0x7d,0x64,0x42,0xd5, + 0x28,0xd1,0xab,0x19,0x63,0x61,0xf6,0x74,0x61,0xf4,0xde,0x37,0x41,0xd3,0x7f,0xa3,0x62,0x87,0x6e,0xf8, + 0x5b,0x5a,0x71,0x1d,0xda,0x93,0x45,0x6f,0x44,0xd5,0x24,0xa1,0x17,0xf5,0x8a,0xa6,0x38,0xe0,0xa0,0xef, + 0x13,0xbd,0x7e,0xa1,0xe2,0x55,0x8c,0x10,0x36,0x8b,0xf2,0xb1,0x21,0xe8,0x07,0x7a,0x00,0x04,0x0f,0x1e, + 0x48,0x91,0xa5,0xb1,0x65,0x40,0xcc,0x4e,0x8e,0xd5,0x4d,0xb4,0xdd,0xa5,0xa6,0xed,0x74,0xdf,0xb5,0xd5, + 0x41,0x6f,0xd4,0x9a,0x80,0xa8,0xf9,0x4e,0x28,0xd9,0x0b,0xb4,0xcb,0x13,0x4b,0x33,0x59,0xac,0x42,0x94, + 0x8b,0xdd,0x45,0xf4,0x7e,0x16,0x40,0x28,0x40,0x5b,0x8e,0x68,0x10,0xa7,0xc7,0x44,0x8d,0x40,0x5e,0xa0, + 0x03,0x5f,0xc3,0xf9,0x34,0x1a,0xf5,0x88,0x42,0x91,0x74,0x9c,0xda,0x87,0x36,0x53,0x0e,0xf1,0x99,0xca, + 0x9c,0x27,0xd8,0xcf,0x36,0x97,0xdf,0xbd,0xf0,0x47,0xce,0xe4,0xaf,0x43,0xf9,0xcb,0x6b,0x9a,0x4e,0x78, + 0xfd,0x69,0x1f,0xe1,0xad,0x33,0x79,0x0a,0xbd,0xfe,0x82,0xde,0x3f,0x3b,0x3c,0x21,0x62,0x56,0xda,0xa7, + 0xee,0xce,0x47,0x5e,0xa4,0x4a,0xd2,0x5c,0x46,0x67,0xff,0x36,0x85,0xe7,0x1c,0x93,0x8c,0xc9,0xbb,0xca, + 0xce,0xa9,0x27,0x20,0x93,0xc4,0x52,0xec,0x01,0xae,0x1b,0x1b,0x33,0x4b,0x49,0xd3,0x18,0xc9,0x03,0xd5, + 0xaf,0x91,0x2f,0x6d,0xe1,0x33,0xb3,0xbe,0xd7,0x11,0xee,0x80,0x9a,0x53,0xb4,0xc7,0x83,0x07,0x37,0xd4, + 0xb0,0xbf,0x1a,0x49,0x58,0xb4,0x05,0xf7,0x6a,0x11,0xf0,0x87,0xb2,0x98,0x46,0x42,0x45,0x43,0x44,0x33, + 0x43,0x23,0xee,0x47,0x82,0x7b,0x2a,0xc0,0x6e,0x7b,0x79,0xb9,0x09,0xc1,0x51,0x49,0x6d,0xf7,0x35,0xa6, + 0x1a,0x93,0x00,0x40,0x22,0x86,0x6d,0x28,0x4b,0xd3,0xd0,0x2a,0xac,0xa9,0x4d,0xca,0x0c,0x74,0x4d,0x9b, + 0x4e,0xa9,0x20,0x3e,0xa5,0x11,0x69,0xc5,0x56,0x9e,0x32,0x00,0x7a,0xef,0x02,0x13,0xc1,0x74,0x0c,0x23, + 0x08,0x5b,0x96,0xc5,0x08,0xd4,0xe3,0xc2,0x48,0x82,0xe5,0x2e,0xb7,0x61,0xe4,0x47,0x4e,0xb5,0xeb,0xcc, + 0xab,0x94,0xf1,0x2a,0x11,0x1f,0x56,0xa8,0xd9,0x4a,0x78,0xb6,0x92,0x80,0xd7,0x0d,0xcb,0x56,0xda,0x65, + 0xfb,0x15,0x6c,0x6a,0xf2,0x76,0x40,0x06,0xd4,0x39,0x66,0x5e,0x77,0xc1,0x5e,0x27,0xf2,0x6a,0xa3,0x20, + 0xc4,0xf5,0xe3,0xf0,0x06,0x05,0x82,0x0c,0x26,0xbf,0xdf,0x71,0xb4,0x41,0x35,0xa2,0x8a,0x1d,0x5b,0x65, + 0xd7,0xa0,0xcb,0x0b,0x9e,0x02,0x74,0x87,0x08,0x9e,0x92,0xb6,0x47,0xe1,0x04,0x6f,0x92,0x0c,0x50,0xb9, + 0xa3,0x7f,0x95,0x3a,0x96,0x13,0x6d,0x9a,0xd6,0xb6,0x95,0x99,0x19,0x02,0x37,0x77,0xe7,0x29,0xa2,0xcf, + 0x13,0x56,0x71,0x11,0x3b,0x80,0x14,0xa8,0xa8,0x09,0x1c,0x5f,0x6f,0x11,0x0c,0xc1,0xf8,0xd1,0xd1,0x06, + 0x48,0x6a,0xb4,0x63,0xac,0x5b,0x34,0x19,0x40,0xf0,0x1b,0x84,0x3f,0xca,0xc9,0x2a,0x61,0xeb,0x4d,0x2c, + 0x3e,0xc5,0xfd,0xac,0x08,0x87,0xeb,0xa9,0x0d,0x7d,0xa2,0x1a,0x13,0xc3,0xdf,0x9d,0x2f,0x56,0x74,0x14, + 0x79,0x4d,0xbd,0x50,0x8f,0x1d,0x72,0x01,0x41,0x9b,0x85,0xd8,0x7b,0xdd,0xd4,0xeb,0xf0,0xad,0xbf,0x8c, + 0x06,0x36,0x37,0x3a,0xcc,0x2c,0x5d,0xdf,0xba,0x88,0xbc,0x11,0x4b,0x0c,0xe9,0xad,0x1b,0x7d,0x89,0xa0, + 0xa6,0x42,0xaf,0xa5,0x04,0x73,0xb2,0x44,0x54,0xf1,0x2d,0xd3,0xdb,0x1b,0xb1,0x6c,0x74,0x77,0x13,0x1b, + 0xe2,0x7f,0x9e,0x13,0x19,0x96,0x5c,0x74,0xf8,0xf1,0xc6,0x35,0x00,0xd3,0x5e,0x28,0xf5,0x4b,0x9e,0x94, + 0x77,0x28,0x77,0x5e,0x84,0x8e,0x72,0x4b,0xf4,0x73,0x1e,0x4e,0x93,0xfc,0xf3,0xf4,0xfb,0x74,0x5e,0xff, + 0xb4,0x4c,0x73,0x14,0xb9,0x2d,0xc2,0xc6,0x74,0x44,0x7f,0xcf,0xc3,0x96,0x02,0x4b,0x04,0xf8,0xb2,0x17, + 0xb6,0x67,0x09,0x11,0xd9,0xb3,0xd5,0xb4,0xdb,0x9e,0xae,0x97,0xea,0x3d,0xad,0x23,0x96,0xa3,0x12,0xc7, + 0xf4,0x82,0xdd,0x70,0x30,0x78,0x5d,0x64,0x39,0xfc,0x00,0xd3,0xeb,0x6d,0xb7,0xb4,0xbd,0x07,0x01,0x18, + 0x00,0x9e,0x7d,0xa3,0x98,0xd0,0x96,0x7a,0x33,0x84,0xcc,0xe4,0x29,0x11,0xb5,0x11,0x50,0x4b,0x76,0xc8, + 0x26,0x8d,0x21,0xae,0xf2,0x1c,0x31,0x22,0xed,0xde,0x94,0x83,0x18,0x13,0xfb,0x0f,0x9b,0x29,0x01,0xd0, + 0x2b,0x50,0xcc,0xfe,0xf8,0xf4,0xf6,0xc1,0xd9,0xa4,0xbf,0x3e,0xf5,0xc7,0xbf,0x05,0x93,0x0f,0x46,0xa7, + 0x01,0xae,0xc3,0xe2,0xcf,0xd6,0xbf,0x99,0x8e,0xe1,0x9a,0xac,0x8f,0x72,0x93,0x7e,0x30,0xa2,0xcc,0x53, + 0xff,0x28,0x7c,0x80,0x2b,0x03,0x53,0x65,0xf8,0xc1,0x83,0xa3,0xf0,0x0d,0xda,0x1b,0x3f,0x39,0xfc,0x57, + 0x72,0xf8,0xfb,0xd9,0x83,0x09,0x57,0xc0,0xbd,0xda,0xe9,0xa0,0x9d,0xb8,0x3e,0x1d,0x1f,0xf0,0x05,0xdb, + 0xe8,0x60,0x42,0xcf,0x1e,0xdf,0xbb,0x8d,0x3c,0x3c,0x13,0xfd,0x8e,0x9f,0x76,0x8d,0x49,0x80,0x2f,0x3c, + 0x05,0x49,0x54,0x4d,0xa3,0x87,0x7f,0xa5,0xa9,0x39,0x8f,0x3e,0x15,0x53,0x93,0xe8,0xe4,0x51,0x28,0xeb, + 0xf4,0xe8,0x61,0xb8,0x5a,0x46,0x8f,0x3e,0x09,0xa1,0x7d,0x1b,0x3d,0xfa,0x6b,0xc8,0xe1,0x72,0xa3,0x47, + 0x9f,0x86,0xb3,0xe2,0x36,0x8f,0x3e,0x3c,0x56,0x51,0xd5,0xa2,0xf1,0x27,0xe1,0x87,0x1f,0x4f,0x36,0xe1, + 0x0b,0xd5,0xe0,0xd8,0xfb,0xa2,0x9a,0xd2,0x04,0xd1,0xff,0x64,0xc9,0x97,0xf0,0xd4,0xbc,0xf7,0x32,0x39, + 0x57,0x71,0x06,0x22,0x4f,0xe9,0x43,0xcb,0x77,0xc6,0x88,0xe5,0xe0,0xbd,0xc0,0xf3,0x79,0x52,0x52,0x71, + 0xfa,0xea,0xd8,0xfb,0x65,0x29,0x27,0x63,0x71,0x4b,0x4f,0x13,0xe9,0xc3,0xd8,0x03,0xac,0xe9,0x74,0x7e, + 0x9e,0xa8,0x5e,0x8d,0xbd,0x9f,0xf1,0xab,0xf3,0xe4,0x65,0x22,0x3d,0x1d,0x7b,0xcf,0xe8,0x47,0x67,0xf1, + 0xf3,0xc4,0xf4,0xdd,0xfb,0x3c,0x99,0x5e,0x71,0x47,0xa8,0xc0,0x33,0x4e,0x94,0x07,0x8f,0x46,0xf4,0x24, + 0xe9,0xb2,0xb6,0x00,0xfe,0xe5,0x68,0xd8,0x4e,0x64,0xc9,0xa1,0xb7,0x09,0x5f,0x26,0x50,0x45,0xa0,0x9d, + 0xa1,0x31,0x1c,0x5e,0xb0,0x55,0x92,0x8b,0x44,0x54,0x58,0x86,0x30,0xc2,0xe0,0x3c,0x53,0x46,0xbd,0x3f, + 0x13,0xd6,0x91,0x8b,0x10,0x1d,0x33,0x8f,0x9e,0x10,0xd8,0x36,0x10,0x5c,0x8f,0xd0,0x6f,0x4f,0xa5,0x34, + 0xa2,0x14,0x42,0xee,0x55,0x97,0x0b,0xae,0xb1,0xa7,0x0b,0x50,0xc2,0x77,0xb8,0x31,0x09,0x39,0xa8,0x6e, + 0x23,0x8f,0x53,0x24,0x33,0x59,0x34,0xb3,0xe8,0x5d,0x32,0x70,0x5b,0xdd,0xc8,0x41,0x82,0x64,0xf1,0x4a, + 0x20,0xeb,0xe0,0x7c,0x55,0xd7,0x45,0x7e,0x00,0x2a,0x50,0x4a,0xf5,0xf6,0xf7,0x75,0x0f,0x25,0x8f,0xfb, + 0x7c,0x8c,0xf6,0x38,0xc0,0xf2,0x1f,0xaa,0x76,0x42,0xd5,0x64,0x6d,0xff,0x48,0xad,0x87,0x9e,0x1b,0x80, + 0xe0,0x27,0xf7,0x66,0x29,0xae,0x47,0x9e,0x04,0x3b,0xfe,0x29,0x27,0x9a,0xc9,0x2b,0xe8,0x3f,0x62,0x88, + 0x78,0x74,0x14,0x7a,0x5e,0xd3,0x26,0x28,0xd5,0xd2,0xff,0x67,0xd4,0x02,0x22,0xd6,0x0c,0x53,0x8e,0x57, + 0x83,0xff,0x5a,0xc2,0x3e,0xca,0xfa,0x71,0xc1,0xa7,0x79,0x82,0xff,0x51,0xd9,0x8f,0xc1,0xc5,0x17,0xc4, + 0xc5,0x47,0x07,0x92,0xa6,0x35,0x69,0xe9,0x2b,0x44,0x77,0x94,0xae,0x13,0x73,0xa6,0x3c,0xb2,0x11,0x31, + 0x4a,0x67,0x33,0x51,0x3c,0x0f,0xc7,0x44,0x1d,0x34,0x8b,0x10,0xf9,0x13,0xe5,0x7d,0x27,0x7a,0xe8,0xb3, + 0xc4,0x48,0xdc,0x75,0x80,0x11,0x47,0x41,0x6a,0xe3,0x6d,0x53,0x69,0x46,0xdf,0xcf,0x1b,0x43,0x11,0x64, + 0x47,0x88,0x74,0x6e,0x77,0xe3,0xa0,0x53,0xfa,0xb6,0xa7,0x34,0xfe,0xde,0x28,0x21,0xb0,0x32,0x4c,0x85, + 0xc2,0xd3,0x55,0x3b,0xa9,0x6c,0x97,0x32,0x92,0x93,0x07,0x22,0x4a,0x16,0x8e,0xc7,0xb0,0x46,0x9a,0x6f, + 0xa6,0xc9,0x2f,0x62,0x66,0x8e,0xc7,0x13,0xb3,0x02,0x15,0xaf,0x80,0x53,0x98,0xea,0xbe,0x4c,0xc6,0xd5, + 0x24,0x28,0xfa,0x31,0x3f,0x10,0xee,0xa2,0xff,0x2c,0x5f,0x85,0x10,0xa7,0x72,0x08,0xa3,0xf4,0x4d,0x22, + 0x1c,0x93,0x8e,0x24,0x1e,0x3b,0x2d,0x0d,0xa9,0x01,0x82,0xa6,0xb1,0x87,0xfd,0x41,0xc3,0xe4,0xad,0x40, + 0xbf,0x04,0xf7,0x88,0xb2,0x45,0x30,0xee,0x4d,0x76,0xc7,0x89,0xdf,0x9b,0x8e,0xd3,0x49,0x9b,0x31,0xb2, + 0x68,0x41,0x01,0x23,0xa3,0x06,0x6c,0x15,0x33,0x9d,0x44,0xa1,0x05,0xda,0x37,0x83,0xe9,0xb0,0x3e,0x9c, + 0x6c,0xf4,0x36,0x02,0x27,0x8f,0x95,0x6b,0xd5,0xae,0x07,0x17,0xa7,0x15,0x29,0x0f,0xae,0xd2,0xbb,0x03, + 0x5c,0xb5,0xf7,0x13,0xfe,0xfc,0x17,0x89,0x6e,0x9c,0xd2,0x82,0x36,0x2a,0x0a,0xc2,0x42,0xda,0x2b,0x82, + 0xd0,0xc2,0x87,0xb4,0x1b,0xdc,0x83,0x06,0xf5,0x69,0x2f,0xa8,0x2a,0x80,0x0a,0x45,0x19,0xe8,0x22,0x04, + 0x74,0x26,0xdb,0x77,0xf2,0x03,0x5b,0xa0,0xdc,0xae,0xaf,0x2d,0x97,0x19,0xb4,0x37,0x56,0x54,0x96,0x8f, + 0x74,0x81,0xae,0xbe,0xf8,0xef,0x6c,0xc9,0x00,0xff,0x17,0x8e,0x10,0x8c,0xce,0xeb,0x2a,0xfd,0x06,0x8a, + 0xa7,0xe1,0xc9,0xb1,0x92,0x83,0x35,0xd7,0x81,0x66,0x0c,0xd1,0x79,0x09,0x29,0x10,0xed,0xa3,0x94,0xbc, + 0x08,0x6c,0x52,0x3a,0x31,0xe2,0x17,0xf8,0x1d,0x6a,0x2b,0xec,0x2b,0xbf,0x59,0x85,0x76,0x74,0x4b,0xc8, + 0x8b,0x9e,0x6c,0xa7,0xe6,0xcc,0xe1,0x98,0xaa,0xdb,0x05,0x4a,0x26,0xea,0x59,0x04,0xf6,0x9a,0xce,0x06, + 0x42,0x38,0x4d,0x1a,0x27,0x1d,0x20,0x28,0xab,0x31,0x4b,0xec,0x3a,0x6b,0xce,0x2e,0xe4,0xac,0x09,0x1b, + 0x04,0x1c,0x54,0xb7,0x1a,0xc6,0xae,0x4c,0xe7,0xd7,0xdc,0x1c,0x14,0xcc,0x3a,0x5b,0x3a,0x57,0x2d,0x1d, + 0xa0,0x29,0x22,0x86,0xfa,0xd0,0x35,0xe9,0xe7,0xba,0x55,0x70,0x25,0xb9,0xdd,0x2a,0xb0,0x02,0xb6,0x1e, + 0x20,0x70,0x8d,0x31,0x12,0xee,0x33,0x52,0x6c,0x6c,0xf0,0x96,0xe2,0xb8,0x9f,0x21,0x12,0x49,0x95,0xf7, + 0x02,0xd5,0xe7,0xe9,0xa2,0x48,0xae,0xa2,0xab,0x4d,0xf8,0x65,0xb3,0x87,0xac,0x5d,0xad,0xc4,0x12,0xc4, + 0x61,0xf1,0x2b,0x54,0xf3,0x68,0xeb,0xe2,0x67,0xbd,0x7e,0x5d,0x4a,0xa2,0xd1,0xe6,0xab,0xe2,0x2f,0x4b, + 0xdf,0x7a,0x66,0xf6,0x4c,0x06,0xd6,0xcf,0x53,0xfa,0xda,0x50,0xe5,0xff,0x2a,0xcd,0xbf,0xcc,0xdb,0xa5, + 0x95,0x1a,0x9e,0x29,0x67,0x2f,0x10,0x6e,0x7c,0x36,0x33,0x7b,0x9d,0x88,0xed,0xba,0x4e,0x0f,0x8c,0x73, + 0xea,0x06,0x75,0xbb,0x5e,0xff,0x24,0x66,0x39,0xd7,0xc9,0xdd,0x39,0xfc,0xde,0xaa,0x6b,0xc6,0x0e,0xd4, + 0xe1,0xde,0x0e,0xac,0xd7,0x7b,0xb5,0xf6,0x76,0x2a,0x3d,0x20,0x12,0x37,0xfd,0x66,0x16,0x1f,0xcb,0x9b, + 0x10,0xba,0x3f,0xb3,0xce,0xee,0x97,0x2c,0xbb,0x0e,0xb5,0x91,0x05,0x2e,0x23,0xec,0xf1,0xf6,0x63,0xe3, + 0x78,0x83,0x52,0xd3,0x97,0x89,0x6f,0xdc,0xb8,0xdd,0x2b,0x1b,0x1e,0xef,0x36,0xab,0x2f,0xc5,0x44,0xe6, + 0xde,0xec,0x34,0x22,0x61,0xbf,0x47,0xed,0x3c,0x88,0x0e,0xce,0xa6,0x4a,0xe7,0xe4,0x40,0x4e,0xa5,0xd6, + 0xf7,0xa3,0xbc,0xdd,0x23,0x47,0x30,0xfd,0x7d,0x62,0x44,0xb6,0x5a,0xe6,0xcb,0x1a,0x05,0xe8,0x2b,0xff, + 0xc7,0xf5,0xbe,0x72,0x9f,0x48,0x6f,0xa2,0xa9,0xc8,0x8d,0x15,0x45,0x2d,0x3a,0x1b,0xfc,0xfa,0x5c,0x0b, + 0x2f,0x35,0x26,0x7b,0x2e,0x0d,0xcb,0xb9,0x81,0xf9,0xe1,0xc2,0x78,0xd8,0x2a,0xfa,0x8d,0x5b,0x94,0x80, + 0x80,0x4b,0xd2,0xef,0x56,0xc1,0x1f,0xdc,0x82,0xd9,0x9c,0xcb,0x65,0xf3,0xad,0x62,0x3f,0xdb,0x62,0xf6, + 0xea,0x7c,0xaf,0xa5,0xae,0xa0,0x23,0x44,0xcb,0xb0,0xc4,0xe9,0x88,0xba,0xa9,0x96,0xa5,0xd5,0xf7,0xc0, + 0x71,0x1d,0xce,0x62,0x62,0x69,0xd3,0xc0,0x5c,0x5a,0xaf,0xd7,0x8e,0x72,0x45,0xb8,0x8c,0x5f,0x41,0xba, + 0x39,0x87,0x73,0x2b,0xef,0xac,0x66,0x79,0x8b,0xbf,0x64,0x0e,0x63,0x89,0xcd,0x13,0xde,0xc4,0x0b,0xe1, + 0xdd,0xd7,0xeb,0x85,0x26,0x3e,0x98,0x19,0x19,0xfd,0x3b,0xf1,0x7d,0x93,0x07,0x76,0x48,0x31,0x4b,0xcd, + 0x62,0x92,0xd5,0x7d,0x6a,0xc9,0xed,0xc3,0xb9,0x8a,0x32,0x16,0x84,0x0d,0xfc,0x6b,0xee,0x22,0x52,0xdd, + 0x1e,0x2c,0x44,0x38,0x36,0x4d,0x78,0xad,0x3b,0xe5,0x28,0x5d,0x10,0x59,0xbd,0x77,0x43,0xb3,0x7a,0xbd, + 0x5e,0x2f,0xd7,0x6b,0xff,0x92,0x0e,0x34,0xe6,0xaf,0x3d,0x71,0x57,0xcf,0xef,0x5e,0xff,0x86,0xbd,0x93, + 0xe1,0xcd,0xbf,0x81,0x6b,0x04,0x5d,0x86,0x51,0xd0,0x35,0xcd,0x02,0xb0,0x85,0x20,0xec,0xb6,0x9c,0x34, + 0x71,0x9d,0xe2,0xc1,0x03,0x5e,0x08,0x63,0x59,0x4c,0x6d,0xf3,0xd2,0x5e,0x7c,0x42,0xd1,0xb4,0x42,0x56, + 0x0b,0xe6,0x3e,0xa7,0x99,0x9d,0xfa,0x8a,0x52,0xeb,0x7f,0xce,0x19,0x01,0x4b,0xac,0xe8,0x75,0xa5,0x51, + 0x94,0x13,0xe3,0x73,0x08,0x9d,0x06,0x66,0x0d,0x19,0x80,0x4b,0x44,0x51,0x6f,0x6d,0x73,0x89,0xa0,0xe9, + 0x97,0xf1,0xe7,0x02,0x2f,0xc1,0x50,0x3b,0x44,0xdf,0xd1,0x19,0x76,0x90,0x4b,0x87,0x95,0x74,0xe6,0x00, + 0xc7,0x9d,0xa0,0x61,0x39,0x05,0xa9,0x27,0x25,0xf7,0xc4,0xcf,0xf8,0x25,0x33,0x98,0xd3,0x06,0x69,0x3c, + 0x1e,0x16,0x8f,0x1d,0xbb,0x23,0xe3,0x48,0xa5,0xe8,0xf7,0x83,0x3c,0x76,0x73,0x88,0x50,0xe5,0xed,0x6d, + 0x94,0xd0,0x25,0x6c,0x6d,0x97,0xf4,0x5a,0x17,0x91,0x2e,0x42,0x7e,0x25,0x0a,0x4e,0xce,0xd1,0xfb,0xdc, + 0x5c,0xb3,0xb5,0xb6,0xab,0xb6,0xb8,0xc4,0xc7,0x69,0x96,0xac,0x12,0x33,0x4f,0x19,0x1b,0x26,0x29,0x44, + 0x00,0x83,0xa9,0x16,0x1e,0x11,0x62,0xa8,0x13,0x3f,0x29,0xbc,0x02,0x7c,0xc4,0x2e,0xb7,0xa9,0x95,0x3c, + 0xf4,0xce,0xae,0x7d,0x0e,0x0c,0xd8,0x6e,0xc7,0x78,0x5d,0xeb,0x1b,0xad,0x6d,0x56,0xe4,0xda,0x3a,0x83, + 0xcc,0x80,0xbe,0x71,0xf1,0x56,0x03,0xab,0xe0,0xf6,0xe4,0x3d,0xb1,0x43,0xe3,0x5b,0xae,0xa7,0x6a,0xcf, + 0xe3,0x9b,0x2a,0x65,0xd5,0x5e,0x0e,0x55,0xd4,0x66,0x28,0x8b,0xdd,0xe7,0x6c,0x76,0x79,0xa7,0x3c,0x76, + 0x96,0x26,0x0c,0x8b,0x71,0xcd,0x3b,0xf2,0xce,0x0a,0xdf,0x99,0x01,0x3e,0xfa,0xe5,0x84,0xe8,0xf7,0xf9, + 0x35,0x67,0x91,0xa1,0x2a,0xb0,0x69,0x22,0x4c,0x27,0x96,0x52,0x62,0xdd,0x54,0x99,0x65,0x71,0x06,0x84, + 0x81,0xba,0xd6,0x66,0xc6,0x5b,0x06,0xd1,0xa0,0x5a,0x61,0xce,0xd8,0xcb,0x13,0x50,0x9c,0x41,0x02,0xa6, + 0xcc,0x6b,0x15,0x17,0xe9,0x1b,0xf0,0x2a,0x06,0xe9,0x1b,0xc2,0x59,0xd4,0x6f,0x7e,0x82,0x04,0x9b,0x76, + 0x9b,0x5f,0x0c,0xf8,0x96,0x86,0x46,0x01,0xbd,0x75,0xf3,0x0d,0x5a,0x0f,0x27,0xd3,0x1e,0x68,0xee,0xfd, + 0x62,0x39,0x2a,0xe5,0x7c,0x92,0xf5,0x19,0x7d,0xa3,0x8e,0x2b,0x75,0x6c,0x41,0x3b,0xa8,0x79,0x9f,0xab, + 0xef,0x1e,0xeb,0x96,0x0b,0xea,0x1f,0x9c,0x79,0xd0,0x3b,0x94,0x56,0x82,0xbd,0xb8,0xf0,0x05,0x73,0x08, + 0xb4,0x62,0xee,0xa8,0x45,0xb4,0x63,0xdf,0x71,0x77,0x57,0x39,0x05,0x1e,0xb6,0x0a,0x3c,0x8c,0x5c,0xdd, + 0x7d,0xf7,0xd8,0x61,0x85,0x9b,0x12,0x33,0xc7,0xd8,0xcd,0x57,0xb7,0x81,0xf6,0xe2,0x85,0x26,0x8b,0x30, + 0x52,0x45,0x69,0xce,0xc1,0x4c,0x08,0xe7,0xfb,0x24,0xd0,0xd0,0xef,0xc2,0x2c,0xe1,0x99,0x2c,0xb4,0x16, + 0x03,0xf7,0xb0,0xb0,0xed,0x32,0x04,0x76,0x29,0x17,0x80,0x69,0xfb,0xfe,0x2a,0xf6,0x9c,0x0b,0xaf,0xb1, + 0x17,0x4e,0xb5,0x97,0xd9,0x32,0x86,0x39,0x92,0xf1,0x8e,0x5d,0x3e,0xce,0x86,0x25,0x2c,0x53,0x8b,0x98, + 0x5d,0x7c,0x27,0x7a,0xb3,0x23,0x0c,0x95,0x6d,0x62,0x5c,0x88,0x36,0xe8,0x70,0xc5,0xf1,0xe7,0xf7,0xf6, + 0x56,0xf0,0xb3,0x1c,0x8a,0x75,0x85,0x52,0xfe,0x61,0x7f,0xba,0x15,0x31,0xc8,0xca,0x2d,0x05,0xb1,0xc9, + 0x5c,0x89,0x78,0x65,0xa3,0x9f,0xc1,0x89,0xea,0x05,0x37,0xe1,0x7d,0x5f,0x5d,0x26,0xd1,0x84,0xcb,0xb1, + 0xc4,0xd0,0xa5,0x89,0xe0,0x90,0xc0,0x0c,0x46,0x01,0xb0,0xb4,0xde,0xa2,0xbc,0x55,0xb1,0x40,0xf0,0x69, + 0x31,0xa0,0xc3,0x9a,0x5a,0x81,0xde,0x87,0x87,0x57,0x57,0xf5,0x63,0xc4,0xb9,0x7c,0x01,0xcf,0x4f,0xf8, + 0xb4,0xa9,0x67,0x48,0x5a,0xaa,0x6d,0x15,0x44,0x3a,0x3e,0x67,0x99,0x55,0xc1,0x35,0x1b,0x88,0x24,0xf5, + 0x4d,0xf9,0xa8,0x6a,0xb1,0xf5,0x9e,0x32,0xfe,0x22,0x20,0xc6,0x8a,0xb2,0xb9,0x49,0xdd,0x8f,0x73,0x31, + 0xe6,0xc8,0x94,0xc3,0x58,0xd8,0x70,0xc0,0x35,0x04,0xc4,0x02,0xf4,0xab,0x33,0xcb,0x74,0xae,0x32,0xe9, + 0x89,0x33,0xe9,0xd7,0xc9,0x64,0x6c,0x64,0x4b,0xf0,0x6b,0x04,0x34,0x28,0x25,0x14,0x62,0xa6,0x4c,0x7a, + 0x72,0xd2,0x1d,0xe5,0x15,0xe4,0x1e,0x40,0x67,0x98,0xe6,0x84,0xa3,0xbd,0x63,0x99,0x0e,0xac,0x1a,0x9c, + 0x78,0xb9,0x4e,0x1d,0x02,0xdb,0x80,0x0c,0x34,0x84,0xfb,0xb1,0x9b,0x45,0x90,0xe3,0x67,0xa2,0x6b,0x2a, + 0x04,0x83,0xfa,0x3a,0x3f,0x53,0xf7,0x89,0x86,0x51,0x19,0x81,0x1e,0x04,0x1b,0xc9,0xab,0x62,0xda,0x9f, + 0xb3,0x2e,0xc9,0x79,0xa6,0x24,0x33,0x5f,0xaa,0xe8,0x4f,0xc8,0x96,0x04,0xd8,0xe0,0xe8,0x22,0x22,0xf2, + 0xf9,0xa2,0x5d,0xd0,0x4d,0xc6,0xa9,0xac,0x8b,0x5b,0xda,0x0e,0xb1,0x6b,0xac,0xce,0xa2,0xb6,0xa9,0xa1, + 0xf7,0x48,0xe4,0x34,0xba,0x9c,0xa9,0xe9,0x2a,0x1f,0xa3,0xb0,0xb3,0x37,0xf3,0xd0,0xfa,0x8d,0x07,0x8e, + 0x20,0xce,0x41,0x4c,0xe3,0x69,0x5d,0x2b,0xda,0xa0,0xdb,0x6e,0xe1,0x64,0x93,0xe7,0x96,0x4f,0xed,0xd5, + 0xdb,0x6a,0x9a,0x20,0x3f,0xb3,0x39,0xfe,0x73,0x9b,0xbf,0x80,0xfa,0xdf,0xb0,0x1d,0x1e,0x9f,0x5d,0xa2, + 0x21,0x11,0x58,0xf2,0xc1,0x1c,0x49,0x85,0x1c,0x49,0x85,0x3b,0x3e,0xe7,0x05,0xee,0xd1,0x92,0xf5,0xba, + 0x90,0x13,0x8b,0x7d,0x1e,0xcb,0x71,0x55,0xf0,0xc1,0xe8,0x67,0xb1,0x28,0x39,0xe8,0x78,0xd1,0x42,0x5b, + 0xc4,0xad,0x31,0xed,0x90,0x35,0x7d,0x9d,0xf8,0x18,0x16,0x3b,0x46,0xb3,0x02,0x27,0xcd,0x8d,0x3b,0xb3, + 0x18,0x9d,0xad,0xfc,0x31,0xd3,0x6c,0x13,0x45,0x21,0x31,0xe5,0x69,0x4f,0x74,0x1a,0x1c,0xdc,0x68,0xa9, + 0x74,0x66,0x4b,0x71,0x03,0xda,0xa9,0xbc,0xfd,0xd1,0xa3,0x4f,0x4e,0xd8,0xc5,0x84,0xd6,0x67,0x1f,0x06, + 0x75,0xfc,0xe8,0xd1,0x07,0xf5,0x6f,0x12,0xe8,0x1c,0x8c,0xe3,0x93,0xda,0x3f,0x3c,0x74,0x8c,0x81,0x3f, + 0xfb,0xec,0xb3,0xe3,0x8d,0x9f,0x04,0x86,0x7c,0xa0,0xdd,0xda,0x58,0xe7,0x30,0x35,0x70,0xa3,0x5c,0x48, + 0x32,0x90,0x88,0x0e,0xc1,0xbd,0x12,0x7a,0xf4,0x55,0xa6,0x61,0xb4,0x71,0x27,0x7f,0x9e,0x4c,0xaf,0x9c, + 0x2c,0x9d,0x44,0xb9,0x0d,0xb4,0xa6,0xf3,0x6d,0xa2,0xa0,0x96,0xb0,0xad,0xa6,0xaa,0x55,0x98,0xbb,0xce, + 0x83,0xcc,0xc6,0x37,0x10,0x17,0x3c,0xb9,0xc4,0x29,0xcc,0xc5,0x0f,0xa4,0x82,0x4b,0x62,0x26,0x09,0x4a, + 0x35,0x1b,0x6e,0xd6,0xa3,0xf9,0x99,0xe8,0xbe,0xed,0x18,0x22,0x60,0xc1,0xa6,0xa4,0xa2,0x6f,0x6d,0xe6, + 0x71,0xcc,0x72,0xcf,0x16,0xbd,0xb6,0x43,0x82,0xd6,0x68,0x34,0x65,0xe1,0x4f,0x53,0x24,0x49,0x09,0x1b, + 0x42,0xa2,0x84,0x31,0x0b,0x99,0x6a,0x96,0xbf,0x1a,0x44,0x0b,0xfd,0x7b,0x2d,0x77,0x3c,0x0a,0x1f,0x1c, + 0x85,0x9e,0xba,0xe1,0xcd,0x1a,0xfc,0x90,0x28,0x6b,0xb1,0x3c,0xa4,0xee,0x1f,0x84,0x0d,0x24,0x27,0x48, + 0xc6,0x2d,0xad,0x2e,0x66,0x33,0x23,0x5c,0xe1,0xea,0xf6,0x15,0xbe,0xb2,0x55,0xee,0xf7,0x36,0xd8,0x82, + 0x29,0x62,0xd2,0xb8,0x9c,0xe3,0x55,0xea,0x17,0x97,0xd8,0x11,0x77,0xbc,0x35,0xbb,0xe2,0x6d,0x31,0x92, + 0xe0,0x3f,0x8c,0xfa,0x35,0xa3,0x89,0x5f,0x12,0xd7,0x53,0xdf,0xd7,0x49,0xf3,0xec,0xb7,0x4c,0x99,0x63, + 0x14,0x30,0xd9,0xc5,0xf3,0xc2,0xc0,0xb7,0x49,0xd9,0x86,0x5f,0x43,0x9f,0x9a,0x39,0xb2,0xf7,0xe5,0xa8, + 0xa9,0x8a,0xf5,0xa7,0x69,0xb5,0xbc,0x81,0x44,0xc0,0xe0,0x99,0xb8,0x31,0x56,0x47,0x1c,0x22,0x77,0x87, + 0x0c,0x2a,0x9b,0x24,0x50,0x87,0x75,0x84,0xf4,0x3d,0x67,0x0a,0x13,0xcf,0x42,0x60,0xfa,0x96,0x65,0x59, + 0x11,0x6c,0xcd,0x09,0x52,0x67,0x58,0xf2,0xc8,0xbe,0x45,0x5d,0x45,0x34,0xed,0x2c,0xd0,0x51,0xc4,0xa5, + 0xf0,0xa1,0x74,0xb6,0xbc,0xb9,0xe3,0x23,0x51,0x53,0x74,0xde,0xbd,0x1c,0xc0,0x7e,0x93,0xe9,0x77,0xd8, + 0x77,0x20,0x80,0x39,0x6f,0x55,0x22,0xe6,0x1a,0xe2,0xca,0x57,0x86,0xee,0x04,0x55,0xad,0x11,0xb0,0xeb, + 0x6d,0xbd,0x68,0xb8,0xcb,0x4a,0xe2,0x42,0xed,0x4f,0x40,0x43,0x61,0x04,0xc3,0x89,0xac,0x40,0x43,0x14, + 0x91,0x88,0x22,0xbc,0x40,0x8a,0x7e,0xd7,0x51,0xa1,0xf2,0xd1,0x16,0xab,0x9a,0xd0,0x6c,0x85,0x27,0x18, + 0xe3,0xb1,0x67,0xe9,0x55,0x0f,0x68,0x55,0xc8,0xcd,0x04,0xe4,0x66,0xa5,0xbc,0x2f,0xe7,0xa3,0x26,0x1a, + 0x71,0x42,0xf0,0x84,0xfa,0xec,0x77,0x0e,0x7c,0x4d,0x55,0xc3,0xe5,0x9a,0xea,0x7d,0xa6,0x50,0x0b,0xbd, + 0xfe,0x4a,0x1b,0x8a,0x66,0x3f,0x6b,0x10,0xeb,0x08,0x04,0xd6,0x24,0xde,0x77,0xb8,0x45,0xfd,0x15,0x5a, + 0x86,0xc2,0x26,0x6c,0x02,0x30,0x4f,0x0f,0xd5,0x49,0xe4,0xd7,0xff,0x49,0xb3,0xb5,0xdb,0x2a,0xab,0x03, + 0x9e,0x58,0xf7,0x4a,0xf9,0xc6,0x07,0xf9,0xda,0x9c,0xc2,0x20,0x82,0xf7,0x79,0xe2,0x83,0x7e,0x4f,0xf4, + 0xec,0x8d,0x41,0x8e,0xee,0x38,0xe4,0x56,0xca,0xf3,0x67,0xf3,0x46,0xa5,0xef,0x4f,0x99,0x7b,0x98,0xe2, + 0x44,0x71,0xa4,0x68,0xbf,0xba,0xb8,0xc0,0x58,0x17,0x29,0x4a,0xa1,0xcb,0x64,0xa6,0x89,0x22,0x6c,0x43, + 0xbf,0x27,0x8d,0xdb,0x73,0x8b,0x56,0x46,0x0a,0xe2,0xa3,0x47,0x0e,0xa6,0x71,0x1c,0x6f,0x8d,0x10,0x31, + 0x29,0x04,0x8f,0xb7,0x2d,0xc5,0x16,0x17,0xe4,0x8c,0x06,0x23,0xef,0xec,0x06,0x2c,0xf8,0x43,0xa8,0xed, + 0xb3,0x45,0x0e,0x37,0x9e,0x3b,0x07,0x54,0xf4,0x5d,0xe2,0xb7,0x05,0xe5,0x3a,0x62,0x94,0x95,0xec,0x84, + 0xce,0xa5,0xd6,0xbf,0x93,0xe6,0x51,0x0d,0x2f,0x29,0xc2,0x42,0xbf,0x0d,0xd4,0x68,0xdb,0x7e,0x07,0x5c, + 0x2d,0x84,0xfe,0xd0,0x20,0xed,0x51,0xde,0x87,0x22,0x0b,0x98,0x08,0x4c,0x35,0x9f,0x10,0x51,0x2d,0x77, + 0x73,0x99,0x66,0x3a,0xa2,0x03,0xc9,0xb0,0x27,0x07,0x2e,0xe8,0xea,0xad,0x0b,0x3a,0x30,0xe3,0x33,0xd1, + 0x1a,0xc1,0xf5,0x5c,0xbe,0x7d,0x3d,0xe7,0x60,0xf4,0xef,0xdc,0x55,0xb4,0x37,0x60,0x47,0xa7,0xab,0x87, + 0xc7,0x0f,0x3f,0x39,0xba,0x80,0x5f,0x00,0x7e,0xf4,0x82,0x56,0xe6,0xa7,0x36,0xf3,0x53,0xcf,0xc1,0xed, + 0xdf,0x26,0x4a,0xb2,0x5f,0xde,0x19,0x5f,0x12,0x90,0xf2,0x1a,0xb1,0x7f,0xb0,0x99,0x8a,0x3a,0xbe,0xf5, + 0x35,0x21,0x42,0x95,0xfb,0xb4,0x2c,0xa3,0x34,0x9c,0x42,0xb9,0x16,0xf6,0x82,0x57,0x9b,0x8d,0x6b,0xf4, + 0x7a,0x7a,0x7a,0xee,0xf5,0x89,0xb6,0x0e,0xb3,0x39,0xcc,0x9b,0xc3,0x45,0x5a,0xc3,0x2f,0x04,0xd1,0x56, + 0x77,0xc4,0x6b,0x95,0x44,0xa2,0x10,0x29,0x05,0x69,0x58,0x08,0xe1,0x4c,0x98,0xdc,0x26,0x59,0x1d,0xf2, + 0xc6,0x0b,0xf9,0x83,0x2a,0x54,0x0d,0xfb,0xe9,0x08,0xab,0xd5,0x32,0x85,0x80,0xbe,0x2c,0x6e,0xc3,0x5b, + 0x42,0x6f,0x69,0x78,0x07,0x9b,0x6a,0x75,0xc5,0x0e,0x82,0xa6,0x28,0xeb,0x30,0xbb,0xe6,0x1f,0xe9,0x66, + 0x58,0x51,0xbb,0xd4,0x8c,0x42,0xa3,0x54,0x86,0x0e,0xc9,0x59,0x15,0xce,0xe1,0x8d,0x73,0x71,0x87,0x86, + 0xeb,0x2c,0x87,0x04,0x32,0x3d,0x5f,0x5d,0x5c,0xc0,0x08,0x5b,0x8d,0x19,0x4c,0x1c,0x5b,0x4d,0x56,0x9e, + 0x09,0xd8,0xed,0xe9,0x6d,0x46,0xc3,0x5a,0x63,0x68,0x41,0x9f,0x47,0x28,0x87,0xd2,0x57,0x49,0xf8,0x8f, + 0x24,0xfc,0x57,0x12,0xfb,0x5f,0x25,0x5d,0xf4,0x11,0xdb,0xc5,0x39,0xe9,0xf3,0xe0,0xfe,0x73,0x22,0xa4, + 0xec,0xd5,0xc3,0xef,0x78,0xd3,0xda,0x32,0x44,0xb9,0x87,0xff,0x46,0x82,0xa3,0x0a,0x83,0xb4,0xef,0x90, + 0xd6,0x52,0x75,0x41,0xfa,0xbc,0x79,0x65,0x10,0x7e,0x5d,0xe0,0x32,0x62,0xde,0x71,0x75,0xf1,0xa3,0x5c, + 0x5d,0xbc,0x6a,0x17,0x68,0x2b,0x4b,0x53,0x99,0x5f,0xb7,0xca,0x14,0x55,0xdd,0x2e,0xf4,0x0b,0x7a,0x44, + 0x6b,0x90,0x5d,0x43,0x54,0x51,0xf1,0x5c,0xb0,0xcc,0x0f,0x17,0x0a,0x95,0x44,0x6a,0x9d,0x83,0x1d,0xe4, + 0xce,0xfd,0x7a,0x49,0xa5,0xb8,0xd7,0xe1,0x14,0x83,0xb7,0xaf,0x08,0xea,0x8a,0xf0,0x19,0x27,0x56,0x4e, + 0x73,0xa1,0x6e,0xa1,0x61,0xff,0x8b,0xb0,0xa0,0xa9,0x55,0x3e,0x86,0xea,0x7d,0xcc,0x16,0x9d,0x73,0x84, + 0x6b,0x18,0x98,0xd8,0x9c,0x84,0x31,0x28,0x73,0x26,0x0c,0x44,0xaa,0x34,0x74,0x51,0x15,0x4f,0x08,0xd8, + 0x98,0xf8,0x33,0x51,0xed,0xd5,0x99,0x4a,0xc3,0x37,0x25,0xf0,0x5d,0x6a,0x0a,0xe4,0x3c,0x9b,0xcd,0xd2, + 0x5c,0x6c,0x9b,0x5a,0x4d,0xc0,0x4c,0xd4,0xdf,0x65,0xbb,0x69,0xb0,0x48,0x7d,0x78,0x38,0xb4,0x11,0x10, + 0x60,0x38,0x55,0x3b,0x91,0x77,0x39,0xa8,0x17,0x8d,0xa6,0x80,0x07,0xbf,0x8d,0xbf,0x74,0xfc,0x92,0x22, + 0x6a,0x1c,0xfa,0x4e,0xfd,0x2c,0xa5,0x9f,0x79,0xb3,0x9f,0xf9,0xc6,0x06,0x59,0x70,0x69,0x1d,0xa3,0xb6, + 0xbf,0x83,0x82,0x18,0xd2,0x67,0x9a,0x96,0x7e,0xcb,0xb6,0xa5,0x5f,0x40,0xdd,0x8a,0xd3,0x8d,0xed,0x8e, + 0x8e,0x51,0x67,0x14,0xed,0xe3,0xe5,0x46,0x01,0xf3,0x30,0x7d,0x5f,0xc3,0x3d,0xe3,0x7b,0xd9,0xf4,0x95, + 0x66,0xba,0x50,0xad,0xb2,0x94,0x00,0x4b,0x1f,0x10,0xfc,0x9b,0x80,0x01,0x3e,0xe0,0xc0,0x0a,0x02,0x24, + 0xd6,0xe5,0xaf,0xc6,0x1e,0x0e,0xb1,0xb7,0x7e,0x2d,0x10,0xdb,0x12,0xcb,0xdf,0x08,0x7b,0x26,0x72,0xc5, + 0x6b,0xc3,0x8c,0xd6,0xc3,0x46,0x9c,0xb6,0xf1,0x56,0x70,0xb6,0xc3,0x13,0x28,0xea,0xe3,0xb8,0xaa,0xd5, + 0x71,0xe5,0xf5,0xbc,0x58,0x07,0xcb,0x18,0x06,0x4e,0x05,0x59,0xae,0xb6,0xe1,0x5d,0x16,0x2e,0x2d,0x04, + 0xa4,0x10,0x75,0x03,0xf0,0xaf,0xe3,0xe5,0xc0,0x2a,0x82,0x87,0x17,0xf4,0x6a,0x55,0xdc,0xb0,0x61,0xef, + 0x62,0x38,0x7d,0x6f,0xea,0xb5,0x21,0x3d,0xc1,0x58,0x05,0x74,0xd2,0x38,0x0b,0x89,0x30,0xfb,0xb2,0xf0, + 0x2f,0x03,0xcd,0x3e,0x1d,0xd3,0x79,0x74,0xd9,0x72,0xa5,0x54,0xc7,0x3f,0x16,0xe3,0x02,0x46,0x04,0xfc, + 0xdb,0x70,0x3b,0xe0,0x8f,0x4f,0x4f,0xab,0x53,0x31,0x74,0xf7,0x1f,0x1f,0xf1,0x41,0x25,0xfe,0x07,0x02, + 0x42,0x68,0x19,0xfb,0xc5,0x89,0x33,0x6b,0x72,0x17,0xba,0x98,0xcb,0x5a,0x78,0x73,0x90,0x7b,0x65,0xdc, + 0x4c,0xfd,0x29,0x58,0xfb,0xb4,0x10,0x57,0x04,0xec,0xb1,0x12,0xce,0xd7,0x5c,0xb6,0x88,0xbd,0x17,0x58, + 0x1b,0xfb,0xc3,0xc3,0xcf,0x70,0xf6,0x3c,0x38,0x71,0xcf,0x24,0x78,0x35,0x78,0xfa,0xec,0xc9,0xcb,0x27, + 0xa7,0x63,0x5b,0x72,0x32,0x31,0x25,0xe1,0x14,0x00,0x24,0x92,0x84,0x61,0x32,0xa6,0x2d,0x94,0xbe,0x64, + 0x5e,0x9a,0xe8,0x30,0xf5,0x00,0x63,0x70,0x0f,0x4a,0xde,0x09,0x0e,0x65,0xb5,0xb0,0xa6,0xc3,0x59,0x9c, + 0x87,0x2f,0xa8,0xa1,0xe4,0xb0,0x0c,0x93,0x60,0xe3,0x44,0x8b,0xca,0xac,0x0b,0xa9,0xc7,0xc2,0x87,0x1c, + 0x8b,0x4a,0x07,0x3d,0x7d,0xa1,0x6c,0x6b,0x74,0xb0,0xd9,0xa9,0x5b,0xfa,0xf0,0xf0,0xf4,0xcd,0xa3,0x54, + 0x55,0x79,0x1c,0x4f,0x83,0xfb,0x25,0x9c,0x9a,0xae,0x16,0xb3,0xef,0xd2,0x74,0xa9,0x88,0x1d,0xee,0x9e, + 0x8a,0x52,0x4a,0xfc,0xfc,0xea,0x5c,0x48,0x15,0xff,0x43,0x04,0x51,0x4e,0xc2,0xa4,0x3f,0xed,0x3f,0x0a, + 0xc2,0x07,0x3e,0x7e,0x86,0xfa,0x28,0xda,0xc0,0x99,0xdf,0xeb,0xd6,0xb7,0x57,0xee,0xb7,0x27,0x9f,0x99, + 0xef,0xae,0x82,0xfb,0x07,0xfe,0xaa,0xff,0xd0,0xad,0x2e,0x76,0x0f,0x99,0xb2,0xde,0x79,0x26,0x36,0x59, + 0x0b,0x14,0x84,0xba,0xba,0x66,0x05,0x6c,0x05,0x51,0x7b,0xd5,0xe5,0x7f,0x92,0xf2,0x73,0xed,0x27,0x30, + 0x19,0x3e,0xf0,0xe7,0x4e,0x3d,0x9a,0xc8,0xf9,0xf8,0x64,0x12,0xce,0xe0,0xb5,0xb4,0xd1,0xc6,0x59,0xfc, + 0x46,0xe2,0x89,0x9f,0x05,0xf7,0x4f,0xe9,0x1f,0x16,0xef,0x4c,0x07,0x64,0x21,0xd6,0x64,0x7f,0xff,0x01, + 0xad,0x5d,0xab,0xa3,0xe7,0x3a,0x52,0xcf,0xad,0x7e,0xb8,0x52,0x0f,0x6a,0x84,0x95,0xec,0xad,0xdb,0x58, + 0xab,0x2c,0x55,0xc1,0x70,0x8f,0x7a,0x29,0xf3,0x73,0x8b,0x00,0x57,0xce,0xf3,0x17,0xce,0xf3,0x6b,0xe7, + 0xd9,0xbf,0x8a,0x6f,0xdd,0xa5,0x0e,0x09,0x88,0x1e,0x1f,0x07,0xc3,0xa0,0xea,0xc7,0x57,0x61,0xa3,0xf1, + 0xf3,0xd8,0x5d,0xaa,0xe3,0xb0,0x0a,0x36,0x15,0xab,0x8e,0x53,0x46,0x10,0x9e,0x63,0x14,0xe7,0x66,0x32, + 0x0c,0x1c,0x9e,0x5b,0x50,0x3c,0x27,0x38,0xd3,0x25,0x42,0xf1,0xcd,0x98,0xe1,0x0c,0x00,0x88,0xb4,0xa0, + 0x36,0xd3,0x01,0xd5,0x1a,0x11,0x07,0x83,0x7b,0x82,0x62,0x28,0x4e,0xbb,0x1d,0x71,0x03,0x2d,0xbf,0x31, + 0x4e,0x11,0xf5,0xaa,0x3d,0x91,0x55,0x6b,0x38,0x55,0xbe,0x57,0x53,0x1f,0xc1,0x6d,0x94,0x28,0x9a,0x46, + 0x38,0x91,0xa1,0x6b,0x1a,0x25,0x1b,0x46,0xae,0x0f,0xc4,0x05,0xa2,0x86,0x89,0x3d,0x16,0x27,0x48,0x93, + 0x2f,0x0b,0xc5,0xb1,0xe8,0x84,0x37,0x05,0xf3,0x41,0xf2,0xf2,0x80,0x72,0x87,0x01,0xdf,0xd8,0x97,0x75, + 0x9c,0x10,0x10,0xe7,0x2e,0x90,0xd0,0x91,0x95,0x13,0xec,0x84,0xa5,0x88,0x09,0x54,0xc8,0xe9,0x86,0xfe, + 0x4c,0xaf,0x1c,0xac,0x80,0x0e,0x5f,0x10,0x85,0x77,0xc9,0xf6,0x80,0xd4,0x48,0xed,0x36,0x52,0xea,0x46, + 0x9c,0xe9,0x79,0xda,0xb2,0x73,0x16,0xc6,0xe4,0x47,0xb1,0x4f,0x4e,0x9d,0x16,0x87,0xb8,0xfb,0xf5,0x96, + 0xc0,0x4d,0x84,0x42,0xaf,0x0a,0x3f,0xe3,0x40,0x42,0x88,0x09,0xcf,0x8f,0x97,0x31,0xc7,0x8f,0x7f,0x81, + 0x2d,0x66,0xce,0x99,0x24,0xbe,0x60,0x6e,0x6f,0x6f,0xaf,0xe0,0xbb,0x18,0xe9,0xbc,0x5a,0xca,0x29,0xe3, + 0x55,0xd1,0x76,0xab,0x60,0x43,0x0a,0x1b,0xed,0x8a,0x6d,0xb3,0x8d,0x25,0x3d,0x57,0x18,0xaf,0xe0,0x78, + 0x73,0x31,0x7e,0x44,0x18,0x79,0x31,0xfe,0x90,0xff,0x7f,0x44,0xff,0x3d,0x58,0x6c,0x78,0xac,0x3d,0x4f, + 0x5f,0xf6,0x2e,0xe1,0x19,0x82,0x9e,0x17,0x34,0xf4,0x91,0xc6,0x1e,0xcf,0x52,0x90,0xd2,0x3f,0xa6,0xb7, + 0x90,0x86,0x55,0x5f,0x16,0xe5,0xd7,0x10,0xbe,0x77,0xe7,0x0e,0xa7,0xf4,0x25,0xe5,0x80,0x1b,0x8d,0xe8, + 0xdb,0x8b,0x3a,0x9e,0x13,0x4e,0x9f,0x11,0x08,0xe4,0xa3,0x6f,0x8a,0xe8,0x39,0x98,0x4c,0x63,0x60,0x18, + 0x76,0x30,0x91,0xdf,0x17,0xac,0x70,0x46,0x94,0x08,0xbc,0x8c,0xde,0x28,0xca,0x1e,0x82,0xf9,0x2c,0x5c, + 0xe8,0x73,0x86,0xd5,0xac,0xb3,0xd6,0xc9,0x23,0x50,0x35,0x55,0x40,0x95,0x0e,0x8c,0x22,0x33,0x88,0xab, + 0x7c,0x06,0x73,0x7c,0xec,0x9a,0xa5,0x64,0x00,0xf0,0xf9,0x81,0xce,0xcc,0x69,0x98,0x84,0xa6,0x3c,0xca, + 0x3a,0xf0,0xfd,0xa2,0x65,0x0e,0xc5,0xb2,0x44,0x76,0xf7,0xc6,0x97,0x06,0xb1,0xb2,0x54,0x88,0xe3,0x9c, + 0x01,0x14,0x4a,0x34,0x81,0x84,0xc4,0x6e,0x3b,0x19,0x2c,0xe3,0x1b,0x73,0xcc,0x0f,0x09,0x9b,0x94,0xfb, + 0xfb,0x37,0x88,0x93,0xd9,0x18,0x15,0xd1,0xa7,0xd9,0xb0,0x3c,0x3c,0x54,0xda,0x7d,0x60,0x07,0x05,0xf7, + 0x38,0x77,0xad,0x85,0xdb,0x50,0xf9,0x38,0x2e,0x86,0x05,0x55,0x58,0xa2,0xe3,0x18,0x15,0xfd,0xf8,0x37, + 0xd0,0xd9,0x84,0xf2,0x37,0x07,0x4a,0xd4,0xc5,0xe3,0x92,0xa6,0x40,0x3e,0x7b,0x78,0xc2,0xf9,0x7c,0xfe, + 0x78,0xe7,0x25,0xc3,0xc1,0x68,0x6b,0x6a,0x52,0x38,0x4f,0xe0,0xf8,0xc9,0x39,0xb1,0xc1,0x4b,0x05,0x2d, + 0xfe,0x8e,0x72,0x27,0x12,0x76,0xa5,0xd1,0x11,0x99,0xbc,0x60,0xf3,0xc2,0x67,0x3b,0x82,0x7b,0x30,0x18, + 0xd1,0xe7,0x45,0xe8,0xd8,0xa5,0xcd,0x5d,0xda,0xc4,0x51,0xbd,0x9f,0x3b,0x44,0xca,0xb6,0xd6,0xfd,0x7c, + 0x8b,0x60,0x09,0xbb,0xe0,0x92,0xca,0x75,0x25,0x77,0x96,0xd5,0x10,0xde,0x5d,0x45,0xe5,0x86,0x5b,0x27, + 0x6b,0x34,0xd7,0x07,0x6b,0x15,0x16,0xab,0x7a,0xb9,0xaa,0x5f,0xb0,0xf3,0xa6,0x9f,0x61,0x27,0x42,0x99, + 0x5b,0x69,0x0a,0x42,0xbb,0xa2,0x36,0xc8,0xf2,0x2e,0x31,0x7b,0xb0,0xe8,0xfd,0x0e,0x44,0xe4,0xf0,0x3b, + 0x08,0xbd,0x6e,0x2e,0x98,0xb4,0x61,0x98,0xeb,0x26,0xf7,0x69,0x09,0x74,0xcc,0x5f,0x2d,0xef,0xd7,0xe8, + 0xa0,0x64,0xaf,0x35,0xc3,0x4b,0xed,0xda,0x40,0x14,0x5f,0x68,0x7f,0xc9,0x53,0x5c,0x36,0x2d,0x7f,0x6f, + 0xc4,0xd7,0x81,0x8a,0x0a,0x0d,0x37,0xa9,0xae,0xa7,0x1b,0x15,0x78,0x52,0xb4,0x2a,0x62,0xe5,0x7e,0x67, + 0x29,0xe2,0xe9,0x15,0x75,0x9b,0x35,0x30,0xc5,0x2f,0xdc,0x1e,0xbb,0xb0,0x58,0x69,0x17,0x16,0xca,0x5d, + 0x94,0x11,0xde,0xad,0xd7,0x49,0xd3,0x40,0x87,0x25,0x7e,0x6f,0xea,0xa3,0xd7,0xc9,0x4d,0xe2,0x96,0x6d, + 0x14,0xa2,0x7e,0xc3,0x30,0x85,0xed,0xe0,0x0d,0x77,0xd4,0x70,0x59,0x21,0x51,0x4b,0x5f,0x19,0x12,0x1d, + 0x61,0x4b,0x57,0xf1,0xab,0x62,0xbc,0x98,0xf8,0x2b,0x22,0xd2,0xd7,0xeb,0xd5,0xf0,0x06,0x66,0xae,0xda, + 0x38,0x75,0x1a,0xb3,0xd5,0x27,0x2c,0x40,0x02,0xb6,0xa5,0x64,0xb5,0xb3,0x63,0xb6,0x87,0xd7,0x4c,0x01, + 0x6c,0xf5,0x89,0x2b,0x58,0x39,0x5c,0x01,0x15,0xb8,0x19,0xb9,0x8b,0xa1,0xb9,0x1e,0x6b,0x72,0x91,0x9b, + 0xc0,0x8d,0x72,0x2b,0x6d,0xaf,0x13,0x55,0x29,0x07,0x91,0xe7,0x10,0x11,0x83,0xb9,0xc8,0x99,0xa9,0xe0, + 0x50,0x9f,0xca,0x92,0x9a,0x1e,0xc5,0xf1,0x85,0xa0,0xd5,0x96,0xac,0x89,0xb3,0x45,0x26,0xb4,0xd1,0xbe, + 0x4c,0x91,0xa4,0x76,0xa9,0x5f,0x9a,0x17,0x27,0x3d,0xe4,0x54,0x9c,0x6a,0xb5,0x7a,0x50,0x38,0x47,0xa9, + 0xb0,0xf9,0xc6,0x2d,0xc9,0x31,0x6d,0x5d,0x84,0x39,0x6c,0x30,0xbc,0x0b,0xf6,0xc2,0xb2,0x3d,0x78,0xc7, + 0x2a,0x58,0x1d,0xb1,0x10,0x5d,0xc7,0x75,0xc8,0x56,0xeb,0xcc,0x43,0xd6,0x96,0xc9,0x15,0xe6,0xb1,0xc3, + 0x48,0x38,0x30,0x0c,0x33,0xaf,0xac,0xeb,0xaf,0xd0,0x9a,0x0c,0x6b,0x9f,0x85,0xca,0xf2,0x95,0x15,0x24, + 0x56,0x8e,0xbb,0x93,0x4a,0x96,0x15,0xaa,0x14,0x9e,0x78,0x3d,0xc2,0xa3,0x2c,0x25,0xc6,0x30,0x8b,0x51, + 0x7a,0x74,0x81,0xd1,0xf9,0x4b,0x2a,0x7c,0x29,0x10,0xbf,0x82,0xff,0xd4,0x74,0x67,0xd8,0x9c,0xcb,0xf1, + 0xa5,0xe5,0xd7,0x86,0xe6,0x39,0x3e,0x09,0x97,0xcd,0x3c,0x0e,0x8a,0xbd,0x09,0x99,0xbe,0xea,0x0a,0xd9, + 0xb5,0x44,0xe0,0x80,0xef,0x5c,0x63,0x36,0x82,0xf6,0xa5,0xec,0x8c,0xa5,0x05,0xfa,0xa5,0x8d,0xc4,0x0a, + 0x09,0x69,0xd0,0x50,0x6d,0x88,0x2d,0x83,0x3c,0x24,0x26,0xed,0x1a,0xa2,0x01,0x31,0x2c,0x1b,0x79,0x96, + 0x25,0xf2,0xcb,0x78,0x19,0x68,0x31,0x2a,0x6f,0x4d,0xd8,0xaf,0xc9,0x2d,0x43,0x94,0x40,0x86,0x17,0x69, + 0xad,0xec,0xd1,0x74,0xe4,0x11,0x5d,0x4c,0x7b,0xaa,0xe2,0x52,0xd3,0xfd,0xfd,0x4c,0xeb,0xb9,0x07,0x7c, + 0x67,0xd0,0xf3,0xa2,0x6a,0x84,0xff,0x1e,0x5f,0x49,0x62,0x2f,0x50,0xb3,0xa6,0x0e,0xf5,0x71,0xca,0x12, + 0x11,0x8b,0x50,0x0a,0x42,0x28,0x3d,0xf0,0x50,0x50,0x95,0xa3,0x27,0x0c,0x83,0xaf,0x54,0xbb,0xae,0xee, + 0x7e,0x29,0x46,0x17,0x85,0xff,0x4b,0x01,0x6f,0xb1,0xbc,0x69,0xf4,0xc7,0x2d,0xb2,0xd3,0x63,0x67,0xa1, + 0x0e,0xfd,0x9b,0x82,0x21,0x4c,0xaa,0x5a,0x22,0x57,0x1d,0x0f,0xc1,0x20,0xa6,0x6f,0xd2,0x29,0xb0,0x67, + 0x70,0xef,0xc3,0x8b,0x03,0x13,0xdc,0xc1,0x67,0xec,0x42,0x45,0x56,0xb9,0x88,0xb5,0x6f,0x80,0x29,0xc2, + 0x8b,0x85,0x4a,0x4f,0x7d,0xcb,0xd7,0x45,0xa0,0x4d,0xc4,0x9f,0x95,0xb4,0x93,0x8c,0x2f,0x07,0xe2,0xef, + 0x94,0x2e,0x17,0x9b,0x9a,0xad,0xe4,0xca,0x4c,0xb5,0x7d,0xef,0xfd,0xed,0x5c,0x5c,0xd0,0x78,0xb0,0xff, + 0xa6,0x0e,0x66,0xfd,0xd2,0xd2,0x93,0x46,0x4b,0xe2,0xb1,0x75,0x06,0xde,0xd1,0xad,0xb7,0x76,0x8a,0xf7, + 0x92,0x96,0x3f,0x27,0x4a,0x18,0x08,0x1d,0x91,0xba,0xb8,0xa2,0x75,0x88,0x2a,0x71,0x26,0x14,0x8c,0x8a, + 0x58,0x5c,0xa2,0x3d,0x74,0xaf,0x59,0x33,0x47,0x7a,0xad,0x6b,0x80,0xa0,0xc2,0x83,0x98,0xeb,0xa5,0x9b, + 0x48,0x84,0x0f,0x29,0xae,0x63,0x74,0x2f,0x25,0x29,0x19,0x27,0x16,0xca,0x59,0x36,0x41,0x0b,0xae,0xbf, + 0xf3,0x48,0xd7,0x67,0x95,0x7c,0x35,0x80,0x02,0x14,0x5d,0x38,0xd5,0x27,0x66,0xc7,0x5e,0xd0,0xbb,0xab, + 0xd9,0x48,0x68,0xa4,0xf5,0x70,0x1c,0x31,0x6c,0x4b,0x83,0x4a,0x84,0x2f,0xa2,0xcd,0x0c,0xc5,0x28,0xe5, + 0x62,0xa3,0x26,0xd6,0xe1,0x44,0x02,0xc9,0x2d,0xeb,0xec,0x3a,0xfb,0x3d,0x65,0x85,0xc5,0x1a,0xde,0xb4, + 0x40,0x6c,0xfb,0x17,0x49,0x7c,0x0b,0x7f,0x40,0xae,0x6d,0x1d,0x8e,0xbb,0xbb,0x04,0x60,0xd2,0xd2,0x75, + 0x6e,0x68,0x8b,0x29,0x08,0x65,0xb4,0xa6,0xaa,0xc7,0x0f,0xf7,0xf8,0x56,0xa0,0x0e,0xf4,0x4d,0xe6,0x23, + 0x73,0xcb,0x4c,0xb4,0xbb,0xbf,0x97,0xab,0x13,0x24,0x77,0xdd,0x12,0xc1,0x49,0x17,0xa4,0x78,0xb9,0xdc, + 0x76,0xac,0x7c,0x89,0xd8,0x47,0x15,0xee,0x12,0xf3,0xbc,0x1d,0x34,0xc6,0x84,0x8c,0xb9,0x6f,0xab,0xe9, + 0xfa,0x36,0xa0,0x4c,0xe0,0x68,0xe2,0x2a,0x7f,0xd7,0x0d,0x8f,0x6d,0x8e,0x9b,0xb6,0x1c,0x5f,0x6c,0x29, + 0x30,0x48,0x5c,0xb7,0x8b,0x84,0xdd,0xf9,0x9c,0x18,0x49,0x94,0x88,0xb2,0xa8,0x77,0x3a,0xf2,0x89,0xb9, + 0x86,0xab,0x6d,0x88,0x01,0xbc,0xd8,0xab,0xd8,0xb6,0xa7,0x29,0xe3,0xab,0xc2,0x51,0xa9,0xe1,0x00,0x17, + 0x2d,0x21,0x98,0xd5,0xc1,0xd2,0x7a,0x77,0x46,0x60,0x56,0x4e,0x86,0x29,0xbc,0xcf,0x14,0x6a,0xf6,0x21, + 0xe8,0xd1,0x0b,0xb1,0x77,0xc2,0xec,0x6d,0xdd,0xb8,0x0c,0x0b,0x2c,0x37,0x75,0xc2,0xb1,0xe1,0x1b,0x37, + 0x65,0xea,0x7b,0x09,0x71,0x4e,0x89,0x0d,0x9c,0xd0,0x2c,0x34,0x4e,0x26,0x72,0x6b,0x36,0xc4,0x86,0x0c, + 0xa7,0x3b,0xbe,0xbc,0xc1,0x6c,0xb6,0x54,0x0b,0x8d,0xc8,0xd5,0x99,0x42,0x53,0x0b,0x0a,0x2c,0x38,0x8d, + 0x58,0x9e,0xe4,0xea,0x54,0xc6,0xb9,0xd5,0x1a,0x85,0x02,0x6e,0x6b,0x76,0xa8,0xb8,0x40,0x77,0x2b,0x7d, + 0xbd,0x7e,0xd4,0x48,0x06,0xb2,0x91,0x90,0x97,0xce,0x15,0x9b,0x55,0x23,0x2d,0x8a,0x9a,0x0f,0x56,0x07, + 0x94,0x25,0x8d,0x88,0x78,0x2b,0x00,0x7e,0xdf,0x95,0x4a,0xfd,0xc6,0x22,0x85,0xf0,0x28,0xb2,0x27,0x8e, + 0x02,0x87,0xbb,0xd7,0xa4,0x88,0x11,0x46,0xbd,0x7b,0x4d,0x8a,0xc7,0x09,0x2b,0xf8,0xa6,0xad,0xca,0xe0, + 0x6b,0x78,0x39,0x44,0x1d,0x32,0x87,0xd6,0x93,0x42,0xd0,0x05,0xd4,0x39,0xb2,0xd0,0xda,0x02,0xd0,0x81, + 0x10,0x65,0x3a,0xaa,0x47,0xa1,0xf4,0x35,0xb6,0x94,0x35,0x8a,0xb6,0xa6,0x06,0xe1,0x29,0xb3,0xf5,0x20, + 0xf1,0xb1,0x6b,0xea,0x1c,0x52,0xcd,0x28,0x1f,0x15,0xb8,0x3b,0x3a,0x87,0x32,0x15,0x14,0xbe,0xb6,0x63, + 0x84,0x5d,0x57,0xad,0x2f,0x2d,0x18,0x0f,0xa8,0x67,0x44,0x3c,0x52,0x8f,0x0d,0x3d,0x76,0x53,0x18,0xaa, + 0x13,0x8d,0x60,0x46,0x08,0x48,0xe7,0x9a,0x6d,0xb4,0xfa,0xd0,0xf0,0x11,0x25,0x71,0x47,0xdc,0xfa,0x68, + 0x2e,0xf0,0x54,0xdb,0x9e,0xc4,0x93,0x74,0x94,0x22,0x55,0x8a,0x9f,0x43,0x68,0x5b,0xb3,0xf9,0x5f,0x2e, + 0x06,0x29,0x6d,0x64,0xed,0xe7,0xa3,0x2c,0x2a,0x03,0x2d,0x8e,0xdf,0xa8,0x38,0xf4,0x5f,0x25,0x16,0x07, + 0xe7,0x8e,0xad,0x57,0x5a,0x96,0x45,0x09,0x87,0x46,0x44,0x44,0x64,0xcb,0x2a,0xce,0xc2,0x44,0xa1,0xa0, + 0x7b,0xa8,0xdf,0x65,0x8b,0x94,0xef,0xec,0xf8,0xe9,0x65,0xa1,0xaf,0xf9,0xaa,0x88,0x88,0xf2,0x94,0xf8, + 0x8b,0xae,0x70,0x2a,0x5b,0x3d,0xaa,0x25,0x52,0x12,0xf1,0x26,0xdc,0x65,0x75,0x0b,0xd7,0x73,0x9c,0x5d, + 0x23,0xb0,0x8e,0xbd,0x17,0x1a,0x29,0xf5,0x0c,0x37,0x2d,0xe8,0x53,0x47,0xd8,0x19,0x21,0x7c,0x26,0xea, + 0x2b,0x6d,0x1b,0x52,0x6d,0xca,0xcb,0x1f,0xb2,0x57,0x5b,0x36,0xdd,0x33,0x5a,0xc0,0xca,0x45,0xfd,0xb7, + 0xb8,0x99,0x55,0x40,0x96,0x58,0x1c,0x65,0x6d,0x5a,0xb2,0xf7,0xd4,0x09,0xc2,0x15,0x28,0x02,0x31,0xd1, + 0xc1,0x86,0xef,0x23,0x04,0xa2,0x4c,0x32,0xf1,0x5b,0x1b,0xff,0x1c,0x81,0x41,0xff,0x99,0xc4,0xfe,0xbf, + 0x92,0x81,0x9a,0xb6,0xd0,0x3e,0x3a,0x33,0xe8,0xe8,0x18,0xff,0xdd,0xb9,0xa5,0xf5,0xff,0x91,0xc4,0xff, + 0x48,0xfe,0x88,0x27,0xd6,0xd1,0xc1,0xe3,0xa4,0x07,0x09,0x51,0x0c,0xaf,0xb7,0x47,0x9f,0x1d,0x44,0x07, + 0x8f,0xa9,0x14,0xad,0xb9,0x7a,0x0f,0x8f,0x1f,0xff,0x23,0xb1,0x35,0xac,0x70,0x53,0x3c,0xf9,0xaa,0xd0, + 0x94,0x55,0xbc,0xb7,0xf7,0x6a,0x7f,0x9f,0xfa,0x82,0x0b,0x96,0xda,0x79,0x85,0xb1,0x42,0xd5,0xe9,0x7f, + 0x9e,0xa3,0x06,0x34,0x42,0xea,0x99,0xaf,0xd0,0xec,0x10,0x58,0x75,0xc4,0x23,0xd0,0xc5,0xdf,0x1d,0xaa, + 0x00,0xf8,0x98,0xc3,0x13,0xf0,0x67,0xe0,0xbc,0xa7,0x11,0x3f,0x45,0x5d,0xe0,0xe9,0x24,0xfd,0xa0,0x66, + 0xca,0x8d,0xf9,0xa1,0xcd,0x01,0x38,0x92,0x86,0x0e,0xd6,0x87,0x03,0x33,0x57,0x00,0xa1,0x89,0x1b,0xd0, + 0xb2,0x72,0x1c,0x72,0x30,0xa7,0x80,0x4d,0x68,0x18,0x16,0x89,0xac,0x42,0x47,0x8b,0x79,0xaf,0x0c,0xbc, + 0xbf,0x08,0x79,0x0e,0xc6,0xe1,0x49,0xed,0x1f,0x8b,0xc9,0x45,0x5e,0x81,0x15,0x37,0xd7,0x6d,0x7b,0xa5, + 0x09,0x65,0xde,0xe8,0x4a,0xc9,0xc4,0xae,0x9e,0x24,0xe1,0xe8,0xb8,0xfe,0x56,0xd8,0x97,0x62,0x55,0x4b, + 0x29,0xeb,0xbe,0xd2,0x24,0xbd,0x3d,0xf2,0x85,0x00,0x89,0x55,0xd2,0x74,0x83,0x8c,0xb8,0xf1,0x4e,0x98, + 0xd3,0x72,0xd7,0x0c,0xd3,0x2c,0x23,0x57,0x5a,0x0d,0xff,0xe4,0x9b,0xc5,0x6d,0xb1,0x09,0x9d,0x43,0x9d, + 0xe2,0x9c,0x77,0x88,0x6e,0xea,0x2a,0xb4,0x3b,0x3a,0xca,0x9d,0xed,0xad,0x69,0x4f,0xa4,0xea,0x47,0xb1, + 0x44,0x63,0xcf,0x55,0x66,0xe3,0x6e,0xef,0xd2,0xa1,0x5e,0xc4,0xb8,0x08,0xb7,0xcc,0xc2,0xe2,0xc4,0xa8, + 0xd0,0x94,0x95,0x78,0x1e,0xe2,0xb8,0x17,0xac,0x09,0x23,0x41,0x4b,0x78,0x5f,0xd2,0x40,0xe9,0x6d,0xd3, + 0xc4,0x5d,0xc1,0xbd,0x57,0x30,0x7a,0xb3,0x8b,0x2f,0x8a,0x03,0x84,0xec,0x1d,0xcd,0xad,0x3d,0x9d,0x29, + 0xc8,0x7b,0x24,0x3f,0x03,0x55,0x34,0xae,0xfd,0xc0,0x5a,0x99,0xda,0x96,0xa4,0xf6,0xfe,0xbe,0xfc,0x0e, + 0x92,0xeb,0xd9,0x48,0x1e,0xe9,0x74,0x8a,0xd2,0xc1,0xab,0x55,0xfa,0xcd,0xc9,0x27,0x39,0x6a,0x4b,0x8c, + 0x41,0x37,0x54,0x9c,0xb7,0x22,0xa8,0x01,0x5c,0x52,0xd7,0x1a,0x37,0xe0,0xdc,0xe7,0x8e,0x9e,0x41,0x29, + 0xa2,0x60,0xd7,0xfd,0xea,0x89,0x31,0xaf,0xef,0x8d,0x6f,0x56,0xc4,0xa9,0xd3,0x77,0x26,0xb0,0x74,0x25, + 0x58,0xd8,0xdf,0x6f,0x14,0x60,0xda,0x63,0x7a,0xe5,0xea,0xf6,0xad,0x5c,0xc5,0x0e,0xe6,0xe4,0xb1,0x43, + 0xb7,0x27,0xca,0xd6,0xb8,0x6b,0xa8,0x82,0x48,0xf0,0x6a,0x6c,0xe6,0x73,0xc7,0x65,0x5e,0xab,0x51,0xb8, + 0xf9,0xb0,0xae,0x06,0x7d,0xe7,0xce,0x94,0x2d,0x0f,0x63,0xa3,0x70,0xd1,0xb8,0x42,0xc7,0x4d,0xb9,0xcd, + 0xc2,0xb5,0xb9,0xb2,0x42,0x84,0x2a,0x6e,0xc9,0x3f,0x7a,0x4f,0x88,0x16,0x92,0xe2,0xa8,0x57,0x7c,0xb3, + 0x11,0xb4,0x03,0x46,0x73,0xe2,0xa8,0xe4,0x20,0x1b,0xd1,0x16,0x1a,0x50,0x2e,0xf6,0x72,0xce,0x0e,0xa2, + 0x87,0x4e,0x83,0x2c,0x4a,0x7b,0x6b,0xf1,0xd0,0xc7,0x37,0x4f,0xba,0xbe,0x49,0x89,0x82,0x4f,0xe4,0x31, + 0xbc,0x27,0x6a,0x2a,0xa1,0x43,0x58,0x79,0xe6,0xaf,0x22,0xf7,0x8a,0x63,0x6a,0xe3,0x1f,0x61,0x11,0xd4, + 0x47,0xcd,0xb2,0xa7,0x0d,0x1b,0x6c,0xa3,0x59,0xc2,0xd7,0x1f,0x4a,0x51,0x65,0xed,0xc4,0x04,0x21,0x26, + 0xac,0x34,0x4a,0x7e,0x61,0x1e,0xff,0x90,0xd4,0x97,0x08,0x8b,0x0a,0xd2,0xb9,0x18,0xd7,0xf1,0x43,0x76, + 0xaa,0x43,0xec,0x7a,0x1e,0x8c,0x4e,0x1e,0x67,0xa3,0x93,0xe8,0x38,0x3a,0x89,0xf2,0x11,0x97,0xbb,0xce, + 0x10,0xbf,0xe5,0x61,0x10,0x1d,0x4f,0x46,0x05,0xeb,0x30,0x30,0xad,0xe1,0x86,0x4e,0xad,0xdd,0x33,0x14, + 0x1c,0x33,0x5b,0x4c,0xb7,0x99,0xe7,0xd4,0x85,0xb6,0x59,0x53,0x86,0x6a,0x16,0xd7,0x04,0x72,0xf3,0xd9, + 0xd2,0x1f,0x72,0xf6,0x2d,0x98,0x70,0x94,0xb3,0x6a,0xa5,0x07,0x28,0x00,0x6b,0x04,0xb9,0xea,0xf6,0x10, + 0xed,0xab,0xb0,0xab,0x84,0x5f,0x88,0x0f,0x29,0xc2,0x5b,0x81,0xd3,0x24,0xac,0xb0,0x18,0x2b,0x1f,0x61, + 0x58,0x83,0x11,0x13,0x5f,0x33,0xa6,0xc1,0x42,0x4e,0x89,0x38,0x85,0x1f,0x37,0xda,0x98,0xcd,0x5a,0xb7, + 0x99,0x51,0x94,0x9a,0x12,0x12,0x3b,0xa1,0xfd,0xfd,0x4a,0x25,0x38,0x01,0x5d,0x5b,0x06,0x41,0x61,0x31, + 0xd4,0x85,0xd9,0x77,0x70,0x11,0x9b,0x38,0xf1,0x61,0x36,0x38,0x13,0xa0,0x60,0x9d,0xcc,0x07,0xd8,0xbf, + 0x03,0x49,0xd8,0xdf,0x37,0x0d,0xc2,0x00,0xbb,0x64,0xd0,0xa8,0xb1,0x6c,0xd6,0x23,0xb8,0x6c,0xa3,0x15, + 0xae,0xc1,0x33,0xfa,0x11,0x16,0x60,0x0f,0xdc,0xb0,0x89,0xa0,0x05,0xc3,0x56,0x5c,0x78,0x29,0x2a,0x2c, + 0xb0,0x21,0x43,0xa9,0x34,0x14,0xbf,0x64,0xfa,0x9a,0xa0,0x4b,0xed,0x25,0x71,0x3b,0xe4,0x3a,0xab,0x94, + 0xee,0xef,0x27,0xe6,0x08,0xd4,0x57,0x1d,0x38,0x3f,0x4d,0x9c,0xb5,0xad,0x68,0xe5,0x6e,0xa0,0x22,0xdf, + 0x44,0xaf,0xe7,0xc6,0xe0,0x11,0xc9,0x70,0xcf,0x72,0x33,0xef,0xb2,0xc8,0x70,0x3b,0xd8,0x48,0x28,0x0d, + 0x7c,0x57,0xf6,0xdb,0x53,0xf3,0xed,0x6a,0x67,0xa4,0x74,0xcc,0x20,0x9b,0xe6,0x23,0xea,0xd4,0x46,0x6b, + 0xb5,0x99,0x8e,0xc1,0x17,0xa6,0xaf,0x7d,0xec,0xd9,0xd0,0xd5,0xb4,0xa3,0x2b,0x73,0xab,0xe2,0x2a,0x9b, + 0xe8,0xd5,0x35,0xab,0x9a,0xba,0xee,0xf3,0xa1,0x5b,0x88,0xd0,0xa3,0xb5,0xbe,0xda,0x56,0x24,0x32,0xa7, + 0x21,0x47,0x2d,0xf8,0x56,0xae,0xa4,0x3b,0x9f,0x6a,0xba,0x17,0xd1,0x30,0x63,0x80,0x72,0xb4,0x47,0x44, + 0x0f,0x83,0x0c,0xb1,0xc8,0x17,0xbe,0x97,0x17,0x35,0x1d,0x6a,0x59,0x55,0xf7,0xd4,0x89,0x43,0xfb,0x40, + 0x02,0xa1,0x62,0x43,0x50,0x9a,0x79,0xf7,0xe0,0x34,0x2a,0x88,0xb6,0x2a,0x35,0x2b,0x80,0xae,0xe8,0xa9, + 0x8f,0x4a,0x0d,0xdb,0xb5,0xca,0x4f,0x77,0xba,0x2e,0x34,0xee,0x0a,0xe7,0xf1,0x16,0xf2,0xf4,0x8b,0x78, + 0x11,0x8c,0x92,0xb8,0x88,0x20,0x5a,0x63,0x8b,0x2e,0x58,0x79,0x10,0x8e,0xaa,0x80,0xae,0x78,0x06,0x68, + 0xd5,0xd9,0x54,0xaa,0x82,0x37,0x30,0xa2,0xcc,0x8a,0x8c,0x78,0xf7,0xf0,0x1e,0xa5,0xa2,0x24,0x54,0x38, + 0x14,0xd1,0x5a,0x2e,0x70,0x07,0x29,0xf9,0x2c,0xfa,0x83,0xa3,0x72,0x6e,0x0b,0x8e,0xca,0x55,0x5b,0x97, + 0xf4,0xc8,0x6d,0xdd,0xd0,0x83,0x94,0x05,0xec,0xcd,0xd8,0x86,0xf8,0x12,0x54,0xa1,0x8a,0xc4,0x77,0x6d, + 0x77,0xe5,0x50,0x96,0xaf,0xb9,0xaa,0x37,0xd0,0x61,0xbd,0x96,0xf9,0x0e,0x06,0xf5,0x14,0x94,0xd8,0x82, + 0xf6,0x45,0x38,0x9e,0x85,0x37,0x13,0xcd,0x52,0x9e,0xf9,0xcb,0xf0,0x12,0xde,0x65,0x69,0xa7,0xdb,0xc2, + 0xaa,0x6c,0x46,0x65,0xb7,0x4a,0x3a,0x10,0x71,0xdd,0x40,0x00,0x42,0x50,0xd2,0x12,0x95,0xe9,0xbf,0x57, + 0xc4,0x3c,0xce,0x7a,0xff,0x83,0xc1,0xfd,0x0f,0xd6,0xe6,0xe6,0xb0,0xee,0x19,0x86,0xd2,0x53,0xb7,0x09, + 0x6a,0x35,0xab,0xd5,0x12,0xd4,0x4a,0x4f,0x7c,0x26,0x8a,0x2b,0x51,0xbb,0x70,0x67,0x2e,0x4c,0x59,0xd6, + 0x0a,0xf1,0xae,0x8c,0xd6,0x17,0x2e,0x32,0xda,0x08,0x61,0xbd,0xc6,0xff,0xc0,0x14,0x43,0x3c,0x3c,0xc7, + 0x81,0xac,0x8d,0x3d,0xe0,0x5f,0x43,0x6f,0x97,0x36,0x22,0xe4,0x9d,0xfb,0xfb,0x12,0xe5,0xdb,0xbf,0xd6, + 0x29,0xfa,0xb0,0x1a,0x78,0x01,0x9f,0x9e,0xcb,0x01,0xc3,0x1c,0x02,0xd5,0xc2,0x88,0x4f,0x6d,0x77,0xa1, + 0x7a,0x9e,0xab,0xa8,0x83,0x54,0xdb,0xb0,0x17,0xa1,0xc7,0x73,0xe4,0x85,0xf7,0x17,0x69,0x23,0xb4,0xa9, + 0x43,0x98,0x0f,0xce,0x50,0x04,0xd2,0xca,0x3a,0xbe,0xde,0xd1,0x64,0xdd,0x68,0xb2,0xde,0x6e,0x4f,0x9d, + 0x36,0x4c,0xe7,0xb7,0x54,0xbf,0xb6,0xef,0x02,0xdb,0x07,0x16,0x5f,0x3b,0xe7,0x20,0x64,0xea,0x71,0xee, + 0x12,0x32,0x79,0xff,0x64,0xa2,0xb8,0xe4,0x4c,0x56,0x5b,0xb7,0x5e,0x0e,0xce,0x6a,0x0b,0x53,0x08,0xaa, + 0xaa,0x20,0x98,0x32,0xa8,0x6b,0x3f,0xa4,0x55,0x95,0x5c,0xa4,0x15,0x3c,0x1b,0x1b,0x18,0xaa,0x03,0x11, + 0xca,0xbe,0xd7,0x10,0xa7,0xdd,0x63,0x2c,0x76,0x8c,0xb1,0xa9,0x99,0x3f,0x86,0x5f,0x93,0xad,0x51,0x3e, + 0xa4,0x51,0x96,0x18,0x25,0x44,0x51,0xce,0x28,0xcb,0xfe,0x43,0xcd,0xcb,0x17,0xcd,0x51,0xd2,0x79,0x67, + 0xb6,0x4e,0x86,0x61,0x66,0x7a,0x98,0x59,0x7b,0x98,0x45,0x58,0x9b,0x81,0xe6,0x7f,0x64,0xa0,0x69,0xf7, + 0x40,0xcb,0xb7,0x0c,0x54,0x06,0x59,0x36,0xfb,0x9a,0x53,0x5f,0x21,0x89,0xd2,0x1b,0x12,0x91,0x2d,0x9b, + 0x5d,0xac,0xdf,0xbf,0x57,0xb3,0x3f,0x0d,0x61,0xe1,0xae,0xd9,0x3f,0xd9,0x39,0xfb,0x27,0x7a,0x5f,0xb3, + 0x62,0x8f,0xc2,0x42,0x33,0x35,0xed,0x35,0x4d,0xfb,0x9f,0x9a,0xd8,0x8e,0x4d,0xf7,0xbf,0x79,0x08,0xf9, + 0xdb,0x86,0x70,0x4d,0x74,0xeb,0x1b,0xa2,0x5c,0x1f,0xe0,0xd1,0x20,0x47,0xdf,0xc3,0xde,0x66,0x77,0x36, + 0xa5,0x8a,0x32,0x1b,0x65,0xe1,0x2a,0xe7,0x94,0x82,0xab,0x19,0xd3,0x54,0xff,0x8d,0xdc,0xfc,0xbe,0xd1, + 0xb7,0xa0,0xd7,0x3a,0x10,0xa6,0x08,0x1a,0x7e,0x48,0xcb,0x8b,0x94,0xa8,0x27,0x6a,0xe3,0x22,0x4b,0xc1, + 0xad,0xa2,0x5b,0x74,0x6e,0xa8,0x98,0xa6,0x16,0x1f,0x5e,0x2a,0xce,0x5f,0x31,0x40,0xda,0x77,0x10,0x1d, + 0x80,0x9e,0xf1,0xf5,0xe2,0x98,0x05,0x1e,0x07,0x43,0xd1,0x58,0x07,0x4d,0x02,0xe5,0xf8,0xde,0xa7,0x27, + 0x91,0xfc,0x3e,0x92,0xdf,0x0f,0x3f,0x96,0xdf,0x47,0x1f,0xaa,0xdf,0x4f,0x55,0xfa,0x27,0x91,0xc6,0xe0, + 0x43,0xa9,0xf0,0x91,0x2a,0xa0,0x2a,0x7c,0xf8,0x51,0xa4,0x4d,0xed,0x66,0xf0,0xf8,0x28,0xa5,0x1e,0x3d, + 0x54,0xcd,0xcb,0xcf,0xc9,0xb1,0xfa,0x55,0x5f,0x3b,0xf9,0x58,0x25,0x7c,0xfc,0xd1,0xc3,0xbf,0xaa,0x32, + 0x9f,0x3c,0xd4,0x95,0xe8,0xe9,0x91,0x6e,0xf4,0xb6,0x32,0x46,0x0e,0x9f,0xfe,0xf5,0x31,0x14,0x75,0xea, + 0xc7,0xf1,0xc9,0xc3,0x87,0xeb,0xf5,0xc7,0x1f,0xe9,0xd7,0x4f,0x8f,0x47,0xea,0xe3,0xd1,0x87,0x9f,0xea, + 0xc4,0x8f,0xfe,0x3a,0xf2,0xc4,0x1d,0xa8,0x17,0x79,0x7c,0x0f,0x6d,0x67,0xef,0xa6,0x43,0xdb,0x4b,0xbc, + 0xc8,0x2b,0x90,0xf0,0x8e,0xc5,0x61,0x8a,0x91,0xda,0x80,0xe2,0xad,0x7e,0x4c,0x7e,0x34,0x4e,0x33,0xb2, + 0xf0,0x27,0x1d,0x9e,0x60,0x44,0x9c,0x1a,0x80,0x28,0x68,0xce,0x78,0xa0,0x64,0xf8,0x26,0xa9,0x36,0x40, + 0x49,0xcd,0x3d,0xfa,0x70,0x8f,0xf5,0x8c,0x1e,0x7d,0x8a,0xdf,0x51,0xdd,0xf4,0xb0,0x1e,0x79,0x1f,0x78, + 0xfd,0x4c,0x84,0x6d,0xd7,0x36,0x10,0xb5,0x95,0x81,0xe9,0xf0,0xa0,0xe1,0x79,0xec,0x8d,0x85,0x9f,0xee, + 0x49,0xa1,0x89,0x17,0xde,0x6e,0x97,0xbf,0x4c,0xaa,0x9f,0x6e,0x73,0xbd,0xef,0xc2,0x34,0xee,0xe2,0xfc, + 0xbf,0xc9,0xeb,0xc5,0xfe,0xbe,0xb1,0xdf,0xc1,0xeb,0xe0,0x19,0xc1,0x22,0x62,0x59,0x7e,0x59,0x94,0xd7, + 0x49,0x1d,0x5e,0xbd,0x77,0x45,0x39,0x97,0x55,0xb5,0x07,0xb1,0x0a,0xd4,0xf9,0x94,0x65,0x4f,0xed,0x1d, + 0x5e,0x6f,0x8b,0xdb,0x6a,0x01,0x7d,0xf9,0xe1,0x1b,0x9a,0x33,0x3e,0x74,0x47,0xf7,0x9b,0x48,0x0b,0xc4, + 0x79,0xcf,0xde,0x9b,0xc2,0x86,0xb8,0xa4,0x1e,0xbd,0x56,0xe9,0x52,0x29,0xd0,0x7c,0x08,0x7b,0x99,0xd7, + 0xa9,0xdd,0x5e,0xe6,0xc1,0xb3,0x85,0x0e,0xc7,0x09,0x16,0xd3,0xa0,0x2f,0x7d,0xb3,0xd6,0x55,0x53,0x3a, + 0x41,0x5b,0x95,0xf6,0xf0,0xf7,0x8c,0xcf,0x15,0x22,0x07,0x86,0x6f,0xf3,0x05,0x1b,0x4b,0x46,0xa8,0x31, + 0x86,0x36,0xe5,0x57,0x94,0x4a,0x55,0x18,0x6a,0xe9,0xea,0x2d,0x92,0x40,0x72,0xb3,0xc9,0x66,0xe0,0x14, + 0x66,0x5d,0xce,0x69,0x99,0x9d,0xa7,0xc8,0x7a,0x0a,0xcf,0xb6,0xcc,0x88,0xb1,0x34,0x4c,0x8a,0xe9,0x12, + 0x08,0xe3,0xb8,0x77,0xbc,0xd1,0xbe,0xe6,0xee,0xd4,0xbc,0x05,0x32,0x57,0xbc,0x02,0x25,0xbb,0x35,0xb2, + 0xcf,0x82,0x18,0xb7,0x53,0x1a,0x73,0xcd,0xd7,0x5e,0xdc,0x17,0x14,0x88,0xdb,0x65,0xd5,0x4a,0x61,0xd2, + 0x08,0x16,0x6a,0x3d,0x30,0xa7,0x84,0xcd,0x32,0x65,0x95,0x41,0xb1,0x4c,0x64,0x47,0x85,0x46,0xbe,0xae, + 0x55,0x65,0x0b,0xb8,0x95,0x84,0x21,0xc9,0x82,0x5d,0x56,0xfe,0x8a,0x4b,0x8f,0xad,0xca,0x9d,0xc5,0x00, + 0x50,0x2d,0x68,0x29,0xdf,0x09,0x2d,0x25,0x41,0x4b,0xb9,0x0d,0x2d,0x06,0x14,0xe4,0x20,0x8f,0xcb,0xee, + 0x85,0x87,0xba,0xd0,0x6b,0xbd,0x08,0xff,0xdb,0xd6,0x3f,0x54,0xf1,0xbf,0xf8,0x32,0x53,0x5a,0xb8,0xcb, + 0xc5,0x14,0x5f,0xbf,0xf0,0x45,0x26,0x57,0x15,0xc2,0xa4,0xd1,0xa1,0x07,0xb6,0x43,0x32,0xfb,0x08,0x51, + 0x2c,0x40,0xf5,0x1f,0xc0,0xd0,0xc8,0x77,0x77,0xc4,0x16,0x04,0xfd,0xf9,0xe1,0x06,0x51,0x6d,0x1c,0x7b, + 0xe9,0x27,0xd3,0xa3,0xc6,0xfb,0x16,0x4c,0xbb,0x5b,0xd4,0x2d,0xf8,0x1f,0x75,0x67,0x13,0x0a,0x26,0x54, + 0x21,0x89,0x5d,0x54,0x68,0x9b,0x35,0x5f,0x77,0x2a,0x37,0x7a,0x34,0x58,0xe5,0x6f,0xfb,0xb2,0xbe,0x34, + 0x6b,0xb7,0xd1,0x01,0x65,0x8d,0x66,0x55,0x9a,0xdf,0x6a,0xc1,0xc9,0xd2,0x2d,0x34,0x00,0xa3,0x1b,0x5c, + 0xda,0xad,0x34,0x32,0xdd,0x9e,0xb0,0xb4,0x15,0x3a,0x25,0x6f,0x94,0x8e,0x9c,0x27,0x1c,0x98,0x9e,0x9a, + 0x64,0x81,0x80,0x07,0xec,0x39,0x23,0x62,0xf5,0x61,0xd1,0x2b,0x51,0x27,0xa0,0x32,0x44,0x8a,0xbc,0x6a, + 0x99,0xe4,0x1e,0xa2,0xf5,0x11,0x1b,0xdf,0x28,0xa1,0xf9,0x5b,0xa8,0x9d,0x68,0xf6,0xde,0x2d,0xb0,0x09, + 0x59,0xb5,0xa9,0x52,0x89,0x63,0x66,0x49,0x15,0xca,0x9f,0x50,0xb7,0xda,0x3e,0x03,0x1a,0x42,0x13,0xee, + 0x56,0xc8,0x77,0x92,0xb4,0x0e,0x8d,0xab,0xf5,0xb0,0x68,0x01,0x0e,0x7b,0x11,0x89,0xfd,0x4c,0x2e,0x89, + 0x77,0x9a,0x34,0xf5,0x94,0x95,0xac,0x12,0xfb,0x28,0x39,0x81,0xd6,0x55,0x22,0xfc,0xb2,0x57,0x18,0xc7, + 0x46,0xea,0xc6,0x36,0xd7,0x32,0x8e,0xdc,0xca,0x38,0xee,0x37,0xe1,0x0a,0x19,0x3c,0x36,0xf6,0x95,0xbe, + 0x68,0xc9,0xdc,0x56,0xc1,0xe8,0xf8,0xf1,0x4a,0x91,0x25,0xd1,0xf1,0x63,0xf7,0x94,0x5b,0x05,0x5a,0xb8, + 0x0b,0x23,0x8e,0x6d,0xc1,0x17,0x5f,0x3b,0xcd,0xd8,0x9f,0x80,0xfc,0x2a,0x27,0x28,0x46,0x71,0xd2,0xa6, + 0x49,0x17,0x34,0x01,0x6f,0xa3,0x0f,0xee,0xef,0x7b,0xac,0x75,0x42,0xc4,0xb5,0xce,0x24,0x32,0xe2,0xf8, + 0x71,0x66,0x24,0x6e,0x7b,0xf3,0xfd,0xfd,0x0b,0xdf,0xfb,0x66,0xde,0x93,0x51,0xf4,0x30,0xdb,0xbd,0xac, + 0xea,0x21,0xe0,0x6d,0x8f,0xce,0x80,0x1e,0xcf,0x75,0x2f,0x95,0xcb,0xac,0xaa,0x07,0xab,0xc6,0xde,0x65, + 0x72,0x93,0x4a,0x05,0x29,0x4f,0x85,0x07,0x5e,0x10,0x6e,0x8d,0x7d,0xd5,0x81,0xd3,0xb1,0xb4,0x53,0x31, + 0x57,0x0b,0xa2,0xd6,0x7c,0x74,0x9d,0x00,0xf0,0xa9,0x1a,0xaf,0x58,0xcf,0x9d,0x38,0xcc,0xee,0xf6,0x04, + 0x54,0xe6,0x23,0x0f,0xb6,0xff,0xed,0x69,0x81,0x2f,0xa9,0x7a,0x38,0x05,0x17,0x0f,0x35,0xab,0x54,0x74, + 0x86,0x10,0xd9,0x6a,0x90,0xf9,0x2c,0xf2,0x62,0x75,0xab,0xa7,0xf1,0x16,0xa2,0x98,0xd2,0x97,0xd2,0xaa, + 0xeb,0x56,0x7d,0x33,0x7c,0xea,0xd0,0x7e,0x19,0xbc,0x55,0x2f,0x0b,0x8e,0x06,0xb7,0x75,0x69,0xba,0xa7, + 0x2f,0x3f,0xe1,0xa9,0xc5,0xb9,0xfa,0x54,0xad,0x3b,0xfe,0x5b,0x72,0x0e,0x26,0xf3,0x36,0x7d,0x65,0xf6, + 0x46,0xec,0x2a,0x2d,0x5b,0x7b,0xe7,0xbc,0xdf,0x67,0xa1,0xba,0x77,0xcf,0x8a,0xe7,0x04,0xe9,0x8c,0x7d, + 0xc5,0x20,0x00,0x9b,0x8e,0xf5,0x26,0xb5,0xa3,0xa4,0x72,0xa3,0xd5,0x40,0x4a,0xed,0xda,0xd8,0x34,0xe2, + 0x6d,0x3c,0x56,0xac,0x87,0x33,0xdd,0x2c,0x34,0xc9,0xb2,0x0d,0x5e,0x08,0x4d,0x5e,0x04,0x23,0x6f,0x91, + 0x55,0xc4,0x0f,0x3c,0xb1,0x09,0xc0,0x2c,0x33,0xe2,0x05,0x56,0xf9,0x55,0x0e,0x1f,0xda,0x43,0xfd,0x7d, + 0xf9,0x66,0x11,0x72,0x3f,0x92,0x8d,0x18,0x72,0x79,0xff,0x8f,0xe8,0xd1,0x53,0x87,0xc1,0x09,0xd0,0xf2, + 0x80,0xec,0xa7,0x4f,0x06,0x70,0x94,0x9c,0x99,0x8b,0xc2,0x77,0x0c,0x23,0xac,0x39,0x18,0x56,0x6b,0x4a, + 0xe3,0xbc,0x7d,0x79,0xe8,0x08,0x41,0xa0,0x9e,0xd3,0x16,0x8e,0xe9,0xe1,0xac,0xf8,0x79,0x6b,0x24,0x98, + 0x58,0xfd,0xc2,0xd3,0xab,0x97,0x8c,0xa7,0xce,0x35,0x42,0x37,0x8e,0x1c,0x70,0xc9,0xa1,0x58,0xc2,0x42, + 0xa9,0x34,0x81,0xf7,0x92,0xfe,0x47,0x4a,0x06,0xa7,0xdd,0x50,0x89,0x35,0x11,0x73,0x76,0xaa,0x23,0x5a, + 0x48,0x37,0x36,0x8e,0x6c,0x55,0x59,0xb8,0xb3,0x9d,0x34,0x2a,0xe8,0xde,0xca,0xaf,0x98,0x1d,0x98,0xea, + 0xaa,0x16,0x11,0xc7,0x65,0xbf,0xef,0x38,0x30,0x80,0xc3,0x21,0x51,0x94,0x78,0x01,0xbf,0xf4,0xa7,0xb3, + 0xa0,0x7f,0x14,0x3e,0xe1,0xc7,0x5b,0x3c,0xbe,0x84,0x68,0xf1,0xe5,0xf8,0x78,0x12,0xdf,0xdf,0x56,0x11, + 0xfd,0x86,0xcc,0x00,0x46,0xe3,0x47,0x21,0x3d,0x7b,0x63,0x2f,0x1a,0x7f,0x38,0x09,0xe9,0x24,0x8f,0xc6, + 0x7f,0x9d,0x6c,0xc2,0x97,0xe3,0x13,0x55,0xf2,0x84,0x72,0x07,0x94,0xfb,0xb0,0xb3,0xd4,0x43,0x55,0xea, + 0x61,0xb3,0xbd,0x63,0xf5,0x2b,0xfc,0xa4,0xbc,0xa0,0xf8,0x23,0x2a,0xfe,0xae,0x72,0x21,0x7f,0x35,0x34, + 0xdf,0xe5,0x27,0xfe,0x32,0x9e,0xe4,0xdb,0xf4,0x84,0xe6,0x3e,0xa4,0xe6,0xbc,0x03,0xca,0xfa,0x08,0xf5, + 0x0e,0xbc,0x83,0x68,0xfc,0xb1,0x1d,0x4e,0x88,0x2e,0x4f,0x3c,0x34,0xf6,0x48,0x2a,0x7e,0xc2,0x26,0xee, + 0xc8,0x92,0xee,0x7c,0xa4,0xeb,0x23,0xa1,0x51,0xe2,0x23,0x55,0xe2,0x63,0x2a,0xc1,0xed,0x6e,0x95,0xc0, + 0x87,0x64,0xc2,0x7f,0xe2,0x70,0xd3,0x44,0x8f,0x95,0xab,0x74,0xcd,0x4e,0x89,0xd6,0x87,0xa3,0xf1,0xe9, + 0x6c,0x30,0xe9,0xaf,0xc5,0x51,0xff,0xc1,0x5a,0x9c,0xf4,0x7b,0x01,0x95,0x7b,0x70,0x14,0x3e,0xdb,0x81, + 0x9b,0xba,0x51,0xd3,0x33,0x07,0x35,0x31,0xf4,0x3c,0xa7,0x93,0xab,0x23,0xfa,0x9b,0xd3,0x90,0xeb,0x45, + 0x8a,0x0d,0x42,0xad,0xe3,0x60,0x65,0xb1,0xd6,0x8c,0x4e,0x89,0x8d,0xb4,0x8a,0x0f,0x4f,0xe8,0xc0,0x3b, + 0xa6,0xe3,0xeb,0x38,0x9c,0x69,0xff,0xdc,0x33,0x00,0x82,0xcb,0x7d,0xea,0xc3,0x28,0x17,0x5b,0x01,0xb1, + 0x27,0x23,0x64,0x26,0x19,0x44,0xad,0xcd,0x00,0x64,0x5b,0x35,0xa0,0x18,0x3a,0xca,0xe3,0x32,0xca,0xfb, + 0x44,0xdd,0x53,0xa1,0x87,0x8d,0x42,0xa8,0x44,0xe4,0xcf,0x9c,0x60,0x9a,0xf2,0x1e,0x35,0xf2,0xd8,0x06, + 0x68,0x1e,0xcc,0x0f,0x0f,0xa9,0x7b,0x1f,0x86,0x52,0xd4,0xa8,0x82,0xa0,0xb7,0x7b,0x27,0xe2,0x9e,0xe2, + 0x06,0xa2,0x27,0x7b,0x81,0x85,0xbe,0xc3,0xac,0x7b,0xa8,0xae,0xd2,0x17,0x43,0xd6,0x39,0x39,0x3d,0x55, + 0x5a,0xa3,0xf5,0xb8,0xdf,0x5f,0xe1,0x9a,0x78,0xaf,0xc5,0x5e,0x23,0x6b,0x05,0x81,0x17,0x15,0xff,0x08, + 0x96,0x61,0x74,0xf0,0x1e,0xb0,0x3a,0xf0,0x7a,0xfd,0xb1,0xbc,0x1f,0x70,0xd4,0x5c,0x73,0x07,0xbc,0xea, + 0xf7,0x81,0xcc,0xa9,0xe9,0x7e,0xaa,0x7a,0x88,0x28,0xa8,0xbe,0xb0,0x8a,0x59,0xcc,0x52,0xfc,0x4f,0xd0, + 0xcb,0x02,0x0e,0x4c,0x5f,0x8e,0x17,0x93,0x60,0x9c,0x4d,0xd6,0xeb,0x8a,0x15,0xf8,0xd7,0xeb,0x4f,0x74, + 0xbf,0xd9,0x48,0x94,0x3d,0xc3,0x20,0x78,0xe7,0x6c,0x5c,0xd0,0x20,0x26,0x22,0x42,0x31,0x33,0x49,0xcf, + 0x05,0x4d,0x60,0x30,0x22,0x94,0x29,0x83,0x4f,0xfc,0xc0,0x6d,0xe0,0xaf,0xe8,0xa4,0xee,0xdb,0x54,0x74, + 0xa1,0x0d,0xcd,0xa9,0x21,0x24,0xae,0x09,0xcf,0x82,0xb2,0xda,0x84,0x2e,0x88,0x5d,0xa4,0x35,0x00,0x8c, + 0x2f,0xdc,0x3a,0x8e,0xbf,0x95,0xf5,0x30,0xdf,0xb8,0xf9,0x16,0xf0,0x33,0xf0,0xe9,0x8b,0xc7,0x4c,0x5a, + 0xf1,0x16,0x19,0x81,0xeb,0x39,0x86,0x86,0x96,0xc7,0x49,0x6e,0xcb,0xda,0x99,0xeb,0x0b,0x4c,0x5c,0xa7, + 0xb3,0x29,0x76,0xf2,0x38,0x1b,0x6a,0x87,0x37,0xc5,0xb8,0x1c,0x27,0x13,0x5e,0x1e,0x33,0x27,0x15,0xbb, + 0x2d,0x44,0x23,0xca,0x73,0x59,0x5c,0x85,0x89,0x45,0x91,0x85,0xec,0xd5,0x2f,0xe2,0xb1,0xb2,0x01,0x08, + 0x3d,0x09,0xaa,0x30,0xbd,0x73,0x1e,0x9f,0x65,0x15,0xd1,0x18,0x48,0x59,0x55,0xe9,0x57,0x65,0xb1,0x5a, + 0xe2,0xaa,0x2c,0xf4,0xae,0xb3,0x3c,0xbb,0x5e,0x5d,0x13,0xda,0x4e,0x2f,0xd2,0xf2,0x59,0x76,0x91,0xd5, + 0x95,0x4d,0xfe,0xb2,0x4c,0x78,0x92,0x6c,0x7a,0xf2,0xa6,0x3b,0x5d,0xca,0xbf,0xc8,0x2e,0xf2,0x6c,0x9e, + 0x4d,0x93,0xbc,0x6e,0x57,0xe9,0xca,0x12,0xfa,0xf4,0x07,0x61,0x03,0xe8,0x5d,0x78,0x7f,0xfd,0x3e,0x09, + 0x5f,0x6f,0xe1,0x02,0x21,0x49,0x86,0x66,0x6e,0xa0,0x9b,0x92,0x72,0x04,0xe1,0xbd,0xeb,0x6e,0xed,0x9a, + 0xdb,0x2c,0x9f,0x15,0xb7,0xfb,0xfb,0xf2,0x0b,0x05,0x99,0xfd,0xfd,0xa5,0x6f,0xdf,0xac,0x43,0x6c,0xe9, + 0xcd,0x7a,0xed,0xa5,0xf9,0xe1,0x2f,0x2f,0xc4,0xef,0x69,0x53,0xb8,0x60,0xf3,0x20,0x27,0xd4,0x3c,0xbd, + 0x8a,0x3d,0xc4,0xf4,0x9c,0x23,0x20,0x93,0x74,0x38,0xe4,0xcc,0x1d,0xf9,0x17,0xa7,0x8a,0xab,0xed,0xb3, + 0x9b,0x6b,0xd1,0x31,0x91,0x37,0x2b,0x13,0x49,0xad,0x10,0x64,0xbd,0x86,0x64,0xe0,0xa9,0x2a,0x72,0x9d, + 0x55,0x08,0x0b,0x84,0x6f,0xcb,0x93,0x68,0x84,0xaa,0x5c,0x96,0xb8,0xa4,0x2c,0x78,0x69,0xa4,0x83,0x8d, + 0xb7,0x3b,0x2c,0x55,0x3c,0x3e,0xfc,0xea,0xe1,0x49,0x7f,0x5d,0x0d,0x94,0xd5,0x85,0x9d,0xc2,0x6e,0xba, + 0x54,0x72,0x53,0xf4,0x17,0x3a,0x85,0x2d,0x8e,0xf7,0x9f,0xce,0x02,0x44,0xd3,0xef,0xed,0xc8,0x52,0xed, + 0x36,0x27,0x14,0xfa,0x5e,0xe0,0x64,0x24,0xcf,0x9d,0xd4,0x66,0x0e,0xd8,0x1f,0x16,0xa8,0x3c,0xb3,0xcd, + 0x24,0xd6,0x35,0xbd,0xf6,0x41,0x7e,0xc6,0x57,0xd1,0x2d,0x3c,0xa0,0x30,0xac,0x28,0x36,0xd0,0x80,0x61, + 0xa7,0xc2,0x0d,0x36,0x90,0x87,0x78,0xdc,0xd2,0x2e,0xcf,0xcf,0x08,0xf6,0xeb,0x57,0x3f,0xf8,0x5a,0xe5, + 0x06,0x46,0x51,0x2e,0xd4,0x10,0x26,0xd3,0xa0,0x12,0x65,0x61,0x0b,0x48,0x88,0xd8,0x6c,0x80,0x07,0x53, + 0x9d,0xe1,0x97,0xf1,0xfd,0xcd,0x75,0x74,0x2f,0x37,0x02,0xab,0x32,0x39,0xa7,0x56,0xc0,0xb1,0x9a,0x76, + 0xb6,0xb3,0xda,0xed,0x6e,0x97,0x68,0x7e,0x67,0x3b,0x5f,0xb3,0xc3,0x5b,0x19,0xad,0xe1,0x74,0x74,0x4b, + 0xa0,0xb1,0xab,0xaa,0x5e,0x9f,0x8e,0xbc,0xce,0x95,0xdf,0x2e,0x67,0x62,0x81,0xbe,0x76,0x50,0xb9,0x9a, + 0xf3,0x0e,0x5a,0xc1,0xdc,0xa3,0x48,0xf3,0xc3,0xd6,0x3b,0xa4,0x5e,0x76,0xf7,0x11,0x90,0x5c,0xfb,0xf7, + 0x80,0x0f,0x36,0x6c,0x69,0x97,0xad,0x37,0xa1,0xfb,0xd1,0x4e,0x31,0xcb,0xb6,0xfb,0xff,0x26,0xbc,0x19, + 0x85,0xea,0x46,0x53,0x3b,0x64,0x36,0x8d,0xc6,0xf6,0xb6,0x8e,0x28,0x4d,0xbb,0x5b,0x17,0x79,0x5a,0x27, + 0x57,0xce,0xa4,0xc3,0x93,0xc7,0x79,0x20,0x3a,0x5a,0x08,0x7d,0x1d,0xc2,0x82,0xc1,0xef,0xe8,0x53,0xd8, + 0xee,0x4e,0x43,0xa6,0x18,0x77,0x8a,0xe4,0x0d,0xd5,0xa5,0x26,0x6f,0xf0,0x80,0x2b,0xf9,0xde,0x03,0x34, + 0xed,0xb9,0x7a,0x86,0x56,0xeb,0xae,0x6e,0x4f,0x86,0xe2,0x3d,0x52,0xdc,0xc3,0x5d,0x0f,0x72,0xe2,0x30, + 0x5e,0x66,0xd3,0x2b,0xdf,0x25,0x1a,0x5b,0x55,0xe8,0x38,0x07,0x63,0xb5,0x95,0x38,0x68,0x06,0x34,0xc3, + 0xae,0xb9,0x9f,0xa5,0xe9,0x12,0x20,0xd3,0x35,0x3a,0x25,0x3e,0x6e,0x52,0x5f,0x7b,0x16,0x43,0x62,0xbf, + 0x1b,0x34,0xba,0x45,0x06,0x68,0x1a,0xf4,0xe6,0xba,0x39,0x0f,0x2c,0x98,0x74,0x26,0x43,0xf6,0x90,0xd7, + 0xb0,0xa0,0xac,0x07,0x0f,0xaa,0xb4,0xf6,0xeb,0xd0,0xe4,0xb2,0x07,0xf1,0x56,0xff,0xc3,0xfb,0xec,0x9a, + 0xb8,0xa2,0x0c,0x77,0x22,0x32,0x84,0x2f,0xd1,0x30,0xe2,0xda,0xef,0xd2,0x3c,0xb8,0xb9,0x46,0x21,0x8d, + 0x13,0x76,0x15,0x55,0x00,0xd0,0xb8,0x4d,0xe6,0xd6,0x5b,0x18,0xe3,0xdd,0xf5,0x9b,0x17,0x40,0xba,0x99, + 0x06,0x5a,0x79,0x77,0x23,0xee,0x65,0x90,0x6e,0x42,0xe6,0xe5,0x1d,0x63,0xd5,0xaa,0x2a,0xb6,0x7c,0x95, + 0xd6,0x1d,0xbb,0x0f,0xab,0xc1,0xf3,0xad,0xde,0xdc,0x69,0x47,0xe5,0x26,0x36,0x7b,0xd7,0x47,0x9b,0xa5, + 0x3b,0xea,0xbf,0x6f,0x27,0x9a,0xd5,0x74,0x67,0x14,0xe6,0x7c,0x6b,0x2f,0x54,0x19,0xb7,0x78,0xf7,0x47, + 0x0d,0x79,0xc0,0xdd,0xd4,0x98,0xf7,0xad,0x6d,0x9b,0x52,0xcd,0x2a,0xdd,0xed,0x3b,0x14,0x0a,0x8a,0x77, + 0xe2,0xef,0xb7,0x7e,0xad,0xb3,0xc6,0xee,0xa6,0xba,0x7b,0xd1,0x4d,0x6c,0xa4,0xcd,0x2d,0xef,0x82,0xfb, + 0xdb,0x96,0x57,0x6f,0x9e,0xed,0xda,0x2d,0x60,0x7f,0x5b,0x23,0xad,0x8d,0xb4,0xdd,0x56,0x03,0xe6,0xdf, + 0xd6,0x52,0x63,0x2f,0xb5,0xda,0x81,0x66,0xb5,0x8a,0xad,0xd6,0x32,0xde,0xb1,0xce,0xee,0x61,0x8b,0x6e, + 0x25,0x3e,0xfa,0x2a,0x4f,0x03,0x86,0xab,0x84,0x63,0x12,0x95,0x9a,0x03,0xd3,0x8b,0x63,0x34,0x47,0x8d, + 0x4d,0x24,0x62,0x48,0x5b,0x19,0xd9,0x88,0x9a,0x0b,0xeb,0x39,0xa0,0xd9,0xc7,0xac,0xfa,0xd2,0xa5,0x23, + 0xbb,0x5c,0x74,0x41,0x92,0xeb,0x3b,0x98,0x56,0x5d,0x06,0x35,0x08,0xd0,0x76,0xab,0x3b,0xa4,0x96,0x9a, + 0xd3,0x6f,0x4a,0x2f,0x2d,0xd2,0x86,0x83,0x78,0x4b,0x12,0x36,0x29,0x38,0xf6,0xa0,0xb1,0x15,0x62,0xac, + 0x62,0xdd,0xb3,0xca,0xcc,0x21,0xdf,0x3f,0xcf,0x91,0x20,0x86,0x92,0xd0,0x82,0x72,0xbf,0xe2,0xcc,0x92, + 0x66,0x38,0x88,0xb5,0x85,0x1e,0x56,0xa3,0xdc,0x46,0xb3,0xf4,0x5b,0xaa,0xd6,0x55,0xa3,0xb9,0x24,0xae, + 0xf4,0xcc,0x1e,0x3f,0x8e,0x13,0x6b,0x71,0xf3,0xb7,0xc8,0x13,0x05,0x46,0x75,0x7d,0x92,0xe5,0x57,0x3c, + 0x01,0x89,0x9a,0x00,0x2d,0x56,0x94,0xeb,0x09,0x3f,0xe1,0xc4,0xd6,0x2c,0xa2,0xd2,0x8e,0xe9,0x13,0x89, + 0x29,0x9b,0x0b,0x54,0x71,0x1e,0x4e,0xe3,0x4a,0xf9,0xe0,0x39,0xf2,0xff,0x16,0x8d,0x4f,0x6f,0x4f,0x0f, + 0xcf,0xd6,0x83,0x49,0x3f,0x38,0xba,0xb0,0xde,0x18,0x56,0xd0,0x0d,0x9c,0x42,0xec,0x30,0x6d,0xa9,0x14, + 0xc0,0xd0,0x5e,0xb9,0xab,0x99,0x2a,0x47,0x35,0xca,0xcb,0x90,0xff,0x10,0x8a,0x93,0x49,0x63,0x45,0xb9, + 0x27,0x73,0xea,0x89,0x57,0x26,0xb7,0x4a,0xd0,0xaa,0x66,0x89,0xa8,0x65,0x9b,0x28,0xdc,0x44,0x24,0x5e, + 0x88,0x92,0x36,0xa8,0xf9,0x33,0xb5,0x44,0x89,0x02,0x2b,0xf6,0xe1,0xd8,0xfb,0x02,0x56,0x6a,0x10,0x88, + 0x8a,0x2f,0x92,0x74,0xd6,0x63,0xbb,0x35,0xe5,0x4e,0x71,0x19,0xab,0xd2,0xc3,0x59,0xbc,0x1c,0x9c,0xd5, + 0x0a,0xa5,0xa4,0xfe,0xb2,0xad,0x7c,0xb5,0xd4,0x57,0x29,0xcb,0xf6,0x75,0xf3,0x5c,0xcd,0xe1,0xa6,0x8a, + 0x7d,0x1e,0x9a,0xb3,0x4d,0xe1,0x3a,0x2e,0x9c,0x85,0x6d,0x39,0x41,0x11,0x8c,0x8a,0x08,0xba,0xdf,0xc1, + 0xa8,0x32,0xb6,0xf4,0x8b,0x70,0x16,0x44,0x66,0xf5,0xdb,0x7b,0x5f,0x59,0xaa,0x74,0x3b,0x2e,0x68,0x21, + 0xe7,0x41,0x73,0x72,0x73,0xeb,0x8f,0x5c,0x6f,0xe7,0xb8,0x1e,0x95,0xca,0xb2,0xdc,0x0b,0xa2,0xb2,0xf5, + 0x2d,0x33,0x0d,0x9d,0xc0,0x12,0x26,0x5a,0x54,0xa1,0x79,0x1f,0xfb,0xb1,0x3a,0x84,0x29,0x85,0x29,0x67, + 0xd4,0xb4,0x68,0xff,0x8c,0xe8,0x5f,0x47,0x8d,0x3c,0x84,0x38,0xdd,0xd4,0x08,0x24,0xc0,0x0c,0xac,0xdc, + 0x5b,0x7d,0xda,0xea,0x8b,0xa5,0x32,0x61,0x97,0x30,0x46,0x48,0x87,0x2d,0x8d,0xaf,0x0f,0x87,0xc7,0x8f, + 0x13,0x50,0x9a,0xc5,0x38,0x71,0x35,0xbe,0x92,0xfe,0x87,0x93,0x61,0x23,0xf2,0xa0,0xa7,0x54,0xc2,0x17, + 0x0a,0x1b,0x2a,0x7d,0xe9,0x22,0xe0,0xbd,0xa0,0x05,0x03,0x88,0xd1,0x23,0x63,0xb0,0xa0,0x42,0xbb,0x45, + 0xf6,0x5e,0x0b,0x2e,0x52,0x40,0xb4,0x9a,0xf1,0x90,0xa5,0x47,0xc9,0x75,0x15,0x58,0x94,0xdc,0x02,0xdf, + 0x55,0xe0,0xd2,0xa3,0xef,0x05,0xc1,0x4a,0x3f,0x29,0x8b,0x9d,0x3a,0xae,0xfa,0xaf,0xd5,0x5a,0x2b,0x1c, + 0x57,0x2f,0x5c,0xd6,0x85,0xd1,0x69,0x88,0xe8,0xc1,0xe5,0x16,0xbe,0xd8,0xe1,0x8f,0xe6,0x3f,0x54,0xaf, + 0xe3,0x3b,0x69,0xab,0x7d,0x5a,0xf3,0x91,0x83,0x3e,0xa9,0xfd,0xd5,0x41,0xab,0xb2,0xe3,0x8f,0x86,0x06, + 0x5e,0xeb,0x74,0xe8,0x3c,0x0d,0xdd,0x93,0xce,0x5d,0xad,0x7a,0xf7,0x6a,0x01,0xd5,0x84,0xd9,0xee,0x35, + 0x2a,0xfe,0xec,0x1a,0xb9,0xbc,0x82,0x18,0x6c,0x64,0x6f,0x59,0x10,0xda,0x45,0xb4,0x19,0xca,0x70,0x9c, + 0x4d,0x5a,0x43,0x6d,0x8f,0xd4,0x5e,0x12,0x8f,0xb6,0x4f,0x16,0xf1,0x63,0xe5,0xcc,0xad,0xb9,0x66,0xe7, + 0xca,0xbb,0x26,0x1a,0x06,0x08,0x91,0xe7,0xb5,0xf7,0xdf,0xb4,0x73,0x92,0x8d,0x39,0xb4,0x76,0xda,0xb1, + 0x05,0x15,0x1f,0x11,0x54,0x54,0x80,0x0a,0x44,0xb9,0x74,0xa0,0xa2,0xea,0x7f,0x64,0xf5,0xc1,0x47,0x56, + 0xd6,0x99,0xb1,0xdd,0xca,0x09,0xed,0x3b,0xdf,0x2f,0xda,0xd0,0x52,0x08,0x81,0x42,0x1f,0x37,0xe0,0x00, + 0xab,0xd9,0xac,0xa3,0xc7,0xad,0x0e,0x3b,0xea,0xc5,0xda,0xa4,0xbb,0x53,0xc1,0x38,0x43,0x57,0xd9,0x43, + 0x8f,0xed,0x6a,0x06,0x05,0x63,0x05,0xc0,0xb9,0xe9,0x92,0x56,0x2c,0xce,0xdf,0x17,0x82,0x1d,0x0d,0xe3, + 0x72,0x0b,0x86,0xb7,0x90,0xad,0xe3,0x14,0x65,0x47,0x77,0x1f,0xed,0xec,0xee,0xa3,0x89,0xba,0x31,0x6d, + 0x61,0xb3,0x32,0xb0,0x98,0xac,0x09,0x99,0x2c,0x09,0x13,0xfb,0xa4,0xb6,0x64,0x60,0xeb,0xa2,0xb8,0x51, + 0x51,0x8e,0xef,0x77,0x8c,0xbe,0x6e,0x35,0x49,0xb9,0x0d,0xa5,0xb8,0x0e,0x32,0xb1,0x67,0x39,0x27,0x43, + 0xa2,0x13,0x42,0x83,0xec,0xb4,0xd5,0x58,0xb5,0xbb,0x31,0x0e,0x25,0xde,0xc9,0x8d,0x99,0x36,0x95,0x41, + 0xa7,0xdb,0xe0,0xb6,0xd2,0xde,0x1f,0x6e,0xf2,0x7a,0xb0,0xaa,0x33,0x44,0xba,0x80,0x27,0xe8,0x9d,0x03, + 0x81,0x08,0x71,0x6b,0x62,0x9a,0x5c,0xc7,0x3b,0x66,0xa6,0xc5,0x77,0xec,0x9c,0xa0,0x9d,0x8d,0xbe,0x65, + 0x38,0xad,0xb6,0x77,0x4d,0xd4,0x7f,0xa7,0xe9,0x1d,0x13,0xd6,0x3d,0xbe,0xed,0x79,0x13,0x75,0xa2,0xec, + 0x77,0xd3,0x9b,0xb7,0x9d,0x08,0x84,0xaa,0x4a,0x02,0x74,0x60,0x79,0xa2,0xec,0x13,0x78,0x64,0xf1,0x13, + 0xe0,0x5a,0x21,0xb0,0x29,0x2f,0x26,0xea,0x3d,0x6c,0x66,0xb5,0x39,0x0b,0xc2,0x74,0x94,0x0e,0xe3,0xa1, + 0xbe,0x77,0x76,0xe6,0xf5,0x33,0x43,0x19,0x6c,0x8b,0xac,0xc7,0x53,0x83,0xe9,0x56,0xf0,0x6e,0xf6,0xb6, + 0x82,0x2c,0x91,0xec,0x50,0xb6,0x25,0xd4,0x07,0x4f,0x0f,0x2b,0xc5,0xa2,0x6f,0x89,0x13,0xcf,0x66,0x5b, + 0xf8,0x83,0xed,0xd4,0x4d,0xc7,0x77,0x34,0x5b,0x07,0xb6,0xc5,0xa1,0x4b,0x4d,0xb6,0x67,0xd4,0x9e,0x19, + 0x6d,0x75,0xcb,0x9d,0xc2,0x21,0xc5,0x60,0x75,0x1e,0xa5,0xe5,0x7f,0xe3,0x28,0x9d,0xa9,0x68,0x44,0x46, + 0x01,0x03,0x0e,0x7f,0x9a,0xf3,0x32,0xeb,0x26,0x62,0xfe,0xbc,0x21,0x8d,0x8b,0xeb,0xb2,0x2d,0xd3,0x60, + 0xad,0xd6,0x3d,0xda,0x62,0x9d,0xe1,0x75,0x74,0x04,0x83,0xd2,0xe3,0x09,0x34,0x37,0x60,0x8e,0x84,0xf3, + 0x99,0x7d,0x47,0x29,0x13,0x4c,0x78,0x33,0xb2,0xef,0x84,0x36,0xf1,0x22,0xe1,0xb3,0xa4,0x22,0x5e,0x02, + 0x31,0x19,0xae,0xdf,0x62,0x32,0x5c,0x8b,0xc9,0xb0,0xd4,0x09,0xc2,0x8e,0xfc,0x93,0x89,0xfa,0x1a,0x5b, + 0x0a,0x2b,0x70,0x84,0xbd,0x24,0xe8,0x92,0x36,0x46,0x72,0x65,0x17,0xef,0xc0,0x47,0x0d,0xe9,0xc5,0x4e, + 0x6c,0xb4,0xa3,0xc1,0xb7,0x20,0x8c,0x46,0xbb,0xbb,0x30,0xd1,0x7f,0xde,0xec,0x0e,0x2c,0xd4,0x35,0xaa, + 0xb7,0xe0,0x20,0xe9,0xc7,0xdb,0x19,0x6d,0xa2,0x94,0x70,0xcd,0xab,0x70,0x50,0xc5,0x88,0xa6,0xd2,0x38, + 0x88,0xf3,0x14,0x0e,0x72,0xb3,0xda,0x38,0x08,0x6e,0x1a,0x91,0xc3,0xe6,0xad,0xc1,0xd4,0xa2,0x0e,0x77, + 0x26,0xfc,0x44,0xeb,0xab,0x27,0x55,0x95,0x5d,0xe4,0xf0,0xa7,0xb2,0x82,0xc0,0xc0,0x06,0x08,0x5d,0xc4, + 0x89,0x42,0x62,0x43,0x7f,0x1a,0x77,0x5f,0xae,0xe1,0x52,0x9f,0x70,0xd7,0x5b,0xb2,0x77,0x7e,0x7e,0x65, + 0x99,0x8f,0xe9,0x4e,0xf4,0xd5,0x76,0x47,0xa3,0x4c,0x90,0x0d,0x02,0xf3,0xcb,0x51,0x77,0xfb,0x30,0x56, + 0x8e,0x76,0x64,0x05,0x6d,0xe4,0x96,0xb5,0x90,0x9b,0xb2,0x17,0x7c,0x27,0x6a,0x6b,0x89,0xac,0xb9,0x7b, + 0x3b,0x51,0x5b,0xf6,0xdf,0x40,0x6d,0x98,0x86,0xad,0x75,0xe3,0x00,0x3e,0xb9,0xbe,0xa6,0xab,0x37,0xa1, + 0xe3,0xc2,0x33,0xdb,0xc6,0x7d,0xdd,0x0a,0x7a,0x65,0xb7,0x27,0x04,0xc6,0x7d,0xb5,0x90,0x93,0x4d,0x6f, + 0x08,0x1a,0xf7,0xe5,0x1d,0xb8,0x2f,0x2c,0xb6,0x50,0x60,0xb9,0x13,0x05,0x96,0x82,0x02,0x4b,0x41,0x81, + 0xa5,0x42,0x81,0x65,0x03,0x05,0xe6,0x71,0xe9,0xa2,0xc0,0xd2,0x45,0x81,0xfa,0x05,0x8e,0x3d,0x1a,0x96, + 0xda,0x68,0x69,0x50,0xa6,0xb3,0xd5,0x34,0xed,0xd2,0xb6,0xd4,0xbd,0xfb,0x62,0x90,0xe5,0xd3,0xc5,0x6a, + 0x46,0x34,0x69,0x1d,0x8c,0xb6,0x66,0x37,0x0d,0x7d,0x1f,0x36,0x21,0x1c,0xa0,0x00,0x6d,0x42,0x94,0x01, + 0x66,0x28,0x15,0xe7,0x9b,0x0a,0xf3,0x96,0x6f,0xc1,0xbc,0xa5,0xc6,0xbc,0x65,0x37,0xe6,0x2d,0x05,0xf3, + 0x62,0x90,0x0e,0xe6,0x95,0xa0,0x7a,0x22,0xb0,0xeb,0x32,0x8d,0xcb,0xa8,0xc3,0xce,0xba,0x86,0x5f,0x06, + 0xb4,0xcc,0xc9,0x4d,0x92,0x2d,0x92,0xf3,0x6c,0x91,0x21,0x3f,0xbe,0x6f,0x52,0x13,0x51,0xda,0xb8,0xec, + 0x45,0x9c,0xf2,0xd7,0xda,0xf6,0x35,0x5e,0xd2,0xb3,0x32,0x90,0x8d,0xbd,0xbf,0x0e,0x3e,0x19,0x9c,0x78, + 0xe1,0x6b,0xa5,0x65,0x69,0xcc,0x14,0xee,0xd3,0x3c,0xba,0xaf,0xb3,0x9a,0x00,0xcd,0xfb,0xf9,0xab,0xcf, + 0x7f,0xcd,0xe6,0x99,0x17,0x56,0x77,0x55,0x9d,0x5e,0x7f,0xf3,0x2c,0xf2,0x5e,0xf0,0x53,0xef,0x9b,0x67, + 0x5e,0x38,0xcf,0xca,0x6b,0x62,0x5f,0xd3,0x57,0xd2,0x64,0xe4,0x7d,0xa9,0x12,0x7a,0xea,0x23,0x51,0xcf, + 0x0b,0xa7,0xc5,0xf2,0xae,0xcc,0x2e,0x2e,0xeb,0xc8,0x7b,0xaa,0x1f,0x7b,0xff,0xdf,0xff,0xdb,0x7b,0x78, + 0xfc,0xf0,0xb8,0xf7,0x43,0x52,0x5e,0xf5,0x6e,0x92,0xbc,0xf7,0x73,0x9a,0x57,0xb7,0x05,0xad,0x90,0x47, + 0x40,0x9e,0xc0,0xa5,0x5e,0xe4,0x3d,0x5f,0xa4,0xb0,0x03,0xe3,0xa8,0x2d,0x3d,0x95,0xda,0x33,0x57,0xc4, + 0x58,0xea,0xc1,0x60,0xe0,0x85,0x65,0x7a,0x4e,0xfb,0xe6,0x79,0x9a,0x4b,0xad,0x97,0x97,0x69,0x4f,0x7a, + 0xdb,0xbb,0xcd,0x16,0x8b,0xde,0x79,0xda,0x93,0x12,0xe9,0x2c,0xec,0x2d,0xa5,0xc9,0x32,0x9d,0x97,0x69, + 0x75,0xc9,0xdb,0xae,0xb7,0xa4,0x51,0xf7,0x92,0x39,0x21,0x33,0xea,0xfa,0xac,0xf2,0x42,0xe6,0x9c,0x3e, + 0x5f,0xd5,0x35,0x86,0xf4,0x04,0x2f,0x8d,0xb4,0x17,0xc9,0x0d,0x7f,0x48,0x7e,0xb9,0x0b,0xb3,0xf4,0x26, + 0x9b,0xf2,0x22,0xd0,0xf7,0xf1,0x9f,0xc6,0x7d,0x4b,0xf3,0xf6,0xa2,0x4e,0xea,0x55,0x15,0xdd,0x27,0x53, + 0x78,0x59,0x5d,0x16,0x59,0x5e,0x9b,0xa9,0x7d,0xf2,0x1c,0xa5,0x66,0x59,0x85,0xcb,0xee,0x59,0xe4,0x3d, + 0x53,0x4f,0x3a,0xfa,0x5c,0x91,0x23,0x68,0x9e,0x29,0xfe,0x6b,0xf6,0x65,0xb6,0xa3,0x42,0x98,0xcd,0x50, + 0xe2,0x9b,0x19,0xee,0x96,0xf2,0xe2,0xc5,0x0b,0x5e,0x26,0xfa,0xdf,0x83,0x9d,0xf6,0xbc,0x58,0xe5,0x54, + 0xa6,0x9a,0x26,0x39,0xc2,0x40,0x41,0x13,0x9f,0x2a,0xbf,0xa0,0xd7,0xde,0x54,0xbf,0x63,0x95,0xf2,0x9c, + 0xc0,0xef,0x4b,0x02,0x2d,0x64,0xcb,0x6f,0xaf,0x2e,0x7a,0x2a,0xc3,0x94,0xa0,0x7e,0x7d,0x5f,0x54,0xbc, + 0x98,0xfa,0x9d,0xd6,0xa6,0xaa,0xb9,0x67,0xaa,0x8c,0xea,0x9d,0x79,0xf3,0x36,0x32,0xa6,0x15,0x2b,0xee, + 0x9f,0xbf,0x94,0x11,0xc9,0xe4,0x78,0xa1,0x1a,0xe0,0x53,0xd6,0x56,0xaa,0x7b,0x52,0xd0,0xdb,0x38,0x1f, + 0x74,0x6b,0xd9,0xcf,0xda,0x9a,0xb6,0x27,0x2c,0x6b,0x4b,0x71,0x2e,0xd1,0x92,0x39,0x93,0xee,0x7d,0x91, + 0x63,0xae,0x7a,0x92,0xd6,0xe3,0xc4,0x46,0x89,0xaf,0xb9,0xd4,0x93,0xc5,0xa2,0xb8,0xad,0x68,0xca,0xe8, + 0xa8,0x56,0x86,0xef,0x3d,0xdb,0x8d,0xde,0xbc,0x2c,0xae,0x7b,0x77,0xc5,0xaa,0xec,0xc9,0x82,0x63,0x7e, + 0x18,0x84,0xd4,0x36,0x51,0xee,0x7c,0xb8,0x7e,0x03,0x4e,0x7b,0xcb,0x55,0xb9,0x2c,0xaa,0xb4,0x1a,0xf4, + 0x00,0x9e,0xba,0x78,0xb3,0x0c,0xb5,0xa3,0xb6,0x36,0x35,0x01,0xe3,0xce,0xba,0x5e,0x46,0x47,0x47,0x27, + 0x9f,0x3e,0x1c,0x9c,0x7c,0x4c,0x5b,0x75,0xf0,0xe1,0x51,0xef,0xf6,0x32,0xcd,0xd1,0x83,0x1e,0x36,0x99, + 0x99,0x5f,0xf4,0x23,0xab,0xa9,0x6d,0x3e,0x0e,0xea,0x5e,0x31,0x9f,0xf7,0x92,0xaa,0x57,0x15,0x70,0xee, + 0x50,0xf5,0x14,0x38,0xa1,0x77,0x29,0xbe,0xa2,0x3f,0x8b,0x0d,0x41,0xd9,0x54,0x81,0x12,0xd9,0xa4,0x3f, + 0x9d,0x22,0x15,0xd2,0xfd,0x24,0xbf,0xa3,0x8d,0x77,0x37,0xe8,0xfd,0x93,0x3e,0x06,0x58,0x49,0x16,0xf4, + 0x5a,0xf5,0xcc,0x69,0xd5,0x13,0x2b,0xbd,0x1e,0x0e,0x3f,0xf4,0xf6,0xfc,0xae,0x07,0x6d,0x07,0x6c,0xd1, + 0xfa,0xb2,0x39,0xd1,0xbd,0x73,0xde,0x37,0xbd,0x55,0x4e,0x34,0x16,0xe7,0x7e,0xff,0xc5,0xb3,0xde,0x02, + 0x88,0xa0,0xea,0xad,0x96,0xb4,0x7f,0x5c,0x80,0xd7,0x4b,0xe5,0xf6,0xba,0x51,0x42,0x96,0x4a,0x2d,0x7a, + 0xe7,0xfc,0xd3,0x74,0xf0,0x2a,0x15,0xb7,0x79,0x0f,0xfb,0xa6,0x57,0xb2,0x17,0xac,0x41,0x4f,0x61,0x94, + 0x14,0x62,0x68,0xee,0x08,0x76,0x09,0x61,0x05,0x3a,0x0a,0x6e,0x8b,0x72,0x46,0xa3,0x9e,0xf5,0xe6,0xab, + 0x92,0x72,0xda,0x0b,0x78,0x9e,0x12,0x64,0xa0,0xa7,0x55,0x36,0x93,0xcd,0xe5,0x85,0xba,0x1a,0x61,0x2a, + 0xf5,0x44,0x9b,0xe0,0x72,0xba,0x8c,0xbc,0x5f,0xe8,0x23,0xcf,0xbe,0x7e,0xfa,0x5c,0xde,0x15,0x6c,0xad, + 0xea,0xe2,0x1a,0x9e,0xa6,0x10,0x1a,0xaa,0x27,0x87,0x0f,0xad,0x78,0xde,0xfb,0xe6,0x79,0x2f,0x99,0xcd, + 0xe0,0xb9,0x75,0x07,0x3c,0xc9,0x22,0xd0,0x29,0x70,0x4e,0x13,0x83,0x65,0xa1,0x29,0xa5,0x92,0x57,0x69, + 0xba,0x54,0x4b,0x81,0xb9,0x5d,0xa0,0x01,0x80,0x06,0x14,0xc0,0x09,0x50,0x92,0x1a,0x6f,0x07,0x04,0x27, + 0xb3,0x02,0x78,0x8a,0xd0,0xc4,0x52,0x7d,0x87,0x70,0x85,0xf9,0x26,0x0d,0x69,0x75,0x9e,0xa7,0xf5,0x75, + 0x52,0x5d,0xd1,0xc0,0xf8,0xb9,0x87,0x17,0x2f,0xbc,0xa0,0x83,0x85,0x16,0x3d,0xf2,0xbe,0x92,0x07,0x2f, + 0xbc,0xa4,0x8d,0x2e,0xa6,0x39,0x5f,0xab,0x27,0x9b,0xf6,0xdc,0xfa,0x34,0xa6,0xdd,0xaf,0xac,0x71,0xa8, + 0xa5,0xa9,0xf9,0xd2,0x46,0x9d,0x22,0x0d,0x24,0xc0,0x29,0x34,0x97,0x74,0x44,0xa9,0xa4,0xaf,0x09,0x0b, + 0xf3,0x21,0x42,0x69,0xb4,0x6e,0xf6,0x98,0x51,0xf9,0xe6,0x90,0x11,0x33,0x6b,0xae,0x4b,0x00,0x45,0xf8, + 0xd4,0x7b,0x22,0x50,0xf7,0x9c,0xa1,0x4e,0x10,0x09,0xc3,0x1a,0x95,0xe8,0xf9,0xfd,0x47,0x83,0x47,0x37, + 0x81,0x2e,0xfe,0xe2,0xe5,0x13,0x41,0x41,0x58,0xdd,0x1f,0xb0,0x33,0xde,0x52,0xfe,0xc9,0x73,0x7d,0x1c, + 0x28,0xe0,0x6c,0x7c,0x48,0x81,0x37,0x57,0x4a,0xd8,0x1a,0x9c,0x30,0xe2,0x6d,0x40,0xe3,0x65,0x2a,0x2f, + 0xba,0xc7,0xd9,0xa5,0x8e,0x02,0x82,0xdb,0xd5,0x62,0xc6,0xbb,0x0d,0xa9,0xfa,0xa4,0x52,0x48,0x8f,0xcf, + 0x3e,0x8b,0xce,0xb6,0x4a,0x3b,0xb8,0x88,0xd8,0x99,0x1a,0x8e,0x67,0xa5,0x8e,0x4c,0xe3,0xce,0xd6,0x4d, + 0x59,0x3e,0xc6,0xba,0x3f,0x50,0xc1,0x5c,0xa6,0xf3,0x03,0x5c,0x69,0xfb,0x0b,0x5c,0x61,0xeb,0x0b,0xb2, + 0x28,0xd8,0x75,0xdb,0x23,0x26,0x6a,0xac,0xcc,0x52,0xaa,0xc5,0x9b,0x52,0x8f,0x79,0xb5,0x44,0x5f,0xf5, + 0xaa,0xd2,0x14,0x63,0xd2,0x7a,0x1c,0x82,0xad,0x27,0x79,0x40,0x2a,0x1a,0x08,0x70,0xde,0xd3,0xd7,0xb8, + 0x50,0xe3,0xb0,0x2f,0x53,0x76,0x9e,0x46,0x3b,0x82,0x20,0x3f,0x83,0xf9,0x4f,0x45,0xbb,0x96,0xd0,0x25, + 0x97,0xef,0x59,0xda,0x7b,0x71,0x27,0x58,0x18,0xee,0xa5,0x09,0x41,0xdd,0xd2,0x5e,0x5f,0x2d,0xf5,0xea, + 0x67,0xd4,0x61,0xf9,0xc2,0xcf,0x84,0x2a,0x70,0xf4,0x1c,0x47,0xde,0x8f,0x20,0xa5,0x16,0x3d,0x76,0xb2, + 0xbe,0x5a,0x7a,0xe1,0x09,0xed,0xf0,0x9c,0x0a,0x2d,0x8b,0xbc,0xa2,0xd5,0x0e,0xd5,0x27,0x08,0x05,0x5e, + 0x6a,0xd8,0x65,0x9d,0xa0,0x59,0x71,0xe1,0x85,0x0f,0x51,0xf8,0x92,0x30,0x0b,0x0e,0xd4,0xf4,0xcd,0x34, + 0x5d,0xca,0xe1,0xf5,0x68,0x67,0x23,0x55,0x31,0xaf,0x5b,0x8d,0x7c,0x68,0xe8,0x2e,0x2a,0x85,0x6e,0xf4, + 0x60,0xcd,0x46,0x8f,0x38,0xbb,0x3f,0x22,0xea,0x20,0xb9,0xc2,0x64,0xc9,0x09,0x05,0x55,0xa8,0x5e,0xb5, + 0xa0,0xff,0x5e,0xf8,0xb1,0x5b,0x31,0xad,0x85,0xb8,0x98,0x5e,0xbd,0x2c,0xd9,0xe6,0xe8,0x49,0x8f,0xdf, + 0x7a,0x35,0x5e,0x1b,0x07,0x90,0xc1,0x95,0x15,0xd1,0x55,0x98,0x4e,0x8d,0x53,0xf3,0x34,0x41,0x17,0x70, + 0x02,0x12,0x4a,0x24,0x22,0x15,0x48,0xf3,0xa8,0xc0,0x91,0xc8,0x46,0x7e,0x54,0x94,0x3b,0xb1,0x03,0x2f, + 0x97,0xe9,0x75,0x71,0x23,0xa6,0x80,0x9a,0xe2,0x14,0xfc,0xaf,0xfa,0xf4,0x8c,0x70,0x36,0x96,0x9c,0x50, + 0x88,0x7a,0x6a,0xe4,0xf2,0x37,0x08,0x45,0x64,0xea,0x4c,0x68,0xa4,0x2b,0x98,0x70,0xe1,0x8d,0x3f,0xe6, + 0x8c,0x11,0x94,0x48,0xbe,0x78,0x27,0x79,0xfb,0x7e,0xf4,0x6d,0xfa,0x9f,0x91,0xb7,0x5f,0x10,0x6c,0x16, + 0x17,0x69,0x7e,0xbe,0xc8,0xae,0x7a,0x17,0xc4,0xc3,0x2c,0xe8,0x3c,0x3e,0x4f,0x7f,0xcf,0x2e,0x68,0x66, + 0x68,0x03,0x27,0x33,0x2a,0x70,0xc3,0x64,0x9a,0x39,0x89,0xd2,0x2e,0x8a,0xf7,0x6b,0x2a,0x5d,0xa9,0x6e, + 0xe3,0x14,0x22,0x02,0x60,0x99,0x67,0xe9,0xea,0x96,0x7e,0x2f,0x04,0x5c,0x42,0xf4,0x18,0x9d,0xa6,0xd3, + 0x20,0xfd,0x3d,0x05,0xcd,0x9b,0xe5,0x49,0x2f,0xa7,0xae,0xa4,0x79,0x8b,0xe2,0xfd,0x69,0x59,0x2d,0x92, + 0x24,0xef,0xa4,0x79,0x3f,0x37,0xdd,0x2b,0xa4,0x54,0x07,0xf9,0xfb,0x7a,0xf6,0x67,0xc8,0xdf,0x5f,0xb2, + 0x9a,0xfa,0x3a,0xbd,0x24,0x40,0x5e,0xbc,0x3f,0x0d,0xdc,0xac,0xa5,0x08,0xe1,0x17,0xd4,0xb1,0x25,0x6c, + 0x78,0x67,0x6d,0x72,0x38,0xa3,0x8e,0x5f,0xa4,0x37,0xec,0xd7,0xbe,0x9b,0x24,0x4e,0xe6,0x17,0x69,0x59, + 0xe4,0xdb,0x14,0xf1,0x77,0x94,0x79,0x01,0x74,0x42,0xb3,0xa8,0x1c,0xc1,0xd3,0xe1,0x76,0x85,0x76,0xda, + 0x94,0xf1,0x2b,0x5b,0x82,0x0a,0x2f,0x8a,0x12,0x85,0x9a,0xd4,0xf1,0x8f,0xe8,0x09,0x5a,0x92,0xae,0xbc, + 0x0f,0x7d,0xfc,0xf5,0x2a,0x9b,0x65,0x17,0xe9,0xbb,0xe8,0x63,0xfb,0x71,0x53,0xd3,0xe9,0x8f,0x0b,0x4a, + 0x2d,0x0a,0xf9,0x89,0x4b,0xb1,0xd1,0x69,0x2c,0x93,0xca,0xd0,0xd1,0x26,0x93,0x7f,0x48,0x92,0x2b,0x42, + 0xb0,0x20,0x14,0x08,0x80,0x17,0xd9,0x6b,0xa2,0x00,0xaf,0x7b,0x98,0x1c,0xa1,0x99,0xed,0x39,0x92,0x02, + 0x80,0x93,0x39,0xe7,0x11,0x38,0x11,0x75,0x4e,0xc8,0x39,0x4f,0x92,0x52,0xc0,0x90,0x36,0xef,0xd2,0x20, + 0x87,0x54,0xe6,0xb3,0xc7,0x18,0xcc,0x49,0x35,0xe4,0x2a,0xdc,0x54,0xf7,0x9e,0x35,0x6b,0x11,0x1a,0xa1, + 0x22,0xe7,0x29,0x41,0x32,0xf2,0x7b,0x37,0x59,0xd2,0x49,0x38,0x53,0x3e,0x7d,0xf9,0xb5,0xdb,0xb3,0xcb, + 0xf4,0x1c,0xd0,0x70,0x8d,0xc1,0x0c,0x7a,0x2f,0x64,0xbc,0xd2,0x2f,0xd0,0xb6,0x84,0x4f,0x33,0xf4,0x95, + 0xc7,0xe9,0xf6,0x81,0x88,0x66,0x38,0x34,0xfd,0x3d,0xc3,0x78,0x51,0x9a,0xc1,0xea,0x9c,0xf0,0x21,0xb1, + 0xe4,0x17,0x84,0x2c,0x89,0xca,0xff,0x36,0xed,0x5d,0x11,0xb9,0xeb,0xb6,0x56,0x14,0x57,0xee,0xb4,0x12, + 0x55,0x46,0x48,0xb3,0x58,0x62,0xac,0x8d,0xa9,0x27,0xf2,0x6d,0x89,0x31,0xcd,0xca,0xd5,0x15,0xa6,0x83, + 0x58,0x7f,0x74,0x7d,0x26,0x54,0x73,0x02,0x30,0xa4,0x49,0x6c,0x13,0xcd,0xce,0x1a,0x63,0x77,0xf2,0x01, + 0xab,0xc0,0x73,0x8b,0x74,0x56,0x65,0xb7,0x97,0x00,0x8d,0xd3,0x14,0xa5,0x04,0x66,0x2d,0xc2,0xf9,0xd5, + 0x6a,0xd1,0xbb,0xcc,0x78,0x67,0x10,0xc6,0xc7,0x8c,0xf0,0x86,0xa2,0x62,0xb7,0xc9,0xf4,0xb2,0xbe,0x2d, + 0x40,0x3d,0x67,0x34,0x35,0xa9,0x45,0x57,0x29,0x95,0xa4,0x49,0xc9,0xeb,0x15,0x4f,0x6b,0x8f,0x50,0x71, + 0x09,0x00,0xe6,0xe9,0xa8,0x76,0xd2,0xd2,0xbf,0x9a,0x06,0x35,0x35,0xfd,0x55,0x7a,0x5e,0xae,0x08,0x47, + 0xee,0xa2,0xa8,0x69,0x4e,0x19,0xc0,0x98,0xa8,0xa5,0xc3,0x89,0xa6,0x2c,0xbd,0xcd,0x5e,0xff,0x0e,0x98, + 0x4b,0xf2,0xad,0x61,0x0e,0x7a,0xbf,0x12,0x00,0x52,0xa5,0xec,0x75,0xce,0xb0,0x7b,0x4b,0x5c,0xc9,0xeb, + 0xd4,0x5d,0x2b,0x54,0x83,0xd2,0x00,0x0d,0x88,0xfe,0xfd,0x9e,0xbd,0x46,0xfe,0x6d,0x4a,0xc3,0xbe,0x05, + 0xec,0xd2,0xcb,0x75,0x9a,0x2a,0x5c,0x7d,0x0e,0xbb,0xee,0x6d,0xe2,0x9a,0x1e,0x77,0x92,0xd6,0x30,0x78, + 0x79,0x37,0x71,0x9d,0x5c,0xef,0x20,0xae,0x5f,0x00,0xb5,0x51,0x3f,0x66,0x9a,0xbc,0xc6,0xb7,0x76,0x12, + 0xd7,0xbb,0xa8,0xeb,0x04,0x8a,0x11,0x04,0xe2,0x04,0x32,0x80,0x92,0x5d,0x44,0xf6,0x79,0xf6,0x9a,0x28, + 0x24,0x06,0xa4,0x3f,0x4f,0x67,0x3b,0xf4,0xde,0x3b,0xe8,0xeb,0x46,0xcb,0xee,0x76,0xe1,0x6d,0x61,0x48, + 0xec,0x74,0x4e,0xeb,0x93,0x5c,0xec,0xa0,0xb1,0x81,0xab,0xd5,0x81,0xa8,0x3e,0xca,0x5b,0xb4,0x58,0x5e, + 0x26,0x8c,0xd0,0xda,0x54,0x36,0xca,0x3b,0x68,0x1d,0xd2,0xb2,0x74,0xb1,0xe0,0x89,0xe9,0xa8,0xa9,0x29, + 0x61,0xe7,0x2b,0x6f,0xab,0xb2,0x45,0x72,0xbf,0xc7,0xd7,0xdc,0x03,0xf8,0x7d,0x3f,0xa7,0xea,0x6c,0xd3, + 0xdf,0xa8,0xe8,0x2e,0x40,0xb3,0x7b,0x6d,0xea,0xfb,0x4b,0xda,0xf1,0xbd,0x9a,0x0e,0x71,0xa2,0x58,0xec, + 0xe2,0x33,0x1d,0xd2,0x4d,0x82,0xbb,0xd4,0x07,0xf3,0xa2,0x37,0x10,0xa4,0x4d,0xc1,0xdb,0x13,0x1b,0xcd, + 0xd4,0x07,0x63,0x6d,0xea,0x5e,0x4d,0xa5,0xde,0x4d,0x68,0x13,0xa5,0x6d,0xe8,0x16,0xa6,0xb5,0xa9,0x00, + 0x9d,0xbc,0x44,0xf3,0xa2,0xe7,0xa1,0x69,0x55,0x30,0x68,0x37,0xc5,0xfd,0x53,0x8e,0x83,0x1c,0x54,0x37, + 0xd1,0x05,0x10,0xc8,0x80,0x8f,0x7c,0xf4,0x8e,0xa6,0xba,0xe9,0xee,0xaf,0x75,0x19,0x1a,0xd7,0xef,0x45, + 0x7a,0xa5,0xca,0xea,0xad,0x25,0xc4,0x37,0x6d,0x69,0x3a,0x4a,0x80,0xc0,0x68,0xae,0x70,0x6e,0x10,0x5d, + 0xb5,0xa4,0xb1,0x82,0x12,0xb1,0x44,0x38,0xcd,0x10,0x51,0x17,0x1d,0x74,0x38,0x48,0xc1,0x16,0x25,0x7e, + 0x0e,0xb2,0x26,0xbb,0x3a,0xa7,0x7d,0x4e,0x87,0x53,0xbd,0x5a,0x09,0xda,0x55,0x67,0x27,0xb5,0x8f,0x19, + 0xa6,0xf5,0x21,0xe4,0x94,0x03,0xb9,0xe6,0xf5,0x6d,0x46,0xdd,0x58,0x20,0x3f,0xcd,0x8f,0x8a,0x39,0xfa, + 0x7b,0x8b,0x75,0x94,0x8a,0x37,0x1d,0x98,0x90,0x8f,0xda,0x0c,0x67,0x57,0x89,0xe6,0x70,0xea,0x00,0x30, + 0x71,0xa5,0x96,0xbf,0x83,0x2a,0x57,0x07,0x4b,0x8b,0x2e,0x7f,0xa5,0x6b,0xef,0x24,0xce,0x19,0x8a,0x9d, + 0x91,0xe6,0x8a,0x10,0x92,0x9e,0x32,0x29,0xb4,0xb1,0xfe,0xa9,0x79,0xe2,0x9f,0x2c,0x97,0x7e,0x70,0x9f, + 0xbc,0xc9,0x8a,0x4a,0xf4,0x1b,0xc1,0x42,0x15,0x25,0xf4,0x27,0x99,0x79,0x4a,0x07,0xab,0x2a,0xd5,0x8a, + 0x2e,0xdb,0x46,0x41,0xa9,0x32,0xec,0x69,0xf8,0x9c,0x07,0x27,0x7a,0x37,0x62,0xcf,0x50,0xfc,0xf8,0x94, + 0x7d,0xc9,0x37,0x5f,0xd7,0xeb,0xe3,0xb0,0x99,0xf2,0x59,0xac,0x6b,0x3e,0x27,0x16,0x27,0xab,0x10,0x0e, + 0x49,0x79,0x14,0x8e,0x5a,0x6d,0xf5,0xe3,0x13,0x84,0x22,0xef,0xa9,0x82,0x0d,0x67,0x11,0xb4,0xfe,0xa0, + 0x95,0x09,0x26,0x5d,0xe3,0x17,0x36,0x04,0x51,0xed,0xd3,0x94,0x25,0x77,0xeb,0xf5,0x49,0xb0,0x09,0x06, + 0xf5,0x65,0x9a,0xbb,0xe5,0xd4,0x30,0x78,0x3e,0x10,0x3a,0x1d,0x5e,0x40,0xb7,0xba,0xb3,0x09,0xc2,0x57, + 0xab,0xd4,0x71,0x39,0xe7,0x4d,0x2f,0xd3,0xe9,0x95,0x17,0xde,0x6b,0x6f,0xf5,0xca,0xe3,0x3f,0x47,0x40, + 0x8f,0x55,0x6e,0x2f,0x52,0xaf,0xf7,0x3d,0x4e,0x20,0x4a,0x55,0xdc,0x7b,0x86,0x3d,0x43,0x72,0x9b,0xa7, + 0xde,0xc6,0xeb,0xfd,0xed,0x2a,0xbd,0x9b,0x11,0x44,0xc4,0x9e,0x30,0xb8,0xdf,0xa5,0x77,0x00,0x10,0xca, + 0x98,0x2e,0xb2,0xe9,0x95,0x4e,0x7e,0x8a,0x17,0xaf,0x47,0x07,0x13,0x6b,0x35,0xc7,0xde,0xb1,0xf7,0x59, + 0xe3,0xeb,0x04,0xbd,0x65,0xb1,0x68,0x26,0xb2,0x8b,0x79,0x4a,0x3a,0xa2,0x34,0xfd,0xdf,0xc9,0x26,0x2e, + 0x35,0xa5,0x1a,0xf7,0xf7,0x3d,0xa6,0x72,0x7b,0x9b,0x8d,0x5b,0xf2,0xc0,0xf8,0x89,0xe1,0xe3,0x4c,0x79, + 0x80,0x11,0x7f,0x0c,0xe2,0xa2,0xe1,0xf3,0xa2,0x20,0x06,0x37,0x37,0x7e,0x63,0xf6,0x4e,0x36,0x96,0xaf, + 0xd8,0x59,0x04,0x66,0x78,0xec,0x83,0x2f,0xba,0x77,0x86,0xb6,0xe5,0xbd,0x47,0x37,0x04,0x2b,0x75,0xbc, + 0xf3,0x87,0xe3,0x3d,0xfb,0x2c,0xf7,0x3f,0x0f,0xd2,0x6b,0xf8,0x28,0xcd,0xf2,0x25,0xd0,0x93,0xcd,0xc5, + 0x05,0x73,0x63,0x42,0x23,0x17,0x7c,0x1e,0x3d,0x84,0x59,0x25,0xcd,0x3c,0x1c,0xca,0x69,0xfb,0x67,0xa7, + 0x37,0xbe,0x8a,0x7c,0x0d,0xd2,0x4b,0x2b,0x16,0x2a,0xdf,0x85,0x2d,0x98,0x28,0x89,0xfd,0x2b,0x76,0xc2, + 0x84,0xe4,0xee,0x84,0x89,0x5e,0x1c,0xf7,0xb2,0xd9,0xff,0x55,0x90,0xc1,0xf7,0x9a,0x44,0x93,0xf2,0xef, + 0xff,0x62,0x60,0xe0,0x47,0x9a,0xbf,0xff,0x43,0x00,0x81,0x28,0x89,0x2d,0x40,0x68,0xcc,0xaa,0x1c,0xc7, + 0x9f,0x3d,0x86,0x7b,0x25,0x9d,0xc6,0x7d,0xe4,0x99,0xe6,0x27,0x89,0x42,0xc8,0xf3,0x8d,0x52,0xcd,0xea, + 0x8b,0x8c,0xf0,0x3b,0x96,0x33,0xc9,0x64,0xf5,0x78,0xb0,0xec,0x37,0x38,0x56,0xdf,0xef,0x5d,0x67,0x39, + 0x20,0x80,0xa8,0x5a,0x82,0x84,0x0f,0x8f,0x3f,0xfd,0xd0,0x6b,0x56,0xf7,0x7a,0x37,0x87,0x60,0x63,0x16, + 0x4a,0x31,0x43,0xf5,0x60,0xa0,0xfb,0xb6,0x03,0x20,0x52,0x62,0xe7,0xdf,0xde,0x71,0xc8,0xb8,0xfe,0xc3, + 0x6e,0x9f,0xd8,0x6e,0x7f,0xf4,0x9e,0xdd,0x96,0x7e,0xb9,0x9d,0x6e,0x40,0xe8,0x58,0x75,0x73,0x12,0x72, + 0xa4,0x93,0x74,0xb6,0x05,0x59,0xda,0x83,0x78,0x7c,0x2f,0xf1,0x47,0x2d,0xe0,0x38,0xa1,0x72,0x9d,0x44, + 0xc4,0xcc,0xdd,0x84,0x4c,0xdd,0x44,0xca,0xdf,0x8d,0x82,0xdc,0xb2,0x01,0x58,0xaa,0xfa,0x5e,0xdc,0xf8, + 0x8a,0x24,0x8e,0xd4,0xef,0x67,0xa9,0x04,0x85,0xf5,0xf9,0x37,0x56,0xa9,0xfd,0x93,0x2e,0x80,0x4e,0x71, + 0x95,0x8e,0x62,0xed,0x16,0xb9,0x05,0xfe,0x79,0x9c,0x9a,0xd8,0x96,0xea,0x29,0xe6,0xf4,0xc3,0x5d,0x0d, + 0x86,0x1d,0x7d,0xd3,0xbd,0x08,0xb7,0xbe,0x22,0x8d,0x11,0x86,0x57,0x56,0xa2,0x9b,0x8d,0xd6,0x79,0xc3, + 0x21,0xad,0xfc,0x98,0x1b,0x2b,0xee,0x3c,0xb9,0xc9,0x88,0x3f,0x2b,0xca,0xc1,0x82,0x56,0x78,0x05,0x19, + 0xa5,0x72,0x27,0x7d,0xc8,0xee,0xa4,0xdb,0x56,0xd1,0x1e,0x08,0x1e,0x63,0x9f,0x6d,0xec,0xca,0x82,0xa1, + 0x6a,0xdc,0xbf,0x4f,0x17,0x91,0xf7,0x17,0x22,0xe7,0x89,0x4f,0xa4,0x0f,0x45,0x65,0xc8,0x76,0xc7,0xf7, + 0x79,0x51,0xb3,0x5f,0x04,0x66,0x0c,0x18,0xeb,0x68,0xe9,0xe0,0xde,0x71,0x58,0x89,0xcc,0x6d,0xef,0x44, + 0x27,0x7e,0x43,0x0c,0xc3,0x14,0xdd,0x8a,0xbc,0xb5,0x26,0xdc,0xe9,0xe4,0xbf,0x60,0xae,0x93,0x8a,0xc9, + 0xdd,0xc3,0xcb,0xe4,0x1c,0xa1,0x27,0x44,0x76,0xa4,0xa5,0x4a,0x56,0xbe,0xa9,0xda,0x62,0xb9,0x9d,0xbe, + 0xa5,0x6f,0x24,0xba,0x34,0x39,0x77,0xc9,0x21,0x54,0x71,0x48,0x36,0x04,0x7b,0xcb,0xe8,0x3e,0xcd,0x05, + 0x4d,0x52,0x07,0x32,0x62,0xd6,0x8f,0x07,0xfc,0x67,0x25,0x78,0x8d,0x12,0xaa,0x3f,0xc7,0xcd,0xa2,0x4d, + 0x59,0x96,0xe1,0x83,0xf9,0xeb,0xae,0x8c,0x0a,0x93,0xa2,0x1a,0x45,0x5b,0x95,0x46,0xd5,0x46,0x78,0x20, + 0x88,0x1b,0x42,0x83,0x3d,0xfe,0x84,0xf4,0xdf,0x32,0xe1,0xfc,0xae,0x39,0x6f,0xb6,0xce,0x32,0x5c,0x33, + 0x58,0x64,0xe2,0x22,0xd3,0x19,0xf1,0xb7,0xb2,0x12,0xe9,0x0c,0xbc,0xab,0x74,0x62,0xa9,0xf8,0x53,0xae, + 0x83,0xfe,0xb2,0x2f,0x9b,0x59,0xdb,0x83,0xa9,0xa0,0xf5,0x61,0x3a,0x70,0x17,0x16,0xb4,0x9e,0x84,0x12, + 0x09,0x4d,0xf0,0x1d,0x3e,0x7c,0x10,0xae,0xd3,0xf7,0xf8,0xd1,0xd3,0xae,0x28,0x94,0x73,0x0a,0x00,0x22, + 0x2b,0x38,0x5c,0x26,0xd5,0xa5,0xb6,0xa0,0x3a,0x09,0x86,0xb2,0x3f,0xcc,0x42,0xc3,0xd9,0x89,0x82,0xf9, + 0xef,0x5b,0x30,0xc2,0xc8,0xbf,0xcd,0x0c,0x72,0xa2,0xe5,0x94,0xfd,0x6d,0xea,0x52,0xb2,0x2d,0xbb,0xba, + 0xb3,0x88,0xb0,0xa5,0x9d,0xd9,0x55,0x5d,0x2c,0x3b,0xbb,0xa3,0xc0,0x2c,0x26,0x30,0x0a,0xf8,0xcf,0x1e, + 0xa0,0xd5,0x65,0x71,0xfb,0xa3,0xbb,0x1b,0x3a,0xdd,0xec,0x61,0x72,0xf3,0xc6,0xe4,0xc6,0xf7,0x6a,0xbb, + 0x45,0xa9,0x92,0x04,0xd4,0x3a,0x60,0x6e,0xbe,0xbd,0x0a,0xfb,0xfb,0x53,0x3a,0xc4,0x4b,0x4d,0x7d,0x77, + 0x94,0x40,0x70,0xf9,0xed,0xc5,0xeb,0xa6,0xd8,0x5b,0x3d,0x11,0x13,0x8a,0x1d,0x4b,0xbf,0x09,0x3f,0x4a, + 0x1f,0xe1,0x34,0xa7,0x03,0xa1,0x7b,0x9c,0x08,0x7a,0x06,0xb4,0xb5,0xd5,0x66,0xa0,0xb0,0x66,0xc7,0x68, + 0xfc,0xc6,0x70,0xba,0x4b,0x29,0x4c,0xd9,0xdd,0x2d,0x43,0x5f,0x3c,0x79,0xfe,0x8d,0x70,0x68,0x2d,0x1f, + 0x78,0x2a,0xb4,0xcf,0xa2,0x40,0x50,0x0f,0xa5,0x0c,0x06,0xef,0x6e,0xcc,0x09,0x09,0xfb,0x35,0xf2,0xbe, + 0x7e,0xf9,0xf2,0x79,0x4f,0xbf,0xf6,0x10,0xc5,0xa9,0xe7,0xf5,0x6d,0x81,0x81,0xda,0xf5,0x48,0xe1,0x4b, + 0xab,0x11,0x31,0xfa,0xa6,0xbc,0x47,0xe9,0x6a,0x0d,0xa5,0xa7,0x6d,0x50,0xf0,0xb1,0x4d,0xd2,0xa0,0xef, + 0x9d,0xe6,0xa7,0xb9,0xd7,0xcf,0x43,0x76,0x9f,0xe9,0xc8,0x7b,0xde,0xea,0xb3,0x40,0xf8,0xc6,0x8b,0x94, + 0x76,0xda,0x51,0xb2,0xcc,0x8e,0x34,0x66,0xbc,0x67,0x46,0x2b,0x3a,0x39,0x0e,0x2d,0xc7,0x15,0x9d,0xa4, + 0x8f,0xb6,0x38,0xae,0xb4,0x2b,0xa6,0x93,0x72,0x79,0xa8,0x22,0x2d,0xae,0x2a,0xe5,0xe8,0x10,0xfc,0x9a, + 0xf2,0xf1,0x3a,0x68,0xce,0xeb,0x00,0x04,0x2e,0xfc,0x00,0x30,0x90,0x3a,0x7b,0xd0,0x0b,0xd4,0x60,0x1c, + 0x11,0xd1,0x1f,0x1a,0xd0,0xd4,0x51,0x88,0xf9,0x6f,0x0d,0xca,0xb6,0xf9,0x67,0x06,0xe6,0xa8,0xe8,0xe8, + 0xc1,0x29,0x21,0xd6,0x1f,0x5b,0x29,0xa5,0x1a,0xf0,0x5f,0x5b,0x29,0x6e,0xef,0x4f,0xad,0x94,0xf4,0x04, + 0x83,0x69,0x4b,0xf3,0x76,0x1d,0x00,0x72,0x78,0xb3,0xf3,0x4e,0x79,0x84,0xf3,0x11,0x19,0xe1,0x92,0xce, + 0xb7,0xae,0xb5,0x33,0xe7,0x5e,0xea,0xcc,0xff,0x40,0xa7,0x36,0x0e,0xc2,0x46,0x09,0x27,0xc3,0x1c,0x8f, + 0x8d,0x02,0x2a,0x51,0x0e,0xcc,0x66,0x0e,0xa5,0xd8,0xd3,0xb3,0x91,0xa5,0x53,0xe5,0x38,0x6d,0x64,0x21, + 0x05,0xa7,0x6b,0x23,0x31,0x5b,0xba,0x07,0x6d,0xf3,0x2b,0x26,0xdd,0x9c,0xbd,0x8d,0x7c,0x95,0xb8,0xf9, + 0x43,0x2b,0x6d,0xd6,0x2f,0xed,0x5c,0xbf,0x54,0xaf,0x5f,0x6b,0xc1,0x10,0x08,0xb1,0xe3,0xc4,0x52,0x4b, + 0x44,0xe7,0x92,0x5e,0xe3,0xb7,0x42,0x6c,0x6d,0xd7,0xb7,0x7e,0xdb,0xfa,0x6a,0x10,0xd6,0xc0,0xf7,0x87, + 0x46,0x58,0x77,0x63,0x42,0xaf,0x71,0xfb,0x0b,0xa0,0x7c,0x4f,0x48,0x76,0x86,0xd5,0x35,0x0b,0x75,0x6b, + 0x16,0x3a,0xa9,0x8a,0x9d,0xf0,0xae,0x8e,0x76,0xc2,0x69,0x17,0x69,0x7c,0x6c,0xcf,0x7a,0x73,0x7e,0xc2, + 0xcb,0x58,0x49,0x3c,0x87,0xfb,0x49,0xe5,0x79,0xb2,0x59,0xbb,0xdf,0x0f,0x9b,0x09,0x2a,0x54,0xc1,0x49, + 0x64,0x92,0x4d,0x77,0x62,0xef,0xc8,0x73,0x9c,0x4c,0xf6,0x1e,0x76,0x96,0x39,0x6c,0x94,0x79,0xd4,0x59, + 0xe6,0xf4,0xb4,0x51,0xe8,0xc3,0xce,0x42,0x6b,0x2f,0x6c,0x8f,0x94,0x68,0xc1,0x87,0x1f,0x1d,0xf3,0x74, + 0x6d,0x13,0x3d,0xee,0x6c,0xf1,0x49,0x6d,0x26,0x41,0xe9,0x53,0xdb,0x29,0xa2,0x16,0x08,0xf3,0x69,0x4a, + 0x8d,0xaa,0x6c,0x9f,0x6d,0x46,0xb3,0xdc,0x52,0xe0,0x7a,0x6b,0x0f,0x14,0x89,0xad,0x6d,0x9a,0xdd,0xcb, + 0x66,0xcf,0xc4,0x7c,0xd8,0x51,0x57,0x4e,0x30,0x35,0xcb,0x2a,0x20,0xc3,0x43,0x1d,0x78,0x41,0x6f,0x53, + 0x82,0xb4,0xa1,0x5a,0x06,0x35,0x41,0xfc,0x63,0xa2,0x3e,0x88,0x3e,0xbb,0x9e,0xe1,0x66,0x65,0xf4,0x41, + 0xc2,0x3c,0x44,0x5a,0x7a,0xd2,0xd5,0xcf,0x4d,0xf7,0x14,0xbc,0x44,0xd4,0xf0,0x3f,0x35,0x0d,0x3d,0xde, + 0x2e,0xdb,0xc5,0xc0,0x8b,0x1b,0xa9,0x8c,0x17,0xfc,0xc1,0xf9,0x79,0x8f,0xb6,0xa1,0x86,0x40,0xed,0xaa, + 0xf9,0x7a,0x8f,0x0a,0xa2,0xa5,0xa0,0xab,0x3c,0x7c,0x9f,0x2a,0x0d,0xe5,0x05,0x5d,0x53,0xcf,0x7c,0x6f, + 0xd7,0x58,0xb2,0xa5,0x86,0xef,0xf7,0xf8,0x44,0x43,0x03,0x42,0x7f,0xe2,0xa3,0x3f,0x50,0x53,0x69,0x44, + 0xe8,0xaa,0xed,0xe5,0x7f,0xd7,0xfa,0x58,0xd0,0x80,0xeb,0xe3,0xad,0x8b,0xad,0xb7,0xa3,0xe6,0x91,0x43, + 0xb3,0xd7,0x5b,0x8c,0x10,0x53,0xe3,0xd1,0x6e,0x52,0xea,0xbf,0x4e,0x26,0xda,0x51,0xfe,0x51,0x02,0xa4, + 0xdd,0xf5,0x2e,0xdc,0xfd,0xee,0xb1,0x82,0xd9,0x6a,0x5d,0xf5,0x75,0xcf,0x1f,0x6f,0x2f,0x35,0x87,0xee, + 0xa1,0x80,0xbb,0x90,0xa6,0xc8,0x21,0xd6,0x81,0x01,0x21,0xe5,0x80,0xb5,0x01,0x1c,0x88,0xd1,0x51,0x20, + 0xa1,0x63,0x7d,0x6f,0x9e,0x41,0x1f,0xdd,0xb0,0xbc,0x34,0xcd,0x2a,0xd8,0xec,0xe7,0x77,0xdf,0x70,0xb6, + 0xf4,0xe3,0x4b,0x14,0x63,0x37,0xe8,0x69,0x05,0xdb,0x09,0xc5,0x64,0xdc,0xd7,0x32,0xa0,0xe8,0xd1,0xc7, + 0xe9,0x87,0x61,0x91,0xff,0xd2,0x14,0x77,0x34,0x0f,0xca,0x56,0xc7,0x38,0xba,0x64,0x09,0xbd,0x77,0xff, + 0xe4,0xf8,0xf8,0x03,0xc1,0xd9,0xe9,0xec,0x08,0x01,0x53,0xea,0x04,0x3e,0xe6,0x87,0x5b,0x47,0xb5,0xbd, + 0xdc,0x84,0xdf,0x8c,0xff,0xf5,0xa7,0x71,0x73,0x31,0xba,0x0f,0xe4,0xd6,0xb0,0x38,0x92,0xbb,0x39,0xa4, + 0xdf,0x3d,0xb3,0x1e,0x4c,0x63,0x60,0xf6,0x86,0xd5,0xdf,0x28,0x2f,0xfc,0x2f,0xac,0x34,0xe7,0x8f,0xf2, + 0x4d,0xd3,0x2b,0xbe,0xb3,0x3b,0x92,0x86,0xfe,0xd8,0xde,0xd0,0x8c,0xd2,0xc0,0x11,0x2f,0xc5,0x80,0xa9, + 0xca,0x6c,0x7d,0xd5,0x2d,0xa6,0x3f,0xde,0x6f,0x0e,0x3b,0xef,0x18,0x3d,0x76,0x94,0x0e,0xe1,0xf6,0x0a, + 0x12,0x9a,0xfb,0xcb,0xa4,0xfa,0xd9,0x5e,0x57,0x6f,0x5f,0xa4,0xb1,0xf1,0x26,0xf3,0x9d,0x5b,0x1d,0x5c, + 0xaf,0x1f,0xbe,0x2d,0xf3,0xd1,0xdb,0x32,0xdd,0x0c,0xdb,0x4f,0x08,0x1e,0x37,0xff,0x3f,0x4a,0xff,0xcf, + 0x10,0x3b,0x19,0x02,0x00}; + +#endif diff --git a/src/assets/version.h b/src/assets/version.h new file mode 100644 index 0000000..2895f67 --- /dev/null +++ b/src/assets/version.h @@ -0,0 +1,13 @@ +#ifndef __assets_version +#define __assets_version + +const uint8_t VersionMajor = 0; +const uint8_t VersionMinor = 1; +const uint8_t VersionPatch = 0; +const uint8_t VersionMetadata = 0; +const char VersionBranch[] = "master"; +const char VersionSemVer[] = "0.1.0"; +const char VersionFullSemVer[] = "0.1.0+0"; +const char VersionCommitDate[] = "2020-09-19"; + +#endif diff --git a/src/charproperties.cpp b/src/charproperties.cpp new file mode 100644 index 0000000..d6dd491 --- /dev/null +++ b/src/charproperties.cpp @@ -0,0 +1,44 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./charproperties.h" +#include +#include +#include "./debug.h" + +void assignChar(char** field, const char* newValue) +{ + if (*field != nullptr) + delete *field; + + if (newValue != nullptr) + { + // Include the terminating null character + size_t length = strlen(newValue) + 1; + + if (length > 0) + { + *field = new char[length]; + strncpy(*field, newValue, length); + } + else + *field = nullptr; + } + else + *field = nullptr; +} + + +bool sameStr(const char* value1, const char* value2) +{ + if ((value1 == nullptr) != (value2 == nullptr)) + return true; + + if (value1 == nullptr) + return false; + + return strcmp(value1, value2) == 0; +} \ No newline at end of file diff --git a/src/charproperties.h b/src/charproperties.h new file mode 100644 index 0000000..ad39292 --- /dev/null +++ b/src/charproperties.h @@ -0,0 +1,15 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __charproperties +#define __charproperties + +#include + +void assignChar(char** field, const char* newValue); +bool sameStr(const char* value1, const char* value2); + +#endif \ No newline at end of file diff --git a/src/config.cpp b/src/config.cpp new file mode 100644 index 0000000..ee464f6 --- /dev/null +++ b/src/config.cpp @@ -0,0 +1,30 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./config.h" + +#ifdef SerialDebug +const uint32_t SerialDebugBaudrate = 115200; +const uint32_t SerialDebugStartupDelay = 2000; +#endif + + +const char* ConnectionSettingsFile = "/connection.json"; +const char* SystemSettingsFile = "/system.json"; + + +const char* DefaultAPSSIDPrefix = "RGBWifi-"; + +// Timeout when in AP + station mode (otherwise trying to connect +// to the STA will block the AP) +const uint32_t StationModeTimeout = 30000; + +const uint16_t APButtonHoldTime = 2000; + + +const uint8_t InitialisationBrightness = 128; +const uint8_t InitialisationFadeTime = 250; +const uint8_t InitialisationBlinkCount = 2; diff --git a/src/config.h b/src/config.h new file mode 100644 index 0000000..8a5613a --- /dev/null +++ b/src/config.h @@ -0,0 +1,45 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __config +#define __config + +#include + + +// Enables debug information to be output through the standard +// Serial connection, disable in production units to improve performance +#define SerialDebug + +// Enables the crash API methods to cause crashes, you probably never +// want to leave this on unless you're debugging the exception handler +//#define EnableCrashAPI + + +#ifdef SerialDebug +extern const uint32_t SerialDebugBaudrate; +extern const uint32_t SerialDebugStartupDelay; +#endif + + +extern const char* ConnectionSettingsFile; +extern const char* SystemSettingsFile; + + +extern const char* DefaultAPSSIDPrefix; + +extern const uint32_t StationModeTimeout; +extern const uint16_t APButtonHoldTime; + + +extern const uint32_t TimezoneRetryInterval; + + +extern const uint8_t InitialisationBrightness; +extern const uint8_t InitialisationFadeTime; +extern const uint8_t InitialisationBlinkCount; + +#endif \ No newline at end of file diff --git a/src/debug.cpp b/src/debug.cpp new file mode 100644 index 0000000..801d449 --- /dev/null +++ b/src/debug.cpp @@ -0,0 +1,18 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./debug.h" + + +void _dinit() +{ + #ifdef SerialDebug + Serial.begin(SerialDebugBaudrate); + // Enable if you want detailed WiFi state logging + //Serial.setDebugOutput(true); + delay(SerialDebugStartupDelay); + #endif +} \ No newline at end of file diff --git a/src/debug.h b/src/debug.h new file mode 100644 index 0000000..9dc6879 --- /dev/null +++ b/src/debug.h @@ -0,0 +1,24 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __serialdebug +#define __serialdebug + +#include "./config.h" +#include + +void _dinit(); + +#ifdef SerialDebug + #define _d(msg) Serial.print(msg) + #define _dln(msg) Serial.println(msg) +#else + #define _d(msg) do { } while (0) + #define _dln(msg) do { } while (0) +#endif + + +#endif \ No newline at end of file diff --git a/src/global.cpp b/src/global.cpp new file mode 100644 index 0000000..cf61c5e --- /dev/null +++ b/src/global.cpp @@ -0,0 +1,20 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./global.h" + +ConnectionSettings* connectionSettings = new ConnectionSettings(); +bool connectionSettingsChanged = false; + +SystemSettings* systemSettings = new SystemSettings(); +bool systemSettingsChanged = false; + + +bool shouldReboot = false; + +uint32_t currentTime; + +IPAddress emptyIP(0, 0, 0, 0); diff --git a/src/global.h b/src/global.h new file mode 100644 index 0000000..832ae56 --- /dev/null +++ b/src/global.h @@ -0,0 +1,28 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __global +#define __global + +#include +#include +#include +#include "./settings/connection.h" +#include "./settings/system.h" + +extern ConnectionSettings* connectionSettings; +extern bool connectionSettingsChanged; + +extern SystemSettings* systemSettings; +extern bool systemSettingsChanged; + +extern bool shouldReboot; + +extern uint32_t currentTime; + +extern IPAddress emptyIP; + +#endif \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..23a3fbd --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,217 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include +#include +#include +#include +#include +#include + +#include "./config.h" +#include "./debug.h" +#include "./global.h" + +#include "./main.wifi.h" +#include "./main.led.h" +#include "./main.debug.h" + +#include "./server/static.h" +#include "./server/settings.h" +#include "./server/firmware.h" +#include "./server/api.h" + + +// Forward declarations +void handleNotFound(AsyncWebServerRequest* request); + + +AsyncWebServer server(80); +NeoPixelBus* strip = NULL; + + +#define colorSaturation 128 +RgbwColor red(colorSaturation, 0, 0, 0); +RgbwColor green(0, colorSaturation, 0, 0); +RgbwColor blue(0, 0, colorSaturation, 0); +RgbwColor white(colorSaturation); +RgbwColor black(0); + + + +void setup() +{ + _dinit(); + + _dln("Initializing LED strip"); + + strip = new NeoPixelBus(5); + strip->Begin(); + strip->Show(); + + + + currentTime = millis(); + + if (!LittleFS.begin()) + _dln("Setup :: failed to mount file system"); + + connectionSettings->read(); + systemSettings->read(); + /* + stepsSettings->read(); + timeTriggerSettings->read(); + motionTriggerSettings->read(); + */ + + pinMode(systemSettings->pinAPButton(), INPUT_PULLUP); + pinMode(systemSettings->pinLEDAP(), OUTPUT); + pinMode(systemSettings->pinLEDSTA(), OUTPUT); + + + _dln("Setup :: starting initialization sequence"); + /* + uint8_t bottomStep = stepsSettings->count() - 1; + + for (uint8_t i = 0; i < InitialisationBlinkCount; i++) + { + stairs->set(bottomStep, InitialisationBrightness, InitialisationFadeTime); + waitForTransition(); + + stairs->set(bottomStep, 0, InitialisationFadeTime); + waitForTransition(); + } + */ + + _dln("Setup :: initializing WiFi"); + WiFi.persistent(false); + WiFi.mode(WIFI_OFF); + + initDebug(); + initWiFi(); + + _dln("Setup :: registering routes"); + registerStaticRoutes(&server); + registerAPIRoutes(&server); + registerSettingsRoutes(&server); + registerFirmwareRoutes(&server); + + _dln("Setup :: starting HTTP server"); + server.onNotFound(handleNotFound); + server.begin(); +} + +void loop() +{ + /* + _dln("Looping"); + delay(1000); + + // set the colors, + // if they don't match in order, you need to use NeoGrbFeature feature + strip->SetPixelColor(0, red); + strip->SetPixelColor(1, green); + strip->SetPixelColor(2, blue); + strip->SetPixelColor(3, white); + strip->SetPixelColor(4, black); + // the following line demonstrates rgbw color support + // if the NeoPixels are rgbw types the following line will compile + // if the NeoPixels are anything else, the following line will give an error + //strip->SetPixelColor(3, RgbwColor(colorSaturation)); + strip->Show(); + + + delay(1000); + + // turn off the pixels + strip->SetPixelColor(0, black); + strip->SetPixelColor(1, black); + strip->SetPixelColor(2, black); + strip->SetPixelColor(3, black); + strip->SetPixelColor(4, black); + strip->Show(); + + delay(1000); + + + return; + */ + + + + if (shouldReboot || systemSettingsChanged) + { + _dln("Loop :: reboot requested, so long and thanks for all the fish!"); + delay(100); + ESP.restart(); + } + + currentTime = millis(); + updateDebugStatus(); + + + if (connectionSettingsChanged) + { + _dln("Loop :: connection settings changed"); + initWiFi(); + connectionSettingsChanged = false; + } + + + updateWiFi(); + updateLED(); + //updateNTPClient(); + //checkTriggers(); + + //stairs->tick(); +} + + +void handleNotFound(AsyncWebServerRequest *request) +{ + _d("HTTP :: not found: "); _dln(request->url()); + request->send(404); +} + + +/* +#include +#include +#include +#include +#include +#include +#include +#include + +extern "C" { + #include +} + +#include "./components/PCA9685.h" +#include "./settings/connection.h" + +#include "./main.triggers.h" + + +ADC_MODE(ADC_VCC); + + + + +inline void waitForTransition() +{ + while (stairs->inTransition()) + { + currentTime = millis(); + stairs->tick(); + delay(1); + } +} + + + +*/ \ No newline at end of file diff --git a/src/main.debug.h b/src/main.debug.h new file mode 100644 index 0000000..b6e8424 --- /dev/null +++ b/src/main.debug.h @@ -0,0 +1,68 @@ +#ifdef SerialDebug +void wifiEvent(WiFiEvent_t event); + + +void initDebug() +{ + // onEvent is already deprecated, but since I'm only using it + // for debug purposes we'll see how long it lasts... + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wdeprecated-declarations" + WiFi.onEvent(wifiEvent); + _d("WiFi :: MAC address: "); + _dln(WiFi.macAddress()); + #pragma GCC diagnostic pop +} + + +void wifiEvent(WiFiEvent_t event) +{ + switch (event) + { + case WIFI_EVENT_STAMODE_CONNECTED: + _dln("WiFi:: station mode: connected"); break; + + case WIFI_EVENT_STAMODE_DISCONNECTED: + _dln("WiFi:: station mode: disconnected"); break; + + case WIFI_EVENT_STAMODE_AUTHMODE_CHANGE: + _dln("WiFi:: station mode: authmode change"); break; + + case WIFI_EVENT_STAMODE_GOT_IP: + _dln("WiFi:: station mode: got IP"); + _dln(WiFi.localIP()); + break; + + case WIFI_EVENT_STAMODE_DHCP_TIMEOUT: + _dln("WiFi:: station mode: DHCP timeout"); break; + + case WIFI_EVENT_SOFTAPMODE_STACONNECTED: + _dln("WiFi:: soft AP mode: station connected"); break; + + case WIFI_EVENT_SOFTAPMODE_STADISCONNECTED: + _dln("WiFi:: soft AP mode: station disconnected"); break; + + default: + break; + } +} + + +uint32_t debugStatusTime = 0; + +void updateDebugStatus() +{ + if (currentTime - debugStatusTime < 5000) return; + debugStatusTime = currentTime; + + + _d("Status :: available heap: "); + _dln(ESP.getFreeHeap()); +} + +#else + +#define initDebug() do { } while (0) +#define updateDebugStatus() do { } while (0) + +#endif \ No newline at end of file diff --git a/src/main.led.h b/src/main.led.h new file mode 100644 index 0000000..f877b4a --- /dev/null +++ b/src/main.led.h @@ -0,0 +1,70 @@ +enum LEDState +{ + Off, + BlinkLow, + BlinkHigh, + On +}; + +bool ledAP = false; +LEDState ledWiFi = Off; +uint32_t blinkOnTime = 0; + + +void updateLED() +{ + uint8_t value = (currentTime - blinkOnTime >= 1000) ? LOW : HIGH; + + WiFiMode_t mode = WiFi.getMode(); + if (mode == WIFI_AP_STA || mode == WIFI_AP) + { + if (!ledAP) + { + digitalWrite(systemSettings->pinLEDAP(), HIGH); + ledAP = true; + } + } + else + { + if (ledAP) + { + digitalWrite(systemSettings->pinLEDAP(), LOW); + ledAP = false; + } + } + + if (mode == WIFI_AP_STA || mode == WIFI_STA) + { + wl_status_t status = WiFi.status(); + + if (status == WL_CONNECTED) + { + if (ledWiFi != On) + { + digitalWrite(systemSettings->pinLEDSTA(), HIGH); + ledWiFi = On; + } + } + else + { + LEDState expectedState = value == HIGH ? BlinkHigh : BlinkLow; + if (ledWiFi != expectedState) + { + digitalWrite(systemSettings->pinLEDSTA(), value); + ledWiFi = expectedState; + } + } + } + else + { + if (ledWiFi != Off) + { + digitalWrite(systemSettings->pinLEDSTA(), LOW); + ledWiFi = Off; + } + } + + + if (currentTime - blinkOnTime >= 2000) + blinkOnTime = currentTime; +} \ No newline at end of file diff --git a/src/main.wifi.h b/src/main.wifi.h new file mode 100644 index 0000000..1eb3072 --- /dev/null +++ b/src/main.wifi.h @@ -0,0 +1,121 @@ +bool accessPoint = false; +bool stationMode = false; + +uint32_t stationModeStart = 0; +uint32_t apButtonStart = 0; + + +void startAccessPoint(); +void startStationMode(); + + +void initWiFi() +{ + WiFi.disconnect(); + WiFi.softAPdisconnect(); + + accessPoint = connectionSettings->flag(AccessPoint); + stationMode = connectionSettings->flag(StationMode) && connectionSettings->ssid() != nullptr; + + WiFi.mode(accessPoint && stationMode ? WIFI_AP_STA : + accessPoint ? WIFI_AP : + stationMode ? WIFI_STA : + WIFI_OFF); + + if (accessPoint) + startAccessPoint(); + + if (stationMode) + startStationMode(); +} + + +void updateWiFi() +{ + if (stationModeStart > 0) + { + bool isConnected = WiFi.status() == WL_CONNECTED; + + if (isConnected) + { + _d("WiFi :: connected, IP address: "); + _dln(WiFi.localIP()); + + stationModeStart = 0; + } + else if (stationMode && accessPoint && + currentTime - stationModeStart >= StationModeTimeout) + { + _dln("WiFi :: unable to connect, switching off station mode, status:"); + _dln(WiFi.status()); + + #ifdef SerialDebug + WiFi.printDiag(Serial); + #endif + + // Connecting to access point is taking too long and is blocking + // the access point mode, stop trying + stationMode = false; + WiFi.disconnect(); + WiFi.mode(WIFI_AP); + } + } + + + if (!accessPoint) + { + if (digitalRead(systemSettings->pinAPButton()) == LOW) + { + if (apButtonStart == 0) + apButtonStart = currentTime; + else if (currentTime - apButtonStart >= APButtonHoldTime) + { + connectionSettings->flag(AccessPoint, true); + connectionSettings->write(); + + startAccessPoint(); + apButtonStart = 0; + } + } + else if (apButtonStart > 0) + apButtonStart = 0; + } +} + + +void startAccessPoint() +{ + _dln("WiFi :: starting access point"); + String ssidString = DefaultAPSSIDPrefix + String(ESP.getChipId(), HEX); + if (WiFi.softAP((const char *)ssidString.c_str())) + { + _d("WiFi :: IP address: "); + _dln(WiFi.softAPIP()); + } + else + _d("WiFi :: failed to start soft access point"); +} + + +void startStationMode() +{ + _d("WiFi :: starting station mode to: "); + _dln(connectionSettings->ssid()); + + stationModeStart = currentTime; + + if (connectionSettings->hostname() != nullptr) + WiFi.hostname(connectionSettings->hostname()); + + if (WiFi.begin(connectionSettings->ssid(), connectionSettings->password())) + { + if (connectionSettings->flag(DHCP)) + // I've had the same issue as described here with config(0, 0, 0): + // https://stackoverflow.com/questions/40069654/how-to-clear-static-ip-configuration-and-start-dhcp + wifi_station_dhcpc_start(); + else + WiFi.config(connectionSettings->ip(), connectionSettings->gateway(), connectionSettings->subnetMask()); + } + else + _d("WiFi :: failed to start station mode"); +} diff --git a/src/server/api.cpp b/src/server/api.cpp new file mode 100644 index 0000000..514b5d8 --- /dev/null +++ b/src/server/api.cpp @@ -0,0 +1,192 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./api.h" +#include +#include +#include +#include "./shared.h" +#include "../assets/version.h" +#include "../debug.h" +#include "../global.h" +#include "../settings/connection.h" + + +/* +void handleSet(AsyncWebServerRequest *request) +{ + _dln("API :: set"); + + AsyncWebParameter* param; + uint8_t value = 0; + + param = request->getParam("value"); + if (param != nullptr) + { + value = param->value().toInt(); + } + else + { + param = request->getParam("percent"); + if (param != nullptr) + { + value = map(param->value().toInt(), 0, 100, 0, 255); + } + else + { + request->send(400); + return; + } + } + + uint16_t time = 0; + uint8_t from = 0; + + param = request->getParam("time"); + if (param != nullptr) + time = param->value().toInt(); + + param = request->getParam("from"); + if (param != nullptr) + { + if (param->value() == "top") + from = 1; + else if (param->value() == "bottom") + from = 2; + } + + + if (from == 0 || time == 0) + stairs->setAll(value, time, 0); + else + stairs->sweep(value, time, from == 1); + + request->send(200); +} + + +void handleGetStepValues(AsyncWebServerRequest *request) +{ + _dln("API :: get steps"); + + DynamicJsonBuffer jsonBuffer(JSON_ARRAY_SIZE(17)); + + bool target = !request->hasParam("current"); + + JsonArray& root = jsonBuffer.createArray(); + for (uint8_t step = 0; step < stepsSettings->count(); step++) + root.add(stairs->get(step, target)); + + AsyncResponseStream *response = request->beginResponseStream("application/json"); + root.printTo(*response); + + request->send(response); +} + + +void handlePostStepValues(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) +{ + _dln("API :: post steps"); + + DynamicJsonBuffer jsonBuffer(2*JSON_ARRAY_SIZE(17) + JSON_OBJECT_SIZE(3) + 130); + JsonObject& root = jsonBuffer.parseObject((char*)data); + if (!root.success()) + { + request->send(400); + return; + } + + uint16_t transitionTime = root["transitionTime"]; + JsonArray& values = root["values"]; + + JsonArray& startTime = root["startTime"]; + size_t startTimeCount = startTime.size(); + + size_t valueCount = values.size(); + if (valueCount > stepsSettings->count()) + valueCount = stepsSettings->count(); + + + for (uint8_t step = 0; step < valueCount; step++) + stairs->set(step, values[step], transitionTime, step < startTimeCount ? startTime[step] : 0); + + request->send(200); +} + + +void handleGetTimeTriggers(AsyncWebServerRequest *request) +{ + _dln("API :: get time triggers"); + + AsyncResponseStream *response = request->beginResponseStream("application/json"); + timeTriggerSettings->toJson(*response); + request->send(response); +} + + +void handlePostTimeTriggers(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) +{ + _dln("API :: post time triggers"); + + bool changed; + if (timeTriggerSettings->fromJson((char*)data, &changed)) + { + timeTriggerSettings->write(); + + if (changed) + timeTriggerSettingsChanged = true; + + request->send(200); + } + else + request->send(400); +} + + +void handleGetMotionTriggers(AsyncWebServerRequest *request) +{ + _dln("API :: get motion triggers"); + + AsyncResponseStream *response = request->beginResponseStream("application/json"); + motionTriggerSettings->toJson(*response); + request->send(response); +} + + +void handlePostMotionTriggers(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) +{ + _dln("API :: post motion triggers"); + + bool changed; + if (motionTriggerSettings->fromJson((char*)data, &changed)) + { + motionTriggerSettings->write(); + + if (changed) + motionTriggerSettingsChanged = true; + + request->send(200); + } + else + request->send(400); +} +*/ + +void registerAPIRoutes(AsyncWebServer* server) +{ + /* + server->on("/api/set", HTTP_GET, handleSet); + + server->on("/api/steps/values", HTTP_GET, handleGetStepValues); + server->on("/api/steps/values", HTTP_POST, devNullRequest, devNullFileUpload, handlePostStepValues); + + server->on("/api/triggers/time", HTTP_GET, handleGetTimeTriggers); + server->on("/api/triggers/time", HTTP_POST, devNullRequest, devNullFileUpload, handlePostTimeTriggers); + + server->on("/api/triggers/motion", HTTP_GET, handleGetMotionTriggers); + server->on("/api/triggers/motion", HTTP_POST, devNullRequest, devNullFileUpload, handlePostMotionTriggers); + */ +} \ No newline at end of file diff --git a/src/server/api.h b/src/server/api.h new file mode 100644 index 0000000..26d9f91 --- /dev/null +++ b/src/server/api.h @@ -0,0 +1,13 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __server_api +#define __server_api +#include + +void registerAPIRoutes(AsyncWebServer* server); + +#endif \ No newline at end of file diff --git a/src/server/firmware.cpp b/src/server/firmware.cpp new file mode 100644 index 0000000..f74f7d1 --- /dev/null +++ b/src/server/firmware.cpp @@ -0,0 +1,74 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./firmware.h" +#include "../config.h" +#include "../debug.h" +#include "../global.h" + + + +void handleFirmware(AsyncWebServerRequest *request) +{ + shouldReboot = !Update.hasError(); + + AsyncWebServerResponse *response = request->beginResponse(200, "text/plain", shouldReboot ? "OK" : "FAIL"); + response->addHeader("Connection", "close"); + request->send(response); +} + +void handleFirmwareFile(AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final) +{ + _d("Firmware :: file upload: index = "); _d(index); + _d(", len = "); _d(len); + _d(", final = "); _dln(final); + + if (!index) + { + uint32_t maxSketchSpace = (ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000; + _d("Firmware :: update start, max sketch space: "); + _dln(maxSketchSpace); + + Update.runAsync(true); + if (!Update.begin(maxSketchSpace)) + { + #ifdef SerialDebug + Update.printError(Serial); + #endif + } + } + + if (!Update.hasError()) + { + if (Update.write(data, len) != len) + { + #ifdef SerialDebug + Update.printError(Serial); + #endif + } + } + + if (final) + { + if (Update.end(true)) + { + _dln("Firmware :: success"); + } + else + { + _dln("Firmware :: failed"); + #ifdef SerialDebug + Update.printError(Serial); + #endif + } + } +} + + +void registerFirmwareRoutes(AsyncWebServer* server) +{ + server->on("/api/firmware", HTTP_POST, handleFirmware, handleFirmwareFile); +} \ No newline at end of file diff --git a/src/server/firmware.h b/src/server/firmware.h new file mode 100644 index 0000000..23ded0f --- /dev/null +++ b/src/server/firmware.h @@ -0,0 +1,13 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __server_firmware +#define __server_firmware +#include + +void registerFirmwareRoutes(AsyncWebServer* server); + +#endif \ No newline at end of file diff --git a/src/server/settings.cpp b/src/server/settings.cpp new file mode 100644 index 0000000..eb97f8f --- /dev/null +++ b/src/server/settings.cpp @@ -0,0 +1,252 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./settings.h" +#include +#include +#include +#include +#include "./shared.h" +#include "../assets/version.h" +#include "../config.h" +#include "../debug.h" +#include "../global.h" +#include "../settings/connection.h" + +extern "C" { + #include +} + + +bool clearedResetReason = false; + + + /* +void handleStatus(AsyncWebServerRequest *request) +{ + _dln("API :: status"); + + DynamicJsonBuffer jsonBuffer(JSON_OBJECT_SIZE(6)); + + JsonObject& root = jsonBuffer.createObject(); + root["systemID"] = String(ESP.getChipId(), HEX); + root["version"] = String(VersionFullSemVer); + + if (ntpClient != nullptr && hasTimezone) + { + root["time"] = ntpClient->getEpochTime(); + root["timeOffset"] = timezoneOffset; + } + else + { + root["time"] = false; + root["timeOffset"] = 0; + } + + root["resetReason"] = clearedResetReason ? 0 : ESP.getResetInfoPtr()->reason; + root["stackTrace"] = SaveCrash.count() > 0; + + AsyncResponseStream *response = request->beginResponseStream("application/json"); + root.printTo(*response); + + request->send(response); +} + + +void handleConnectionStatus(AsyncWebServerRequest *request) +{ + _dln("API :: connection status"); + + WiFiMode_t mode = WiFi.getMode(); + + + DynamicJsonBuffer jsonBuffer((2 * JSON_OBJECT_SIZE(2)) + JSON_OBJECT_SIZE(3)); + + JsonObject& root = jsonBuffer.createObject(); + JsonObject& ap = root.createNestedObject("ap"); + ap["enabled"] = (mode == WIFI_AP || mode == WIFI_AP_STA); + ap["ip"] = WiFi.softAPIP().toString(); + + JsonObject& station = root.createNestedObject("station"); + station["enabled"] = (mode == WIFI_STA || mode == WIFI_AP_STA); + station["status"] = (uint8_t)WiFi.status(); + station["ip"] = WiFi.localIP().toString(); + + AsyncResponseStream *response = request->beginResponseStream("application/json"); + root.printTo(*response); + + request->send(response); +} + + +void handleGetConnection(AsyncWebServerRequest *request) +{ + _dln("API :: get connection"); + + AsyncResponseStream *response = request->beginResponseStream("application/json"); + connectionSettings->toJson(*response); + request->send(response); +} + + +void handlePostConnection(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) +{ + _dln("API :: post connection"); + + bool changed; + if (connectionSettings->fromJson((char*)data, &changed)) + { + connectionSettings->write(); + + if (changed) + connectionSettingsChanged = true; + + request->send(200); + } + else + request->send(400); +} + + +void handleGetSystem(AsyncWebServerRequest *request) +{ + _dln("API :: get system"); + + AsyncResponseStream *response = request->beginResponseStream("application/json"); + systemSettings->toJson(*response); + request->send(response); +} + + +void handlePostSystem(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) +{ + _dln("API :: post system"); + + bool changed; + if (systemSettings->fromJson((char*)data, &changed)) + { + systemSettings->write(); + + if (changed) + systemSettingsChanged = true; + + request->send(200); + } + else + request->send(400); +} + + +void handleGetSteps(AsyncWebServerRequest *request) +{ + _dln("API :: get steps"); + + AsyncResponseStream *response = request->beginResponseStream("application/json"); + stepsSettings->toJson(*response); + request->send(response); +} + + +void handlePostSteps(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) +{ + _dln("API :: post steps"); + + bool changed; + if (stepsSettings->fromJson((char*)data, &changed)) + { + stepsSettings->write(); + + if (changed) + stepsSettingsChanged = true; + + request->send(200); + } + else + request->send(400); +} + + +void handleGetStackTrace(AsyncWebServerRequest *request) +{ + _dln("API :: get stack trace"); + + if (SaveCrash.count() == 0) + { + request->send(404); + return; + } + + AsyncResponseStream *response = request->beginResponseStream("application/octet-stream"); + response->addHeader("Content-Disposition", "attachment; filename=\"stacktrace.txt\""); + SaveCrash.print(*response); + request->send(response); +} + + +void handleDeleteStackTrace(AsyncWebServerRequest *request) +{ + _dln("API :: delete stack trace"); + + clearedResetReason = true; + SaveCrash.clear(); + request->send(200); +} + + +#ifdef EnableCrashAPI +#pragma "!!! Crash API is enabled on this build !!!" + +void handleCrashException(AsyncWebServerRequest *request) +{ + _dln("API :: crash exception"); + + int* i = nullptr; + *i = 42; +} + +void handleCrashSoftWDT(AsyncWebServerRequest *request) +{ + _dln("API :: crash soft WDT"); + + while (true); +} + +void handleCrashWDT(AsyncWebServerRequest *request) +{ + _dln("API :: crash WDT"); + + ESP.wdtDisable(); + while (true); +} +#endif +*/ + +void registerSettingsRoutes(AsyncWebServer* server) +{ + /* + server->on("/api/status", HTTP_GET, handleStatus); + + server->on("/api/connection/status", HTTP_GET, handleConnectionStatus); + + server->on("/api/connection", HTTP_GET, handleGetConnection); + server->on("/api/connection", HTTP_POST, devNullRequest, devNullFileUpload, handlePostConnection); + + server->on("/api/system", HTTP_GET, handleGetSystem); + server->on("/api/system", HTTP_POST, devNullRequest, devNullFileUpload, handlePostSystem); + + server->on("/api/steps", HTTP_GET, handleGetSteps); + server->on("/api/steps", HTTP_POST, devNullRequest, devNullFileUpload, handlePostSteps); + + server->on("/api/stacktrace/get", HTTP_GET, handleGetStackTrace); + server->on("/api/stacktrace/delete", HTTP_GET, handleDeleteStackTrace); + + #ifdef EnableCrashAPI + server->on("/api/crash/exception", HTTP_GET, handleCrashException); + server->on("/api/crash/softwdt", HTTP_GET, handleCrashSoftWDT); + server->on("/api/crash/wdt", HTTP_GET, handleCrashWDT); + #endif + */ +} \ No newline at end of file diff --git a/src/server/settings.h b/src/server/settings.h new file mode 100644 index 0000000..296a8d6 --- /dev/null +++ b/src/server/settings.h @@ -0,0 +1,13 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __server_settings +#define __server_settings +#include + +void registerSettingsRoutes(AsyncWebServer* server); + +#endif \ No newline at end of file diff --git a/src/server/shared.cpp b/src/server/shared.cpp new file mode 100644 index 0000000..80044fb --- /dev/null +++ b/src/server/shared.cpp @@ -0,0 +1,10 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./shared.h" + +void devNullRequest(AsyncWebServerRequest *request) {} +void devNullFileUpload(AsyncWebServerRequest *request, const String& filename, size_t index, uint8_t *data, size_t len, bool final) {} diff --git a/src/server/shared.h b/src/server/shared.h new file mode 100644 index 0000000..dda6a77 --- /dev/null +++ b/src/server/shared.h @@ -0,0 +1,15 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __server_shared +#define __server_shared + +#include + +void devNullRequest(AsyncWebServerRequest *request); +void devNullFileUpload(AsyncWebServerRequest *request, const String& filename, size_t index, uint8_t *data, size_t len, bool final); + +#endif \ No newline at end of file diff --git a/src/server/static.cpp b/src/server/static.cpp new file mode 100644 index 0000000..159d975 --- /dev/null +++ b/src/server/static.cpp @@ -0,0 +1,29 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./static.h" +#include "../debug.h" +#include "../assets/html.h" +#include "../assets/js.h" +#include "../assets/css.h" + + +void handleGzipped(AsyncWebServerRequest *request, const String& contentType, const uint8_t * content, size_t len) +{ + _d("HTTP :: static: "); _dln(request->url()); + AsyncWebServerResponse *response = request->beginResponse_P(200, contentType, content, len); + response->addHeader("Content-Encoding", "gzip"); + request->send(response); +} + + +void registerStaticRoutes(AsyncWebServer* server) +{ + server->on("/", HTTP_GET, [](AsyncWebServerRequest *request) { handleGzipped(request, "text/html", EmbeddedIndex, sizeof(EmbeddedIndex)); }); + + server->on("/bundle.js", HTTP_GET, [](AsyncWebServerRequest *request) { handleGzipped(request, "text/javascript", EmbeddedBundleJS, sizeof(EmbeddedBundleJS)); }); + server->on("/bundle.css", HTTP_GET, [](AsyncWebServerRequest *request) { handleGzipped(request, "text/css", EmbeddedBundleCSS, sizeof(EmbeddedBundleCSS)); }); +} \ No newline at end of file diff --git a/src/server/static.h b/src/server/static.h new file mode 100644 index 0000000..db17e50 --- /dev/null +++ b/src/server/static.h @@ -0,0 +1,14 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __server_static +#define __server_static + +#include + +void registerStaticRoutes(AsyncWebServer* server); + +#endif \ No newline at end of file diff --git a/src/settings/abstractjson.cpp b/src/settings/abstractjson.cpp new file mode 100644 index 0000000..7d56101 --- /dev/null +++ b/src/settings/abstractjson.cpp @@ -0,0 +1,72 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./abstractjson.h" +#include + + +void AbstractJsonSettings::read() +{ + _d(getDebugPrefix()); _dln(" :: opening file"); + File settingsFile = LittleFS.open(getFilename(), "r"); + if (!settingsFile) + { + _d(getDebugPrefix()); _dln(" :: failed to open file"); + return; + } + + size_t size = settingsFile.size(); + if (size > 1024) + { + _d(getDebugPrefix()); _dln(" :: file size is too large"); + return; + } + + if (size == 0) + { + _d(getDebugPrefix()); _dln(" :: zero size file"); + return; + } + + std::unique_ptr buf(new char[size]); + settingsFile.readBytes(buf.get(), size); + settingsFile.close(); + + _dln(buf.get()); + + if (fromJson(buf.get())) + { + _d(getDebugPrefix()); + _dln(" :: read from file"); + } + else + { + _d(getDebugPrefix()); + _dln(" :: failed to parse file"); + } +} + + +void AbstractJsonSettings::write() +{ + _d(getDebugPrefix()); _dln(" :: opening file for writing"); + File settingsFile = LittleFS.open(getFilename(), "w"); + if (!settingsFile) + { + _d(getDebugPrefix()); _dln(" :: failed to open file for writing"); + return; + } + + toJson(settingsFile); + settingsFile.close(); + _d(getDebugPrefix()); _dln(" :: written to file"); +} + + +bool AbstractJsonSettings::fromJson(char* data) +{ + return fromJson(data, nullptr); +} diff --git a/src/settings/abstractjson.h b/src/settings/abstractjson.h new file mode 100644 index 0000000..fbfbdf9 --- /dev/null +++ b/src/settings/abstractjson.h @@ -0,0 +1,28 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __settingsjson +#define __settingsjson + +#include "../debug.h" + +class AbstractJsonSettings +{ + protected: + virtual const char* getFilename() = 0; + virtual const char* getDebugPrefix() = 0; + + public: + void read(); + void write(); + + virtual void toJson(Print &print) = 0; + virtual bool fromJson(char* data, bool* changed) = 0; + + bool fromJson(char* data); +}; + +#endif \ No newline at end of file diff --git a/src/settings/connection.cpp b/src/settings/connection.cpp new file mode 100644 index 0000000..6b12996 --- /dev/null +++ b/src/settings/connection.cpp @@ -0,0 +1,97 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./connection.h" +#include +#include "./abstractjson.h" +#include "../debug.h" +#include "../config.h" +#include "../global.h" + + + +void ConnectionSettings::toJson(Print &print) +{ + /* + DynamicJsonBuffer jsonBuffer(JSON_OBJECT_SIZE(9)); + + JsonObject& root = jsonBuffer.createObject(); + root["hostname"] = hostname(); + root["accesspoint"] = flag(AccessPoint); + root["station"] = flag(StationMode); + root["ssid"] = ssid(); + root["password"] = password(); + root["dhcp"] = flag(DHCP); + root["ip"] = ip() != 0 ? ip().toString() : ""; + root["subnetmask"] = subnetMask() != 0 ? subnetMask().toString() : ""; + root["gateway"] = gateway() != 0 ? gateway().toString() : ""; + + root.printTo(print); + */ +} + + +bool ConnectionSettings::fromJson(char* data, bool* changed) +{ + /* + if (changed != nullptr) + *changed = false; + + DynamicJsonBuffer jsonBuffer(JSON_OBJECT_SIZE(9) + 250); + JsonObject& root = jsonBuffer.parseObject(data); + + if (!root.success()) + return false; + + IPAddress jsonIP; + IPAddress jsonSubnetMask; + IPAddress jsonGateway; + + const char* jsonHostname = root["hostname"]; + bool jsonAccessPoint = root["accesspoint"]; + bool jsonStation = root["station"]; + const char* jsonSSID = root["ssid"]; + const char* jsonPassword = root["password"]; + bool jsonDHCP = root["dhcp"]; + const char* jsonIPText = root["ip"]; + const char* jsonSubnetMaskText = root["subnetmask"]; + const char* jsonGatewayText = root["gateway"]; + + if (jsonIPText == nullptr || !jsonIP.fromString(jsonIPText)) jsonIP = emptyIP; + if (jsonSubnetMaskText == nullptr || !jsonSubnetMask.fromString(jsonSubnetMaskText)) jsonSubnetMask = emptyIP; + if (jsonGatewayText == nullptr || !jsonGateway.fromString(jsonGatewayText)) jsonGateway = emptyIP; + + + if (!(jsonAccessPoint || jsonStation)) + jsonAccessPoint = true; + + if ((!sameStr(jsonHostname, hostname())) || + (jsonAccessPoint != flag(AccessPoint)) || + (jsonStation != flag(StationMode)) || + (!sameStr(jsonSSID, ssid())) || + (!sameStr(jsonPassword, password())) || + (jsonDHCP != flag(DHCP)) || + (jsonIP != ip()) || + (jsonSubnetMask != subnetMask()) || + (jsonGateway != gateway())) + { + hostname(jsonHostname); + flag(AccessPoint, jsonAccessPoint); + flag(StationMode, jsonStation); + ssid(jsonSSID); + password(jsonPassword); + flag(DHCP, jsonDHCP); + ip(jsonIP); + subnetMask(jsonSubnetMask); + gateway(jsonGateway); + + if (changed != nullptr) + *changed = true; + } + + return true; + */ +} \ No newline at end of file diff --git a/src/settings/connection.h b/src/settings/connection.h new file mode 100644 index 0000000..7101227 --- /dev/null +++ b/src/settings/connection.h @@ -0,0 +1,74 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __settingsconnection +#define __settingsconnection + +#include +#include +#include +#include "./abstractjson.h" +#include "../charproperties.h" +#include "../config.h" + + +enum ConnectionSettingsFlags +{ + AccessPoint = 1, + StationMode = 2, + DHCP = 4 +}; + + +class ConnectionSettings : public AbstractJsonSettings +{ + private: + char* mHostname = nullptr; + uint8_t mFlags = AccessPoint | DHCP; + char* mSSID = nullptr; + char* mPassword = nullptr; + IPAddress mIP = (uint32_t)0; + IPAddress mSubnetMask = (uint32_t)0; + IPAddress mGateway = (uint32_t)0; + + protected: + virtual const char* getFilename() { return ConnectionSettingsFile; }; + virtual const char* getDebugPrefix() { return "ConnectionSettings"; }; + + public: + void toJson(Print &print); + bool fromJson(char* data, bool* changed); + + + char* hostname() { return mHostname; } + void hostname(const char* value) { assignChar(&mHostname, value); } + + bool flag(ConnectionSettingsFlags flag) { return (mFlags & flag) != 0; } + void flag(ConnectionSettingsFlags flag, bool enabled) + { + if (enabled) + mFlags |= flag; + else + mFlags &= ~flag; + } + + char* ssid() { return mSSID; } + void ssid(const char* value) { assignChar(&mSSID, value); } + + char* password() { return mPassword; } + void password(const char* value) { assignChar(&mPassword, value); } + + IPAddress ip() { return mIP; } + void ip(IPAddress value) { mIP = value; } + + IPAddress subnetMask() { return mSubnetMask; } + void subnetMask(IPAddress value) { mSubnetMask = value; } + + IPAddress gateway() { return mGateway; } + void gateway(IPAddress value) { mGateway = value; } +}; + +#endif \ No newline at end of file diff --git a/src/settings/system.cpp b/src/settings/system.cpp new file mode 100644 index 0000000..ed241ca --- /dev/null +++ b/src/settings/system.cpp @@ -0,0 +1,113 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#include "./system.h" +#include +#include +#include "../debug.h" +#include "../global.h" +#include "../config.h" + + + +void SystemSettings::toJson(Print &print) +{ + /* + DynamicJsonBuffer jsonBuffer(JSON_OBJECT_SIZE(8) + JSON_OBJECT_SIZE(5)); + + JsonObject& root = jsonBuffer.createObject(); + + JsonObject& pins = root.createNestedObject("pins"); + pins["ledAP"] = pinLEDAP(); + pins["ledSTA"] = pinLEDSTA(); + pins["apButton"] = pinAPButton(); + pins["pwmSDA"] = pinPWMDriverSDA(); + pins["pwmSCL"] = pinPWMDriverSCL(); + + root["pwmAddress"] = pwmDriverAddress(); + root["pwmFrequency"] = pwmDriverFrequency(); + root["mapsAPIKey"] = mapsAPIKey(); + + root.printTo(print); + */ +} + + +bool SystemSettings::fromJson(char* data, bool* changed) +{ + /* + if (changed != nullptr) + *changed = false; + + DynamicJsonBuffer jsonBuffer(JSON_OBJECT_SIZE(8) + JSON_OBJECT_SIZE(5) + 500); + JsonObject& root = jsonBuffer.parseObject(data); + + if (!root.success()) + return false; + + const char* jsonNTPServer = root["ntpServer"]; + uint32_t jsonNTPInterval = root["ntpInterval"]; + + double jsonLat = root["lat"]; + double jsonLng = root["lng"]; + + JsonObject& pins = root["pins"]; + uint8_t jsonPinLEDAP = pins["ledAP"]; + uint8_t jsonPinLEDSTA = pins["ledSTA"]; + uint8_t jsonPinAPButton = pins["apButton"]; + uint8_t jsonPinPWMDriverSDA = pins["pwmSDA"]; + uint8_t jsonPinPWMDriverSCL = pins["pwmSCL"]; + + uint8_t jsonPWMDriverAddress = root["pwmAddress"]; + uint16_t jsonPWMDriverFrequency = root["pwmFrequency"]; + const char* jsonMapAPIKey = root["mapsAPIKey"]; + + if (jsonNTPServer == nullptr) jsonNTPServer = DefaultNTPServer; + if (jsonNTPInterval == 0) jsonNTPInterval = 5; + + if (jsonPinLEDAP == 0) jsonPinLEDAP = pinLEDAP(); + if (jsonPinLEDSTA == 0) jsonPinLEDSTA = pinLEDSTA(); + if (jsonPinAPButton == 0) jsonPinAPButton = pinAPButton(); + if (jsonPinPWMDriverSDA == 0) jsonPinPWMDriverSDA = pinPWMDriverSDA(); + if (jsonPinPWMDriverSCL == 0) jsonPinPWMDriverSCL = pinPWMDriverSCL(); + + if (jsonPWMDriverAddress == 0) jsonPWMDriverAddress = pwmDriverAddress(); + if (jsonPWMDriverFrequency == 0) jsonPWMDriverFrequency = pwmDriverFrequency(); + + + if ((jsonPinLEDAP != pinLEDAP()) || + (jsonPinLEDSTA != pinLEDSTA()) || + (jsonPinAPButton != pinAPButton()) || + (jsonPinPWMDriverSDA != pinPWMDriverSDA()) || + (jsonPinPWMDriverSCL != pinPWMDriverSCL()) || + (jsonPWMDriverAddress != pwmDriverAddress()) || + (jsonPWMDriverFrequency != pwmDriverFrequency()) || + (!sameStr(jsonMapAPIKey, mapsAPIKey())) || + (jsonLat != latitude()) || + (jsonLng != longitude()) || + (!sameStr(jsonNTPServer, ntpServer())) || + (jsonNTPInterval != ntpInterval())) + { + latitude(jsonLat); + longitude(jsonLng); + pinLEDAP(jsonPinLEDAP); + pinLEDSTA(jsonPinLEDSTA); + pinAPButton(jsonPinAPButton); + pinPWMDriverSDA(jsonPinPWMDriverSDA); + pinPWMDriverSCL(jsonPinPWMDriverSCL); + pwmDriverAddress(jsonPWMDriverAddress); + pwmDriverFrequency(jsonPWMDriverFrequency); + mapsAPIKey(jsonMapAPIKey); + ntpServer(jsonNTPServer); + ntpInterval(jsonNTPInterval); + + if (changed != nullptr) + *changed = true; + } + + return true; + */ +} \ No newline at end of file diff --git a/src/settings/system.h b/src/settings/system.h new file mode 100644 index 0000000..05ef8f1 --- /dev/null +++ b/src/settings/system.h @@ -0,0 +1,47 @@ +/* + * ESP8266 RGBW controller + * Copyright 2020 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/RGBWifi +*/ +#ifndef __settingssystem +#define __settingssystem + +#include +#include +#include +#include "../charproperties.h" +#include "./abstractjson.h" + + +class SystemSettings : public AbstractJsonSettings +{ + private: + uint8_t mPinLEDAP = 4; + uint8_t mPinLEDSTA = 5; + uint8_t mPinAPButton = 2; + + protected: + virtual const char* getFilename() { return SystemSettingsFile; }; + virtual const char* getDebugPrefix() { return "SystemSettings"; }; + + public: + SystemSettings() + { + } + + + void toJson(Print &print); + bool fromJson(char* data, bool* changed); + + uint8_t pinLEDAP() { return mPinLEDAP; } + void pinLEDAP(uint8_t value) { mPinLEDAP = value; } + + uint8_t pinLEDSTA() { return mPinLEDSTA; } + void pinLEDSTA(uint8_t value) { mPinLEDSTA = value; } + + uint8_t pinAPButton() { return mPinAPButton; } + void pinAPButton(uint8_t value) { mPinAPButton = value; } +}; + +#endif \ No newline at end of file diff --git a/web/app.js b/web/app.js new file mode 100644 index 0000000..9a0f11e --- /dev/null +++ b/web/app.js @@ -0,0 +1,555 @@ +function startApp() +{ + // Source: https://github.com/axios/axios/issues/164 + axios.interceptors.response.use(undefined, function axiosRetryInterceptor(err) { + var config = err.config; + // If config does not exist or the retry option is not set, reject + if(!config || !config.retry) return Promise.reject(err); + + // Set the variable for keeping track of the retry count + config.__retryCount = config.__retryCount || 0; + + // Check if we've maxed out the total number of retries + if(config.__retryCount >= config.retry) { + // Reject with the error + return Promise.reject(err); + } + + // Increase the retry count + config.__retryCount += 1; + + // Create new promise to handle exponential backoff + var backoff = new Promise(function(resolve) { + setTimeout(function() { + resolve(); + }, config.retryDelay || 1); + }); + + // Return the promise in which recalls axios to retry the request + return backoff.then(function() { + return axios(config); + }); + }); + + Vue.component('check', { + template: '
{{ title }}
', + props: { + title: String, + value: { + type: Boolean, + default: false + }, + disabled: { + type: Boolean, + default: false + } + }, + + methods: { + handleClick: function() + { + if (this.disabled) return; + this.value = !this.value; + this.$emit('input', this.value); + }, + + handleKeyDown: function(event) + { + if (event.keyCode == 32) + { + this.handleClick(); + event.preventDefault(); + } + } + } + }); + + + Vue.component('radio', { + template: '
{{ title }}
', + props: { + title: String, + value: null, + id: null, + disabled: { + type: Boolean, + default: false + } + }, + + methods: { + handleClick: function() + { + if (this.disabled) return; + this.value = this.id; + this.$emit('input', this.value); + }, + + handleKeyDown: function(event) + { + if (event.keyCode == 32) + { + this.handleClick(); + event.preventDefault(); + } + } + } + }); + + + Vue.component('range', { + template: '
' + + '
' + + '{{ value.start }}' + + '
' + + '' + + '
' + + '
' + + + '
' + + '{{ value.end }}' + + '
' + + '' + + '
' + + '
' + + '
', + props: ['value'], + + mounted: function() + { + this.oldValue = { start: this.value.start, end: this.value.end }; + }, + + watch: { + value: { + handler: function(newValue) + { + if (newValue.start != this.oldValue.start) + { + if (newValue.start > newValue.end) + { + newValue.end = newValue.start + 1; + this.$emit('input', newValue); + } + } + else if (newValue.end != this.oldValue.end) + { + if (newValue.end < newValue.start) + { + newValue.start = newValue.end - 1; + this.$emit('input', newValue); + } + } + + this.oldValue.start = newValue.start; + this.oldValue.end = newValue.end; + }, + deep: true + } + } + }); + + var i18n = new VueI18n({ + locale: navigator.language.split('-')[0], + fallbackLocale: 'en', + messages: messages + }); + + var app = new Vue({ + el: '#app', + + i18n: i18n, + + data: { + notification: null, + + loading: true, + saving: false, + loadingIndicator: '|', + uploadProgress: false, + + activeTab: 'status', + + status: { + systemID: 'loading...', + version: 'loading...', + resetReason: null, + stackTrace: false + }, + + wifiStatus: { + ap: { + enabled: false, + ip: '0.0.0.0' + }, + station: { + enabled: false, + status: 0, + ip: '0.0.0.0' + } + }, + + connection: { + hostname: null, + accesspoint: true, + station: false, + ssid: null, + password: null, + dhcp: true, + ip: null, + subnetmask: null, + gateway: null + }, + + system: { + pins: { + ledAP: null, + ledSTA: null, + apButton: null, + } + } + }, + + created: function() + { + var self = this; + + self.notificationTimer = null; + + document.title = i18n.t('title'); + var hash = window.location.hash.substr(1); + if (hash) + self.activeTab = hash; + + self.startLoadingIndicator(); + self.updateWiFiStatus(); + + + // Sequential loading of all the settings makes sure + // we don't overload the ESP8266 with requests, as that + // can cause it to run out of memory easily. + // This is a horrible way to implement it, but I don't feel like + // including a big library or working out a clean short solution + // at the moment, and it works :) + self.loadStatus().then(function() + { + self.loadConnection().then(function() + { + self.loadSystem().then(function() + { + self.stopLoadingIndicator(); + self.loading = false; + }); + }); + }); + }, + + methods: { + showNotification: function(message, error) + { + var self = this; + self.notification = { + message: message, + error: error + }; + + if (self.notificationTimer != null) + clearTimeout(self.notificationTimer); + + self.notificationTimer = setTimeout(function() + { + self.notification = null; + self.notificationTimer = null; + }, 5000); + }, + + hideNotification: function() + { + var self = this; + self.notification = null; + + if (self.notificationTimer != null) + { + clearTimeout(self.notificationTimer); + self.notificationTimer = null; + } + }, + + handleAPIError: function(messageId, error) + { + var self = this; + + console.log(error); + var errorMessage = ''; + + if (error.response) + { + errorMessage = 'HTTP response code ' + error.response.status; + } + else if (error.request) + { + errorMessage = 'No response'; + } + else + { + errorMessage = error.message; + } + + self.showNotification(i18n.t(messageId) + '\n\n' + errorMessage, true); + }, + + loadStatus: function() + { + var self = this; + return axios.get('/api/status', { retry: 10, retryDelay: 1000 }) + .then(function(response) + { + if (typeof response.data == 'object') + self.status = response.data; + }) + .catch(self.handleAPIError.bind(self, 'error.loadStatus')); + }, + + loadConnection: function() + { + var self = this; + return axios.get('/api/connection', { retry: 10, retryDelay: 1000 }) + .then(function(response) + { + if (typeof response.data == 'object') + self.connection = response.data; + }) + .catch(self.handleAPIError.bind(self, 'error.loadConnection')); + }, + + loadSystem: function() + { + var self = this; + return axios.get('/api/system', { retry: 10, retryDelay: 1000 }) + .then(function(response) + { + if (typeof response.data == 'object') + self.system = response.data; + }) + .catch(self.handleAPIError.bind(self, 'error.loadSystem')); + }, + + + applyConnection: function() + { + var self = this; + if (self.saving) return; + + self.saving = true; + + axios.post('/api/connection', { + hostname: self.connection.hostname, + accesspoint: self.connection.accesspoint, + station: self.connection.station, + ssid: self.connection.ssid, + password: self.connection.password, + dhcp: self.connection.dhcp, + ip: self.connection.ip, + subnetmask: self.connection.subnetmask, + gateway: self.connection.gateway, + }, { retry: 10, retryDelay: 1000 }) + .then(function(response) + { + }) + .catch(self.handleAPIError.bind(self, 'error.applyConnection')) + .then(function() + { + self.saving = false; + }); + }, + + applySystem: function() + { + var self = this; + if (self.saving) return; + + self.saving = true; + + axios.post('/api/system', self.system, { retry: 10, retryDelay: 1000 }) + .then(function(response) + { + self.showNotification(i18n.t('rebootPending')); + }) + .catch(self.handleAPIError.bind(self, 'error.applySystem')) + .then(function() + { + self.saving = false; + }); + }, + + startLoadingIndicator: function() + { + var self = this; + + self.loadingStage = 0; + self.loadingTimer = setInterval(function() + { + self.loadingStage++; + switch (self.loadingStage) + { + case 1: self.loadingIndicator = '/'; break; + case 2: self.loadingIndicator = '-'; break; + case 3: self.loadingIndicator = '\\'; break; + case 4: self.loadingIndicator = '|'; self.loadingStage = 0; break; + } + }, 250); + }, + + stopLoadingIndicator: function() + { + clearInterval(this.loadingTimer); + }, + + getWiFiStationStatus: function() + { + if (!this.wifiStatus.station.enabled) + return 'disconnected'; + + switch (this.wifiStatus.station.status) + { + case 0: // WL_IDLE_STATUS + case 2: // WL_SCAN_COMPLETED + return 'connecting'; + + case 1: // WL_NO_SSID_AVAIL + case 4: // WL_CONNECT_FAILED + case 5: // WL_CONNECTION_LOST + return 'error'; + + case 3: // WL_CONNECTED + return 'connected'; + + case 6: // WL_DISCONNECTED + default: + return 'disconnected'; + } + }, + + getWiFiStationStatusText: function() + { + if (!this.wifiStatus.station.enabled) + return i18n.t('wifiStatus.stationmode.disabled'); + + switch (this.wifiStatus.station.status) + { + case 0: // WL_IDLE_STATUS + return i18n.t('wifiStatus.stationmode.idle'); + + case 1: // WL_NO_SSID_AVAIL + return i18n.t('wifiStatus.stationmode.noSSID'); + + case 2: // WL_SCAN_COMPLETED + return i18n.t('wifiStatus.stationmode.scanCompleted'); + + case 3: // WL_CONNECTED + return this.wifiStatus.station.ip; + + case 4: // WL_CONNECT_FAILED + return i18n.t('wifiStatus.stationmode.connectFailed'); + + case 5: // WL_CONNECTION_LOST + return i18n.t('wifiStatus.stationmode.connectionLost'); + + case 6: // WL_DISCONNECTED + default: + return i18n.t('wifiStatus.stationmode.disconnected'); + } + }, + + updateWiFiStatus: function() + { + var self = this; + if (!self.saving) + { + axios.get('/api/connection/status', { retry: 10, retryDelay: 1000 }) + .then(function(response) + { + if (typeof response.data == 'object') + self.wifiStatus = response.data; + }) + .catch(self.handleAPIError.bind(self, 'error.updateWiFiStatus')) + .then(function() + { + setTimeout(self.updateWiFiStatus, 5000); + }); + } + else + setTimeout(self.updateWiFiStatus, 5000); + }, + + uploadFirmware: function() + { + var self = this; + if (self.saving) return; + + self.saving = true; + self.uploadProgress = 0; + + + var data = new FormData(); + data.append('file', document.getElementById('firmwareFile').files[0]); + + var config = { + timeout: 360000, + onUploadProgress: function(progressEvent) + { + self.uploadProgress = Math.round((progressEvent.loaded * 100) / progressEvent.total); + } + }; + + axios.post('/api/firmware', data, config) + .then(function(response) + { + self.showNotification(i18n.t('rebootPending')); + }) + .catch(self.handleAPIError.bind(self, 'error.uploadFirmware')) + .then(function() + { + self.uploadProgress = false; + self.saving = false; + + document.getElementById('firmware').reset(); + }); + }, + + deleteStackTrace: function() + { + var self = this; + + return axios.get('/api/stacktrace/delete', { retry: 10, retryDelay: 1000 }) + .then(function(response) + { + self.status.resetReason = 0; + self.status.stackTrace = false; + }) + .catch(self.handleAPIError.bind(self, 'error.stackTraceDeleteError')); + } + }, + + computed: { + hasResetError: function() + { + var self = this; + + /* + REASON_DEFAULT_RST = 0 normal startup by power on + REASON_WDT_RST = 1 hardware watch dog reset + REASON_EXCEPTION_RST = 2 exception reset, GPIO status won’t change + REASON_SOFT_WDT_RST = 3 software watch dog reset, GPIO status won’t change + REASON_SOFT_RESTART = 4 software restart ,system_restart , GPIO status won’t change + REASON_DEEP_SLEEP_AWAKE = 5 wake up from deep-sleep + REASON_EXT_SYS_RST = 6 system reset + */ + return (self.status.resetReason === 1 || + self.status.resetReason === 2 || + self.status.resetReason === 3 || + self.status.stackTrace); + } + } + }); +} \ No newline at end of file diff --git a/web/dist/bundle.css b/web/dist/bundle.css new file mode 100644 index 0000000..bd2cbaa --- /dev/null +++ b/web/dist/bundle.css @@ -0,0 +1 @@ +html{box-sizing:border-box;font-size:62.5%}*,:after,:before{box-sizing:inherit}body{background-color:#141414;color:#fff;font-family:Verdana,Arial,sans-serif;font-size:1.3em;font-weight:300;letter-spacing:.01em;line-height:1.3;padding-bottom:3rem}@media screen and (min-width:768px){body{padding-top:3rem}}a{text-decoration:none}[v-cloak]{display:none}#container{background:#202020;margin-top:2rem;padding:1rem;box-shadow:0 0 50px #fcf6cf;border:solid 1px #000}@media screen and (min-width:768px){#container{width:768px;margin-left:auto;margin-right:auto}}.header{position:relative}.header img{float:left;margin-right:1rem}@media screen and (max-width:767px){.header .wifistatus{clear:both;margin-top:3rem}}@media screen and (min-width:768px){.header .wifistatus{position:absolute;right:0;top:0}}.header .wifistatus .indicator{display:inline-block;width:1rem;height:1rem;border-radius:50%;margin-right:.5rem}.header .wifistatus .indicator[data-status=connected]{background-color:#396}.header .wifistatus .indicator[data-status=disconnected]{border:solid 1px grey}.header .wifistatus .indicator[data-status=connecting]{background-color:#f93}.header .wifistatus .indicator[data-status=error]{background-color:#c00}.button,.check .control,.notification,.panel .panel-body,.panel .panel-header,.radio .control,.warning,button,h3,input[type=submit],select{border:1px solid #111;border-radius:3px;box-shadow:inset 0 1px rgba(255,255,255,.1),inset 0 -1px 3px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.08),0 1px 2px rgba(0,0,0,.15)}.button.active,.button:active,button.active,button:active,input.active[type=submit],input[type=number],input[type=password],input[type=submit]:active,input[type=text],textarea{border:1px solid #111;border-color:#000 #111 #111;box-shadow:inset 0 1px 2px rgba(0,0,0,.25),0 1px rgba(255,255,255,.08)}button,input{font-family:Verdana,Arial,sans-serif}input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.button,button,input[type=submit]{display:inline-block;padding:0 12px;color:#ddd;background:#404040;cursor:pointer;line-height:3rem}.button.focus,.button:focus,.button:hover,button.focus,button:focus,button:hover,input[type=submit].focus,input[type=submit]:focus,input[type=submit]:hover{color:#ddd;background:#505050;outline:0}.button.active,.button:active,button.active,button:active,input[type=submit].active,input[type=submit]:active{color:#ccc;background:#282828}.button-primary,input[type=submit]{background:#2265a1}.button-primary.focus,.button-primary:focus,.button-primary:hover,input[type=submit].focus,input[type=submit]:focus,input[type=submit]:hover{background:#2672b6}a.button{text-decoration:none}.navigation{clear:both;margin-top:3rem}.tabs>.button{margin-left:-1px;border-radius:0}.tabs>.button:first-child{margin-left:0;border-radius:3px 0 0 3px}.tabs>.button:last-child{border-radius:0 3px 3px 0}.tabs>.button:focus{position:relative;z-index:1}.version{color:grey;font-size:8pt;text-align:center;margin-top:2rem}.notificationContainer{position:fixed;top:2rem;z-index:666}@media screen and (min-width:768px){.notificationContainer{width:512px;left:50%}}.notification{background:#297ab8;box-shadow:0 0 10px #000;color:#fff;cursor:pointer;padding:.5em;margin-bottom:2rem;position:relative}@media screen and (min-width:768px){.notification{left:-50%}}.notification .message{white-space:pre}.notification.error{background:#973a38}.check,.radio{display:inline-block;cursor:pointer;user-select:none;white-space:nowrap;margin-top:.5em;margin-bottom:.5em}.check .control,.radio .control{background:#404040;display:inline-block;width:16px;height:16px;position:relative}.check .label,.radio .label{display:inline-block;margin-left:.5em;vertical-align:top}.check.checked .control,.radio.checked .control{background:#606060}.check.disabled,.radio.disabled{cursor:not-allowed}.check.disabled .label,.radio.disabled .label{color:grey}.radio .control,.radio .control .inner{border-radius:50%}.radio .control .inner{color:#000;position:absolute;top:4px;left:4px;width:6px;height:6px}.radio.checked .control .inner{background:#ccc;box-shadow:0 1px rgba(0,0,0,.5)}.check .control .inner{position:absolute;top:5px;left:4px;width:6px;height:3px}.check.checked .control .inner{border:solid rgba(255,255,255,.8);border-width:0 0 2px 2px;transform:rotate(-45deg);box-shadow:-1px 0 rgba(0,0,0,.2),0 1px rgba(0,0,0,.5)}.form-control{margin-top:1em}input[type=number],input[type=password],input[type=text],textarea{background:#404040;color:#fff;padding:.5em;width:100%}select{background:#404040;color:#fff;font-family:Verdana,Arial,sans-serif;padding:.5em}input[type=range]{margin-top:1rem;margin-bottom:1rem}h1{font-size:2rem;margin:0}h2{color:silver;font-size:1.2rem;margin:0}h3{color:grey;background:#282828;font-size:1.2rem;padding:.5rem}h4{font-size:1.4rem}input[disabled]{cursor:not-allowed;color:grey;background:#262626}label{display:block;margin-top:.5em;margin-bottom:.5em}.label-inline{margin-right:2rem}@media screen and (min-width:768px){.horizontal{clear:both}.horizontal label{display:inline-block}.horizontal input[type=number],.horizontal input[type=password],.horizontal input[type=text],.horizontal textarea{display:inline-block;float:right;width:50%}.horizontal:after{clear:both}}.hint{display:block;font-size:8pt;color:grey;margin-bottom:1.5rem}.loading{margin-top:3rem;text-align:center}.suboptions{margin-left:5rem}.buttons{clear:both;text-align:center;margin-top:1rem}.sliders{margin-top:2rem}.slidercontainer{margin-top:1rem}.slider{-webkit-appearance:none;width:100%;height:.5rem;border-radius:.25rem;background:#404040;outline:0}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:2rem;height:2rem;border-radius:50%;background:#fcf6cf;cursor:pointer}.slider::-moz-range-thumb{width:2rem;height:2rem;border-radius:50%;background:#fcf6cf;cursor:pointer}.warning{background:#973a38;padding:.5em;margin-bottom:2rem;margin-top:1rem}.nodata{color:grey;text-align:center}.clear{clear:both}.panel{margin-bottom:2rem;padding:0}.panel .panel-header{border-radius:3px 3px 0 0;border-bottom-width:0;padding:.5em;background:#404040;color:#fff}.panel .panel-header label{font-size:1em}.panel .panel-header .actions{float:right}.panel .panel-header .label,.panel .panel-header a{color:#fff}.panel .panel-body{border-radius:0 0 3px 3px;background:#303030;padding:2rem}.panel.active .panel-header{background:#3b4a58;color:#fff}.inline{display:inline-block;width:auto}.fade-enter-active,.fade-leave-active{transition:opacity .5s}.fade-enter,.fade-leave-to{opacity:0}.range{clear:both}.range .start{position:relative;display:inline-block;width:49%}.range .start .slidercontainer{margin-right:4em}.range .start .value{position:absolute;right:0;top:1.5rem;color:grey}.range .end{position:relative;display:inline-block;float:right;width:50%}.range .end .slidercontainer{margin-left:4em}.range .end .value{position:absolute;left:0;top:1.5rem;color:grey}.range:after{clear:both}.resetReason{margin-left:2em} \ No newline at end of file diff --git a/web/dist/bundle.js b/web/dist/bundle.js new file mode 100644 index 0000000..458307a --- /dev/null +++ b/web/dist/bundle.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,function(){return function(n){function r(e){if(i[e])return i[e].exports;var t=i[e]={exports:{},id:e,loaded:!1};return n[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}var i={};return r.m=n,r.c=i,r.p="",r(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){var t=new a(e),n=o(a.prototype.request,t);return i.extend(n,a.prototype,t),i.extend(n,t),n}var i=n(2),o=n(3),a=n(4),s=n(22),c=r(n(10));c.Axios=a,c.create=function(e){return r(s(c.defaults,e))},c.Cancel=n(23),c.CancelToken=n(24),c.isCancel=n(9),c.all=function(e){return Promise.all(e)},c.spread=n(25),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function o(e){return"[object Array]"===l.call(e)}function r(e){return void 0===e}function i(e){return null!==e&&"object"==typeof e}function a(e){if("[object Object]"!==l.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function s(e){return"[object Function]"===l.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),o(e))for(var n=0,r=e.length;ndocument.createEvent("Event").timeStamp&&(sn=function(){return cn.now()})}function un(){var e,t;for(an=sn(),rn=!0,Qt.sort(function(e,t){return e.id-t.id}),on=0;one.id;)n--;Qt.splice(n+1,0,e)}else Qt.push(e);nn||(nn=!0,Ye(un))}}(this)},fn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||I(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Me(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},fn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},fn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},fn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||_(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var dn={enumerable:!0,configurable:!0,get:k,set:k};function pn(e,t,n){dn.get=function(){return this[t][n]},dn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,dn)}var hn={lazy:!0};function vn(e,t,n){var r=!te();"function"==typeof n?(dn.get=r?mn(t):gn(n),dn.set=k):(dn.get=n.get?r&&!1!==n.cache?mn(t):gn(n.get):k,dn.set=n.set||k),Object.defineProperty(e,t,dn)}function mn(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),ce.target&&e.depend(),e.value}}function gn(e){return function(){return e.call(this,this)}}function yn(e,t,n,r){return c(n)&&(n=(r=n).handler),"string"==typeof n&&(n=e[n]),e.$watch(t,n,r)}var _n,bn,wn,kn,$n,xn=0;function Cn(e){var t=e.options;if(e.super){var n=Cn(e.super);if(n!==e.superOptions){e.superOptions=n;var r=function(e){var t,n=e.options,r=e.sealedOptions;for(var i in n)n[i]!==r[i]&&(t||(t={}),t[i]=n[i]);return t}(e);r&&v(e.extendOptions,r),(t=e.options=Fe(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function Sn(e){this._init(e)}function An(e){return e&&(e.Ctor.options.name||e.tag)}function Tn(e,t){return Array.isArray(e)?-1parseInt(this.max)&&Dn(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};En=Sn,Fn={get:function(){return j}},Object.defineProperty(En,"config",Fn),En.util={warn:ae,extend:v,mergeOptions:Fe,defineReactive:xe},En.set=Ce,En.delete=Se,En.nextTick=Ye,En.observable=function(e){return $e(e),e},En.options=Object.create(null),S.forEach(function(e){En.options[e+"s"]=Object.create(null)}),v((En.options._base=En).options.components,Ln),En.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(-1=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}Xr.addEventListener(e,t,Q?{capture:n,passive:r}:n)}function ti(e,t,n,r){(r||Xr).removeEventListener(e,t._wrapper||t,n)}function ni(e,t){if(!L(e.data.on)||!L(t.data.on)){var n=t.data.on||{},r=e.data.on||{};Xr=t.elm,function(e){if(P(e.__r)){var t=K?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}P(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),rt(n,r,ei,ti,Yr,t.context),Xr=void 0}}var ri,ii={create:ni,update:ni};function oi(e,t){if(!L(e.data.domProps)||!L(t.data.domProps)){var n,r,i=t.elm,o=e.data.domProps||{},a=t.data.domProps||{};for(n in P(a.__ob__)&&(a=t.data.domProps=v({},a)),o)n in a||(i[n]="");for(n in a){if(r=a[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===o[n])continue;1===i.childNodes.length&&i.removeChild(i.childNodes[0])}if("value"===n&&"PROGRESS"!==i.tagName){var s=L(i._value=r)?"":String(r);l=s,!(u=i).composing&&("OPTION"===u.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(u,l)||function(e,t){var n=e.value,r=e._vModifiers;if(P(r)){if(r.number)return R(n)!==R(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(u,l))&&(i.value=s)}else if("innerHTML"===n&&Yn(i.tagName)&&L(i.innerHTML)){(ri=ri||document.createElement("div")).innerHTML=""+r+"";for(var c=ri.firstChild;i.firstChild;)i.removeChild(i.firstChild);for(;c.firstChild;)i.appendChild(c.firstChild)}else if(r!==o[n])try{i[n]=r}catch(e){}}}var u,l}var ai={create:oi,update:oi},si=e(function(e){var n={},r=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach(function(e){if(e){var t=e.split(r);1=a&&u()};setTimeout(function(){c\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,xo=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Co="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+F.source+"]*",So="((?:"+Co+"\\:)?"+Co+")",Ao=new RegExp("^<"+So),To=/^\s*(\/?)>/,Oo=new RegExp("^<\\/"+So+"[^>]*>"),Do=/^]+>/i,Eo=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},Po=/&(?:lt|gt|quot|amp|#39);/g,Io=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Ro=a("pre,textarea",!0),Mo=function(e,t){return e&&Ro(e)&&"\n"===t[0]};var Bo,Uo,Ho,Wo,Vo,zo,qo,Ko,Jo=/^@|^v-on:/,Go=/^v-|^@|^:|^#/,Xo=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Zo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Yo=/^\(|\)$/g,Qo=/^\[.*\]$/,ea=/:(.*)$/,ta=/^:|^\.|^v-bind:/,na=/\.[^.\]]+(?=[^\]]*$)/g,ra=/^v-slot(:|$)|^#/,ia=/[\r\n]/,oa=/\s+/g,aa=e(function(e){return(ho=ho||document.createElement("div")).innerHTML=e,ho.textContent}),sa="_empty_";function ca(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:function(e){for(var t={},n=0,r=e.length;n-1"+("true"===f?":("+c+")":":_q("+c+","+f+")")),Rr(s,"change","var $$a="+c+",$$el=$event.target,$$c=$$el.checked?("+f+"):("+d+");if(Array.isArray($$a)){var $$v="+(u?"_n("+l+")":l)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Vr(c,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Vr(c,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Vr(c,"$$c")+"}",null,!0);else if("input"===y&&"radio"===_)r=e,i=m,o=g&&g.number,a=Mr(r,"value")||"null",Nr(r,"checked","_q("+i+","+(a=o?"_n("+a+")":a)+")"),Rr(r,"change",Vr(i,a),null,!0);else if("input"===y||"textarea"===y)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?Zr:"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n("+l+")");var f=Vr(t,l);c&&(f="if($event.target.composing)return;"+f),Nr(e,"value","("+t+")"),Rr(e,u,f,null,!0),(s||a)&&Rr(e,"blur","$forceUpdate()")}(e,m,g);else if(!j.isReservedTag(y))return Wr(e,m,g),!1;return!0},text:function(e,t){t.value&&Nr(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Nr(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:bo,mustUseProp:Rn,canBeLeftOpenTag:wo,isReservedTag:Qn,getTagNamespace:er,staticKeys:_a.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(",")},wa=e(function(e){return a("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))});var ka=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,$a=/\([^)]*?\);*$/,xa=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Ca={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Sa={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Aa=function(e){return"if("+e+")return null;"},Ta={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Aa("$event.target !== $event.currentTarget"),ctrl:Aa("!$event.ctrlKey"),shift:Aa("!$event.shiftKey"),alt:Aa("!$event.altKey"),meta:Aa("!$event.metaKey"),left:Aa("'button' in $event && $event.button !== 0"),middle:Aa("'button' in $event && $event.button !== 1"),right:Aa("'button' in $event && $event.button !== 2")};function Oa(e,t){var n=t?"nativeOn:":"on:",r="",i="";for(var o in e){var a=Da(e[o]);e[o]&&e[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function Da(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return Da(e)}).join(",")+"]";var t=xa.test(e.value),n=ka.test(e.value),r=xa.test(e.value.replace($a,""));if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(Ta[s])o+=Ta[s],Ca[s]&&a.push(s);else if("exact"===s){var c=e.modifiers;o+=Aa(["ctrl","shift","alt","meta"].filter(function(e){return!c[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else a.push(s);return a.length&&(i+="if(!$event.type.indexOf('key')&&"+a.map(Ea).join("&&")+")return null;"),o&&(i+=o),"function($event){"+i+(t?"return "+e.value+"($event)":n?"return ("+e.value+")($event)":r?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(r?"return "+e.value:e.value)+"}"}function Ea(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=Ca[e],r=Sa[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var ja={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(t,n){t.wrapData=function(e){return"_b("+e+",'"+t.tag+"',"+n.value+","+(n.modifiers&&n.modifiers.prop?"true":"false")+(n.modifiers&&n.modifiers.sync?",true":"")+")"}},cloak:k},Fa=function(e){this.options=e,this.warn=e.warn||jr,this.transforms=Fr(e.modules,"transformCode"),this.dataGenFns=Fr(e.modules,"genData"),this.directives=v(v({},ja),e.directives);var t=e.isReservedTag||O;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Na(e,t){var n=new Fa(t);return{render:"with(this){return "+(e?La(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function La(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Pa(e,t);if(e.once&&!e.onceProcessed)return Ia(e,t);if(e.for&&!e.forProcessed)return Ma(e,t);if(e.if&&!e.ifProcessed)return Ra(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return f=t,d=(l=e).slotName||'"default"',p=Wa(l,f),h="_t("+d+(p?","+p:""),v=l.attrs||l.dynamicAttrs?qa((l.attrs||[]).concat(l.dynamicAttrs||[]).map(function(e){return{name:b(e.name),value:e.value,dynamic:e.dynamic}})):null,m=l.attrsMap["v-bind"],!v&&!m||p||(h+=",null"),v&&(h+=","+v),m&&(h+=(v?"":",null")+","+m),h+")";var n;if(e.component)a=e.component,c=t,u=(s=e).inlineTemplate?null:Wa(s,c,!0),n="_c("+a+","+Ba(s,c)+(u?","+u:"")+")";else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Ba(e,t));var i=e.inlineTemplate?null:Wa(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o>>0}(a):"")+")"}(i,i.scopedSlots,e)+","),i.model&&(t+="model:{value:"+i.model.value+",callback:"+i.model.callback+",expression:"+i.model.expression+"},"),i.inlineTemplate){var o=function(e,t){var n=i.children[0];if(n&&1===n.type){var r=Na(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(e){return"function(){"+e+"}"}).join(",")+"]}"}}(0,e);o&&(t+=o+",")}return t=t.replace(/,$/,"")+"}",i.dynamicAttrs&&(t="_b("+t+',"'+i.tag+'",'+qa(i.dynamicAttrs)+")"),i.wrapData&&(t=i.wrapData(t)),i.wrapListeners&&(t=i.wrapListeners(t)),t}function Ua(e){return 1===e.type&&("slot"===e.tag||e.children.some(Ua))}function Ha(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Ra(e,t,Ha,"null");if(e.for&&!e.forProcessed)return Ma(e,t,Ha);var r=e.slotScope===sa?"":String(e.slotScope),i="function("+r+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(Wa(e,t)||"undefined")+":undefined":Wa(e,t)||"undefined":La(e,t))+"}",o=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+o+"}"}function Wa(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?t.maybeComponent(a)?",1":",0":"";return""+(r||La)(a,t)+s}var c=n?function(e,t){for(var n=0,r=0;r]*>)","i")),n=i.replace(t,function(e,t,n){return r=n.length,Fo(o)||"noscript"===o||(t=t.replace(//g,"$1").replace(//g,"$1")),Mo(o,t)&&(t=t.slice(1)),p.chars&&p.chars(t),""});a+=i.length-n.length,i=n,S(o,a-r,a)}else{var s=i.indexOf("<");if(0===s){if(Eo.test(i)){var c=i.indexOf("--\x3e");if(0<=c){p.shouldKeepComment&&p.comment(i.substring(4,c),a,a+c+3),$(c+3);continue}}if(jo.test(i)){var u=i.indexOf("]>");if(0<=u){$(u+2);continue}}var l=i.match(Do);if(l){$(l[0].length);continue}var f=i.match(Oo);if(f){var d=a;$(f[0].length),S(f[1],d,a);continue}var _=x();if(_){C(_),Mo(_.tagName,i)&&$(1);continue}}var b=void 0,w=void 0,k=void 0;if(0<=s){for(w=i.slice(s);!(Oo.test(w)||Ao.test(w)||Eo.test(w)||jo.test(w)||(k=w.indexOf("<",1))<0);)s+=k,w=i.slice(s);b=i.substring(0,s)}s<0&&(b=i),b&&$(b.length),p.chars&&b&&p.chars(b,a-b.length,a)}if(i===e){p.chars&&p.chars(i);break}}function $(e){a+=e,i=i.substring(e)}function x(){var e=i.match(Ao);if(e){var t,n,r={tagName:e[1],attrs:[],start:a};for($(e[0].length);!(t=i.match(To))&&(n=i.match(xo)||i.match($o));)n.start=a,$(n[0].length),n.end=a,r.attrs.push(n);if(t)return r.unarySlash=t[1],$(t[0].length),r.end=a,r}}function C(e){var t,n,r,i=e.tagName,o=e.unarySlash;m&&("p"===h&&ko(i)&&S(h),y(i)&&h===i&&S(i));for(var a=g(i)||!!o,s=e.attrs.length,c=new Array(s),u=0;uc&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var u=Dr(r[1].trim());a.push("_s("+u+")"),s.push({"@binding":u}),c=i+r[0].length}return c':'
',0=t.retry?Promise.reject(e):(t.__retryCount+=1,new Promise(function(e){setTimeout(function(){e()},t.retryDelay||1)}).then(function(){return axios(t)}))):Promise.reject(e)}),Vue.component("check",{template:'
{{ title }}
',props:{title:String,value:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},methods:{handleClick:function(){this.disabled||(this.value=!this.value,this.$emit("input",this.value))},handleKeyDown:function(e){32==e.keyCode&&(this.handleClick(),e.preventDefault())}}}),Vue.component("radio",{template:'
{{ title }}
',props:{title:String,value:null,id:null,disabled:{type:Boolean,default:!1}},methods:{handleClick:function(){this.disabled||(this.value=this.id,this.$emit("input",this.value))},handleKeyDown:function(e){32==e.keyCode&&(this.handleClick(),e.preventDefault())}}}),Vue.component("range",{template:'
{{ value.start }}
{{ value.end }}
',props:["value"],mounted:function(){this.oldValue={start:this.value.start,end:this.value.end}},watch:{value:{handler:function(e){e.start!=this.oldValue.start?e.start>e.end&&(e.end=e.start+1,this.$emit("input",e)):e.end!=this.oldValue.end&&e.end + + + +RGBWifi + + + + + + +
+
+
+
+ {{ notification.message }} +
+
+ +
+
+ +

{{ $t('title') }}

+

{{ status.systemID !== null ? $t('systemID') + ': ' + status.systemID : '' }}

+ +
+
+
{{ $t('wifiStatus.accesspoint.title') }} {{ wifiStatus.ap.enabled ? wifiStatus.ap.ip : $t('wifiStatus.accesspoint.disabled') }} +
+
+
{{ $t('wifiStatus.stationmode.title') }} {{ getWiFiStationStatusText() }} +
+
+
+ +
+ {{ $t('loading') }} {{ loadingIndicator }} +
+ +
+
+

+ {{ $t('error.resetError') }} +

+ +

+ {{ $t('error.resetReason.' + status.resetReason) }} +

+ +

+ {{ $t('error.stackTrace') }} +

+ + {{ $t('error.stackTraceDownload') }} + {{ $t('error.stackTraceDelete') }} +
+ + + + +
+ +

{{ $t('status.title') }}

+
+ +
+ +
+

{{ $t('connection.title') }}

+ + + {{ $t('connection.accesspointHint') }} + + + {{ $t('connection.stationmodeHint') }} + + + + + + + + + {{ $t('connection.dhcpHint') }} + + +
+ + + + + + + + +
+ + + + + +
+ +
+
+
+ +
+ +
+

{{ $t('system.firmwareTitle') }}

+ + + +
+ +
+ +
+ {{ uploadProgress }}% +
+
+ +
+

{{ $t('system.pinsTitle') }}

+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+
+ +
+
+
+ {{ $t('copyright') }}
+ {{ status.version !== null ? $t('firmwareVersion') + status.version : '' }} +
+
+
+ + + + \ No newline at end of file diff --git a/web/lang.js b/web/lang.js new file mode 100644 index 0000000..fc715e1 --- /dev/null +++ b/web/lang.js @@ -0,0 +1,191 @@ +var messages = { + en: { + title: 'RGBWifi', + systemID: 'System ID', + firmwareVersion: 'Firmware version: ', + copyright: 'Copyright © 2020 Mark van Renswoude', + loading: 'Please wait, loading configuration...', + rebootPending: 'The system will be rebooted, please refresh this page afterwards', + + applyButton: 'Apply', + applyButtonSaving: 'Saving...', + deviceTime: 'Time: ', + + wifiStatus: { + accesspoint: { + title: 'AP: ', + disabled: 'Disabled' + }, + + stationmode: { + title: 'WiFi: ', + disabled: 'Disabled', + idle: 'Idle', + noSSID: 'SSID not found', + scanCompleted: 'Scan completed', + connectFailed: 'Failed to connect', + connectionLost: 'Connection lost', + disconnected: 'Disconnected' + } + }, + + status: { + tabTitle: 'Status', + title: 'Current status' + }, + + connection: { + tabTitle: 'Connection', + title: 'Connection parameters', + + accesspoint: 'Enable access point', + accesspointHint: 'Allows for a direct connection from your device to this RGBWifi module for configuration purposes. The RGBWifi configuration is available on http://192.168.1.4/ when you are connected to it. Turn it off as soon as station mode is configured, as it is not secured in any way. You can always turn this option back on by pushing the access point button until the LED lights up.', + + stationmode: 'Enable station mode', + stationmodeHint: 'Connect this RGBWifi module to your own WiFi router. Please enter the SSID, password and further configuration below.', + + ssid: 'SSID', + password: 'Password', + + dhcp: 'Use DHCP', + dhcpHint: 'Automatically assigns an IP address to this RGBWifi module. You probably want to keep this on unless you know what you\'re doing.', + + ipaddress: 'IP address', + subnetmask: 'Subnet mask', + gateway: 'Gateway', + hostname: 'Hostname', + hostnamePlaceholder: 'Default: mac address' + }, + + system: { + tabTitle: 'System', + pinsTitle: 'Hardware pinout', + firmwareTitle: 'Firmware update', + + pinLEDAP: 'Access Point status LED pin (+3.3v)', + pinLEDSTA: 'Station Mode status LED pin (+3.3v)', + pinAPButton: 'Enable Access Point button pin (active low)' + }, + + error: { + loadStatus: 'Could not load system status', + loadConnection: 'Could not load connection settings', + loadSystem: 'Could not load system settings', + applyConnection: 'Could not save connection settings', + applySystem: 'Could not save system settings', + updateWiFiStatus: 'Could not retrieve WiFi status', + uploadFirmware: 'Error while uploading firmware', + + resetError: 'The system reports that it has been reset unexpectedly. The last power up status is:', + resetReason: { + 0: 'Normal startup', + 1: 'Unresponsive, reset by hardware watchdog', + 2: 'Unhandled exception', + 3: 'Unresponsive, reset by software watchdog', + 4: 'System restart requested', + 5: 'Wake up from deep sleep', + 6: 'System reset' + }, + stackTrace: 'A stack trace is available. Please send it to your nearest developer and/or delete it from this RGBWifi module to remove this message.', + stackTraceDownload: 'Download', + stackTraceDelete: 'Hide', + + stackTraceDeleteError: 'Could not remove stack trace' + } + }, + + nl: { + title: 'RGBWifi', + systemID: 'Systeem ID', + firmwareVersion: 'Firmware versie: ', + copyright: 'Copyright © 2020 Mark van Renswoude', + loading: 'Een ogenblik geduld, bezig met laden van configuratie...', + rebootPending: 'Het systeem wordt opnieuw opgestart, ververse deze pagina nadien', + + applyButton: 'Opslaan', + applyButtonSaving: 'Bezig met opslaan...', + deviceTime: 'Tijd: ', + + wifiStatus: { + accesspoint: { + title: 'AP: ', + disabled: 'Uitgeschakeld' + }, + + stationmode: { + title: 'WiFi: ', + disabled: 'Uitgeschakeld', + idle: 'Slaapstand', + noSSID: 'SSID niet gevonden', + scanCompleted: 'Scan afgerond', + connectFailed: 'Kan geen verbinding maken', + connectionLost: 'Verbinding verloren', + disconnected: 'Niet verbonden' + } + }, + + status: { + tabTitle: 'Status', + title: 'Huidige status' + }, + + connection: { + tabTitle: 'Verbinding', + title: 'Verbinding configuratie', + + accesspoint: 'Access point inschakelen', + accesspointHint: 'Maakt het mogelijk om een directe connectie vanaf een apparaat naar deze RGBWifi module te maken om de module te configureren. De RGBWifi module is te benaderen via http://192.168.1.4/ nadat je connectie hebt gemaakt. Schakel deze optie uit na het configureren, aangezien deze niet beveiligd is. Je kunt deze optie ook inschakelen door op de Access point knop te drukken totdat de LED aan gaat.', + + stationmode: 'Verbinding met WiFi maken', + stationmodeHint: 'Verbind deze RGBWifi module aan je eigen WiFi router. Vul hieronder het SSID en wachtwoord in, en configureer eventuel de overige opties.', + + ssid: 'SSID', + password: 'Wachtwoord', + + dhcp: 'Gebruik DHCP', + dhcpHint: 'Automatisch een IP adres toewijzen aan deze RGBWifi module. Waarschijnlijk wil je deze optie aan laten, tenzij je weet waar je mee bezig bent.', + + ipaddress: 'IP adres', + subnetmask: 'Subnet masker', + gateway: 'Gateway', + hostname: 'Hostnaam', + hostnamePlaceholder: 'Standaard: mac adres' + }, + + system: { + tabTitle: 'Systeem', + pinsTitle: 'Hardware aansluitingen', + firmwareTitle: 'Firmware bijwerken', + + pinLEDAP: 'Access Point status LED pin (+3.3v)', + pinLEDSTA: 'WiFi status LED pin (+3.3v)', + pinAPButton: 'Access Point inschakelen knop pin (actief laag)' + }, + + error: { + loadStatus: 'Kan systeemstatus niet ophalen', + loadConnection: 'Kan verbinding instellingen niet ophalen', + loadSystem: 'Kan systeem instellingen niet ophalen', + applyConnection: 'Kan verbinding instellingen niet opslaan', + applySystem: 'Kan systeem instellingen niet opslaan', + updateWiFiStatus: 'Kan WiFi status niet ophalen', + uploadFirmware: 'Fout tijdens bijwerken van firmware', + + resetError: 'Het systeem is onverwachts herstart. De laatste status is:', + resetReason: { + 0: 'Normaal opgestart', + 1: 'Reageert niet, herstart door hardware watchdog', + 2: 'Onafgehandelde fout', + 3: 'Reageert niet, herstart door software watchdog', + 4: 'Herstart verzoek door systeem', + 5: 'Wakker geworden uit diepe slaap', + 6: 'Systeem gereset' + }, + stackTrace: 'Een stack trace is beschikbaar. Stuur het naar de dichtsbijzijnde ontwikkelaar en/of verwijder het van deze RGBWifi module om dit bericht te verbergen.', + stackTraceDownload: 'Downloaden', + stackTraceDelete: 'Verbergen', + + stackTraceDeleteError: 'Kan stack trace niet verwijderen' + } + } +} \ No newline at end of file diff --git a/web/logo.ai b/web/logo.ai new file mode 100644 index 0000000..1b09e41 --- /dev/null +++ b/web/logo.ai @@ -0,0 +1,333 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R 21 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + Adobe Illustrator CS6 (Windows) + 2017-12-30T16:13+01:00 + 2017-12-30T16:17:16+01:00 + 2017-12-30T16:17:16+01:00 + + + + 248 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAD4AwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q== + + + + + + 1 + False + False + + 512.000000 + 512.000000 + Points + + + + + Default Swatch Group + 0 + + + + + + application/pdf + + + Document + + + xmp.did:89DEF0EC73EDE7119CCADB31B93B2005 + uuid:b03a2483-4f32-4465-b083-e0550ab05b88 + xmp.did:89DEF0EC73EDE7119CCADB31B93B2005 + proof:pdf + + + + + saved + xmp.iid:89DEF0EC73EDE7119CCADB31B93B2005 + 2017-12-30T16:13:01+01:00 + Adobe Illustrator CS6 (Windows) + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>>>/Thumb 26 0 R/TrimBox[0.0 0.0 512.0 512.0]/Type/Page>> endobj 23 0 obj <>stream +H +0 y&Mj0dxq + )r: L`Q_Ha} *"`|)6VdFfvn8'|E]D yL9{7\Qr g1Ċ)4 V5M.W!7] CPt +endstream endobj 26 0 obj <>stream +8;Z]L!=]#/!5bE.$"(^o%O_;W!8uZ9(]Y: +endstream endobj 27 0 obj [/Indexed/DeviceRGB 255 28 0 R] endobj 28 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 21 0 obj <> endobj 29 0 obj [/View/Design] endobj 30 0 obj <>>> endobj 25 0 obj <> endobj 24 0 obj <> endobj 31 0 obj <> endobj 32 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 16.0 +%%AI8_CreatorVersion: 16.0.0 +%%For: (PsychoMark) () +%%Title: (logo.ai) +%%CreationDate: 12/30/2017 4:17 PM +%%Canvassize: 16383 +%%BoundingBox: 113 218 501 623 +%%HiResBoundingBox: 113.6367 218.375 500.3867 622.625 +%%DocumentProcessColors: +%AI5_FileFormat 12.0 +%AI12_BuildNumber: 682 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Registration]) +%AI3_Cropmarks: 41.5 164.5 553.5 676.5 +%AI3_TemplateBox: 297.5 420.5 297.5 420.5 +%AI3_TileBox: -8.5 24.5 603.5 816.5 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 2 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: -1232 1218 0.5 1789 914 26 0 0 82 117 0 0 0 1 1 1 1 1 0 1 +%AI5_OpenViewLayers: 7 +%%PageOrigin:0 0 +%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 33 0 obj <>stream +%%BoundingBox: 113 218 501 623 +%%HiResBoundingBox: 113.6367 218.375 500.3867 622.625 +%AI7_Thumbnail: 124 128 8 +%%BeginData: 2021 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF +%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF +%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF +%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF +%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF +%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF +%FDFCFFFDFCFFFDFCFFFDF7FFFF +%%EndData + +endstream endobj 34 0 obj <>stream +%AI12_CompressedDataxܽgw:0z>(I`z ))Ɔ]o?dFsghf;cL#w?r9olVzOMrU-;$E/z<- |46o/+}3mT߃1"Y1_֏&9[ 4qn  xA@ P8zEEqGg)j^"^@Wݐ,m2ԾP @_Q"b'i;!W Dq5D4Ayl{0a.cPw䦽>LHo85D/D3pb?!q8p`&bĸN%j173D?h (`=X+1 +~jA$]ÉJ,T; [Zl ?gAcuKlۛ?cN 4bbC oΦ" S. +'` +_ ?vn&!n=a'C@2.kvH%FBH~nȮ̈́3_%g~z]-5w{7L7=7ە@HdjϼA7Cw熫bF wXs»h.QGv D?eڦp?2ԂXpztuXIa4u p-XKnp\.MeAgEnm7@$yIi-ACUlwi?p } |>Ԏo׺>2x Ó0LnCᘀ0;~z +?aR`ҦNcdԐCkBoxMR M&g`20JNs%G <ogH@)_*g# 8]_HPjLAkr?K +^c9Sv1C 'Jp `=EA{ijl[\ wvE }T ~kh= P3 z{fL[MjFDia7ܑ^+( l2nc,nЯ@ |ހ"4"՘c^+7}lA1_7°LFK W4 IO&ޣhZ9FaX2@IiX݄[&4.,oPPAbn' "8~oHPrjU{/,Q.|YW69n&'T\PjP: zPp!ɿ85cW($9]D hF:9Y!x5~geu<||o!UDs^~#)BJ!! fv"WVh4 1["[qnw7jsh`r&! kTՊ!r7eIq8&3JkiL'MGB"Pn )_{TΈpG5UԓgٶɫxQn8Tȃ7F*mAJK=E>j4@wV)MQ[_cϋ SWm7e)-X݊Ɋ6yp_ <) +&IICwؐzOm?HhcUAOJHD^ aTyĜ%4Wx@Wjv ?Ir9` ~MbCI^5N3F\ZPc!^FI-=/U\g@ @L";?ΓV1iZ(,_/o )ZmJaD(Jz5=[Y=YiHDюn7#fTAjN7l(ۊ ^h@[y)u@`+rW?$r['׌; hGC쨩BCVeb72!=@cAǡءUhݍ$jAM?j19;*a֡JPa3VFC f^x[ZWwmx#GçVo| 45qQ&ڑkmH9X~p3FJ"GD<"o()g7qO}or )9bdBY%j8&.* gvFUBj06o[(-1.&t225Nz HfXaO؈xC;ӘMe3S#ȷ5ZFC~Q" ѦGmۿʋܸQ.лQ(% C +E6* +mn2PgpXśap삋geZJ%̓PTÑx{ć]ʦzmEj-n6Z.̱k)Hj4uS gN6sGФ5#ŵzggZ: [Crw-#\I w{i]z[3~Ḣb>pYYxB Ggswb_IJ#;A*~-]W4;w"N,o i:ןo2m2oNt@:ƅqŚD>;嵘#d<%p9Kxajq[']Lu `KPlƖ) ?ᰇ3Ըu,c^8Hw2'&E3}zdvn1jw\%a~+8AX^|pnw$:odBp;0dnz l ٥-b3/S3Lw + }5h@_bx+T9gᛁ*#,8}O~h6xlCZe.| ]Z@;Oҩ@=3δ?S- lhmu_3\߯<% ACdLy?!O|sS07'[af5{M u8Z3K~~q:_fHPdLq8%RFT z'w3w"'i?w9}@tIX+e^7 .]N hl1EBf,Zw<\5wQWz[$lZ d4X]{08-7p|̄}oyhWpSrr]@i?M@$l/j+Sx +>W +<ϾQ5Vb>s$K߰_xZ,lU ;N5ٳ?:t{ `T<]}]Ls:׾!GmΊN[~j)@sF$:2'W_LPG[nLgUgJ &Fh}$٥u(&J^+&ߛ!N[0%FM< tl5|;z +zL1>fӉr |wrg A@h"[lƅץT;-ZK|h>285~k?2!噃ąhij%?Nd&4>c*#ɑJDa>q'FgZOH+ 47 +>._ 4rbQ5l,KW بY +D"aVfIVM2F22 rK]5pVE~ع N%& waϾgM ;`hhMCPŒ) v)-dS? ОZ+nrp3e:-tagtfc ewEo݁ޚA]\c6*OA1œX|WY|HintOqJb4ZĞ .nO=&pT;dCN s-,O eB!*І>#u̻- B8*nvgv P_\usAQ]ppc-KT׻%k6uH%_x ʟj6dlKÞ}#Sx,y2]P՝NAfSwVvZl)ãBO|PίRv} ܃㮒|iyGu1ܗvQ4pk +>L +RJ;_︙ү(ζ$2/͹1z<p,vC)]>9Ҙ~C?=<zEzyҡl1QtP\,lpy_[G$<=f_[?]=2/ϭtɹo?~{"<Dm^:IIPsSڨ3ibOo)!Nhl%W(~&{a3ME 8@f8ptbߤ^0G+HٿYN;c!4We eJD1 \[Ns zB0* +9 H (sn\uļ3^cf.ϓdur,h5w>Ese3\[c hC0F~ߓ, Ovnz" 5U>@gooU؜> Cw +A[6H~ U4oOX3M ,XPLm +"}Ӊ}^|d;bo2Ͷ]+]z'n0 +|i&@V'Zrݏo[ŁeW[gj"Gȼ-gDMmk.5j.8)|~sk`gоVNa6vD,FQJ0xO?ilayy3SvMk֪c?uI8ٷ-Q-VJ!2Shg&' 4#5\kV̥g탷z&OӮ fS:Fґ5@L4͎ Rcw'(֎dT=gf!#?δ}'C9qc?Kr!SqcnuCXV9Mp|OyXHn^G~z2x4/&ΖȀ{@ m +t- +]+i[-÷QGg69-)8Z aeLmgAy# 1qƋ :PZtdCm"j0J?7xjN$wf|Qr4`$h{((d ^4jk*)S)˒ `z63*ԯF`XQEbO?Э{%+~vn'`97—*& +̧˻_s M^z9*E!;af5MPXXSFdWݷ8 SˆHXpbdVCifink; H 4)<#U,De[n֐;wL$ M8Dbh +hwK>Xn9 -Xm.R^p- o`I=*J(:/`= s,ں\` ZY!){*Z]uMiQ'ȼD:5&Ţ󐉌v3LC 2,#pKħ +=(ǯ7xXL6g('Co>`$2-g̾AG(+nM hn.!"LohodW.o}nBi_9 ɵqh2 'С̌L=70f4y9'V6Dp; {w@Ľ,eگ@2S_œo@g:C$wX +kIgpLYp4hv bMLZOԧG|.sW,DB;Փiz¦VT^8d flExSyq ]~SEf߅eyS+#ŖEό@`_rĕro3|j6b$ECX@5X AALPCc+ M(~[|pQ|SB |ЏWf(}ѐEv ʍGg>8(fҕ'G>6]'6Zޠ' V1}w?Ӟ')ds9j jG}>lzۿ6YzhZw[7rQI01 +J̉kݦkx-Z׶I6E͊ +iK*Be-MHQz}mV+Zf6ry:m}mk?LZ=״M w;Il?' l͔ ɍ pGh! 2iS݆W xi1|P3fcugo!1iXa5vFZ0gMxWQN p,:nu S+-W`(#|1|YiَvM +B(;]c89 RR3"~(UBU|tJ:)xNT +_VK@^yjq h ' +eRԪu:: ԲQbVhJٽ NbB1N=P*`0sWhUX!0֏C@z}QUj(dv43wPʬ"l@GBbXEVۓ0_'w4*He^}r0 ~FK˲0`I ͍6XFё\&9_gSqΧn"|gEƜ%@'л2'و?zQVO|et5J'#ě}t +;/Ňkτ7,iC,h|0:;qE$h-+m]M) zAIF˷?m})/iБ/e.Ҋ@j4ET OU xOXދQ&n-rp$K{a2(aS_yKMY{C kټy&Ci˲}y$cG98P2;A V!މb6Tj*Dn7xC+QˊX}^Y2 &DDZ}#8ѼZ1kbAX4gSA}; vPǺ+?1bk虈~ە\C'+@# ͻlQ k9xl=G|,T b|j/Y!]0L)` ޠ:cqF_e^"ű޻nv^ ˢh.(mI;i~4`-NVyb\VXA] +9 {_X+CGdWdY+@Su |8V ׊ŔQkX܈Bo%yCXk.s{2Ba?ЊXN JeoCXpߝ"SU"9Lϯe)K~;Pĺ%S֙'P#Ӥk_*rX)ef6qD?uhڗHc# b_Jyb۞ź%X) +=oE,+Dⳋ<…V(=tpn8X 忍bH:"k+GїV47d?ۇ’zgE(7rS~m6#SAIFd=`'$R# +OG>X޿Z3Pz!jj=hd'[DQWJOD+Kb͇huF?D;dUz$^n #fK2y5>0O+>}$:3WJixfx7x&B RzC|u풧>ԩgJO 4*<V^ *4Zoߓӑٛӣ2[ҷPx}b~OM;ؿ+G7#ӱEty*ʘQoˑӜdB ݒ;ngF%vwV$oH$RT{-b;!4^HoD1usvkw+?Cm[SqCՇ D=O򇀨&xYwQtdq"9")jl/NbZA}u#[P_[u8!Gznn%B9w" x)0|ERvxSqy{=aɇB2+|v˓dVk: >>\f1Ȇ>%vd.5иUO¸q|@M}Hh4S& 3NٽT"N\6e GC_=, 8@F"4EP/@h|:F-QF**:8Xœh<,YMg + +g F("Pάq<9FLsa_3aY%{4-ԥHqui%M%kMMIaK,O=ɓwxk)00+E 5jadUrA||x3Oɬ=ԡLIֆY#Q;aL^ Ȏ(fnN&V0E{=i| s_hv2H'%ޭ/+#,ͬwV+5[W^gNY]ַ4]kyLwڦ03Lƫ2uTF(!NW#s<;%4{dQ' CKد'i'½"7tɉײ +@̼)k~gW!=aV<"GAHR]rBPP^'.v+ͩ5b_?L&]ՠQ<♐e" +Z@.R1ˆџ괟f,%. Rl/T[hb;H$76% +GIlG! 53۟z3JgBZ󰫞cR^JVҋU9a%bxI>.awwUB=b+BlHh .p(9z0%*+(?3H4BY2P-ئ.YڣVr:swWwh@Gi׍(- +Ihx٬( +;ڀ'uG~r\e\es 0As_VyqvvvoO`@xfg1ѮΝBEjN}zv(ďn $ aޙƊy}XItddqvtS0`@kH +eNGCaz$vw^S*jmhzZ.FLI;ʑ=Q6 ~TWrkrUc̊1f=PH4́|Fjڡ(bVeQ-OTęFv:WZ5+&ZH}6Ż.ЎSnw +1o=>al!uj397Η\5%IVtzjj +O2M&;NJlw.`1iέ<Ƃjss'S|ٞC3tBSX#Z.Csf%r4YȸD1\KUg8ț'B1zF4)s`EKZǵ|71aXejDknKk||7x%||7kXvy9z-bk9OR-<-OWGArş;xƾK I*;yq@ RqmGe>ǩl"LP5OvPV*VtQ W>ai* +ti'O;AfA{БbRdOd@]4K'ΣYvwj~\\ݝi>RޭӍ*ӟ_,:mdRLRC-ӓEo4 +1ɯL]:4 Lړ![z$'`ҧ ETmX#4J  IFNYq"{-㔚ᤂBA&W3rX#52Kj&֘P+^MlR ^BM$L24 +c<>h{MD/&3e,]fnY*)Z=͍?ֹWSVr\έp(>j'`ܟC I2H\\~ȢU0Kq[>XQqd׭D +hRDw B1Uw8dHYbL_l/GKla*04P'8l9Q!˲ζ~*k_X$u+qOXJx禎kD}9I>$pZ?qL_NH(qa/K7/oc[9OO$ltzGoNj7`pJʈz8ћsP=ܥX ǂ%=ްFVP9z:l N*RMH K4V!]U̹9B21qF?Q̪سAkp6\iZՙ U!ı3K%.{jhU]L!JNO F V$LtCxٕyo+λvez*49:yLt8t@y'$^RXq޵+B'U橥ZqF*n d*{iq޵+ڕyޚҾPF?TyS/(NSG%滆4o5 kQl]vyNJVZ;XFQ9Ԙ>9/A>lwQa\U }~a\ _Oɱv>pU S0 }>L(^R'WOec>]kT\O]a|UE}rʉ@]OO +$](쓛C~\OY|>> &i}ZDRa\UߩDQ'WwPuAaMz#ON`JZ}r-y>1{M>VX9%ngFMߜYا{*R>y\PvnaܐnUح }D&_ FYvZ׉ +q7+M!19qq[2WɚHy0ƪLR_=zet2ga6* + l]&mtLR8I3S=%Y<'lt:/8M} +.rhG_tfTJSg^'wb7GwF P5\bRJj$rͮKaL M)`lw|=u sG(gƼ^r]*)8W +t' +nC>z ++c:od# L %&;^7sg'_wz@]o{tǙWXpߩ.ɨ5(fse}RhIĪվgeէqj_Iֵj_)椎BL^+х]V틠0j7ճH{R}Ae#:ځedM6 &gFO,ꢽ*e&_KV-7R:r޽Ж:B.r{(u?TPR1[%cRb@TkNGƭ B vxۜ[9O +73U*.9UhW sD [Qz-;C@;Qnja>2VXF!; 5|{X >F{԰ P_w/!IT#G;JZ|5W%Lyۭ\$|3M|j:[jw*Ŀ"N[Xo։b@CG-l9<'*"2φaD~)b%QYk|\rX8\GS(c-9;X-5<]Ғ@֚E+E&rX1jr'v2lZOa !oЭk Yc',HQ,º>5LaQ_څ7` :%qK<ή耝V z#9XW5GFFk=r-۝<\.s's5<9z#=XhώzMuz.ikB e|tDAP6XqzDukZ^MA5L_$QوߜQ(^72P(r=>K#r@GRqEr{k'$*zD9DmUpRII%ԩ%CxH'U.i#*{WquY!. +q7ꨶzjtYJeڿtY!R=b@aBi[exxY|vvLwNo;.cUOͶSSθPqp8J(\T+tNs᡾zϋ/<$c.5:x鵸g]x( +'\xx~F̅߰_x(ZG2hp!WU'!+.P=1np᡺wjWMzI*Ck(o;&+3.3ﺍH|kJ<[ͫ]%~+J47T3v%'VVsJ^i֌l/]ްJ腈VzEwogCX#ᷤb%#Q?is?4ŴFax<xTHNx?$u~Ox&7z] PBZO?Q1_nد ȃ}a`Ȭ5:S}{`e ۄh ܃{6=pr./T<`2܃v"<; ?K9G]͝v>AӋSF𵑶vD,(:a+;0,,P.FlEpm=0"D|}Epy~Sk 3|kӫp}sh]y0qm,D!OF/w˹6E9A,p E]=F^R1m!`h]/m#;Jg[ ,~CFu5__=,wT܌>E}hŷ~$`l".׮}wApύF%幜g}P>;v4u6ɾm*b`adB{d+r>³yce}[}v@g7?Iwh}h%T~"Ea +9 +n9Sf $?MB4ۿVBo] +C \56ѵy5*wy1,=ym2G2 nul鶿Pt:X r [| >4)!&*Ewf_ ǵ i +ra\=f SG- eNWH~C q$Ýr{Dl * bTp4R!0A:xlGhc ƈS$D]6EoUB^24˩&z/vI/m| 0̤)K±S4S`:7~?/m>7J-K6Ӷu3HަcϘ?dڹgXxӿO&_Y/b~Ͳ&D ;=d3HX7 ,cfX3'2:rV-4G wA#:^}Ǩ|y;V쿼㲩>`&-9jr$F efϣ(h ++d՚"Z_&TFY@粿DAib9X6ZcV0`-ZP(Ԓ| rfl\d!vױ K~ tԌSx}SFZȔ5MS|n5KF v2KBN;E + j}:yQ8ɡ3F|ٳ>Ђ^` :UEZ&N+ꋝB6N1!M Ncl24 ҸAMHw+G0#VS:*@0 c|tQwtP6Cy$6û\ywM6# *,N6P0RtGR@>mT>zG}Z;ɀRЬQW1*Q݈ӅuvΛU nI< gj9X+횈cF=23A%˻5*P4:G atޘmNj)5JhFp`gw͹^TOS\0.,ӛ_7߄G蝠mTUZcV06ۼz~bDqvOwfh\srExA8el&a3}es:;sip,j2RǀqNӳ5@s:;s8Yg: +A!:e7sY7+e{Hg/||81KʔCi{/P_zw0V`[8XjύB G6ZENO950~4)3?8ʴeý I7gېgM=fM=@/ D>z>_Sv +/}47gM8 +ϸU}ڎp ͤD cE5Gu؁U4" feL^UGtK&޹(H`8r`ў_dJJo*(H`t caŊ* `e2 +q>Y-L%# aǍ~=v48K=(4Bxї3MtOpnOهHYS_xc(= өC8]r8[nj/V+ `KKYI(\\m^T\eq0BfaѦR5' n7xorsrGQN`w, ]%yK,tswI'N]9s00d/OCqF>祝p93s` FmF|zL9! .W>X$'i|pJT@r蹜Kk +L..fe|QOKFurÖu.ߠL-F6ܰ +| 20i >84Y߶._xYw|?Mv4#l4ojfW=Okjb1bڊ'C +,/}J>d? mYgݩ_44۟ȕ~)D9\~bBL<8{6, Z3<>"cOL!8-e+SJKv|k|E ~˹i ]UmhIʂĆqd ++/jq14+œcYō +,O1%@.WLDt( Ki\OpF¬.]܌VBjJ-H- \,/e0[‘h y}O":-6?5wֶo*|1DEԢJJh$Vw +8<آaty2w`!Ae@ +& 7]2Bcf;@Ů' :iL!=XvbDkɧ/Lsnxӟ2 +X/ +dGpE:B960{l8j'^`Hnd#Ju3{ +EՇ +CV半KAJ̒i.'Mt/3_ \n6̹$>ۭ4^͡9i pJB鑃1J`;N\>L;yc~( Y +.~ɾI՜؉́91sPĻRq;Y4Za f.bA\(ˡ;7‰ރhF\I'JSqXN{-3ÃT|t0g~/s$ ˫~P:, ҋ5Hw ~J&~Xi%x!bp1\@)sØ&M3'2g1޵^SL; AJ} ,?(m+/ܶ"lMRT"D%/ɕ_evQ6QJ r `lÖ ,l@0޳/Y쀟o707^+yC67qpa?ݿ&C]|1n_K _ar(a?t ?arnh)u# )f06344c9VSKƦz&0"0113! D#;,-E0 tAj@bzjHQbf('*$$ҋRKR3A" Mp Mٖ +endstream endobj 5 0 obj <> endobj 14 0 obj [/View/Design] endobj 15 0 obj <>>> endobj 22 0 obj [21 0 R] endobj 35 0 obj <> endobj xref +0 36 +0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000009448 00000 n +0000000000 00000 f +0000039045 00000 n +0000000000 00000 f +0000009499 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000039112 00000 n +0000039143 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000010825 00000 n +0000039228 00000 n +0000009835 00000 n +0000011122 00000 n +0000011009 00000 n +0000010082 00000 n +0000010263 00000 n +0000010311 00000 n +0000010893 00000 n +0000010924 00000 n +0000011196 00000 n +0000011370 00000 n +0000012385 00000 n +0000014612 00000 n +0000039253 00000 n +trailer +<<716E2DB4294F6749B3E5ADF7E13AF65C>]>> +startxref +39388 +%%EOF diff --git a/web/logo.png b/web/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd33263790315ffc3e0108ad0856a4d8d991b48 GIT binary patch literal 462 zcmV;<0WtoGP)04st&EQO43U@RaPD$*oIc>#}2m(}S3H2MI>7i#FR zVIVOKNCFwz0wc}yi>XEZKRQ}$EFfv$DztJKEeS;#tsFW)Gq(|8(x_i;YPMQPqE~p3 z-E9eM6GDUNlYc6NY#JO_C@DfHa!7te;lRbA1E)bsiBXC<2|3+aQvY&8)2XSk>4~Kk zXhzu+yGSBB0V#Z}qRm|4Umk3+9d7-baLWYl2<`>j*F_?D7w_<>h1aZsu$g`H!KVuj z7mYjJPK>k)cU~1RFsEVwu~srSH8-`HDi05jap5Y!0B>qOejcLmi~s-t07*qoM6N<$ Eg1t<((*OVf literal 0 HcmV?d00001 diff --git a/web/site.scss b/web/site.scss new file mode 100644 index 0000000..8498c6b --- /dev/null +++ b/web/site.scss @@ -0,0 +1,694 @@ +@import "variables.scss"; + + +html +{ + box-sizing: border-box; + font-size: 62.5%; +} + +*, *:before, *:after +{ + box-sizing: inherit; +} + +body +{ + background-color: rgb(20, 20, 20); + color: white; + font-family: 'Verdana', 'Arial', sans-serif; + font-size: 1.3em; + font-weight: 300; + letter-spacing: .01em; + line-height: 1.3; + + padding-bottom: 3rem; + + @media #{$mediumScreen} + { + padding-top: 3rem; + } +} + +a +{ + text-decoration: none; +} + + +/* + Hide VueJS container until the template has been processed +*/ +[v-cloak] +{ + display: none; +} + + + +#container +{ + background: $containerBackground; + margin-top: 2rem; + padding: 1rem; + + box-shadow: 0 0 50px $containerShadowColor; + border: solid 1px black; + + @media #{$mediumScreen} + { + width: 768px; + margin-left: auto; + margin-right: auto; + } +} + + +.header +{ + position: relative; + + img + { + float: left; + margin-right: 1rem; + } + + .wifistatus + { + @media #{$smallScreen} + { + clear: both; + margin-top: 3rem; + } + + @media #{$mediumScreen} + { + position: absolute; + right: 0; + top: 0; + } + + .indicator + { + display: inline-block; + width: 1rem; + height: 1rem; + border-radius: 50%; + margin-right: 0.5rem; + + &[data-status=connected] { background-color: #339966; } + &[data-status=disconnected] { border: solid 1px #808080; } + &[data-status=connecting] { background-color: #ff9933; } + &[data-status=error] { background-color: #cc0000; } + } + } +} + + +%outset +{ + border: 1px solid #111111; + border-radius: 3px; + box-shadow: inset 0 1px rgba(255,255,255,0.1), inset 0 -1px 3px rgba(0,0,0,0.3), inset 0 0 0 1px rgba(255,255,255,0.08), 0 1px 2px rgba(0,0,0,0.15); +} + + +%inset +{ + border: 1px solid #111111; + border-color: black #111111 #111111; + box-shadow: inset 0 1px 2px rgba(0,0,0,0.25),0 1px rgba(255,255,255,0.08); +} + + +button, input +{ + font-family: 'Verdana', 'Arial', sans-serif; +} + + +@mixin removeSafariStyling +{ + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +input +{ + @include removeSafariStyling; +} + +button, .button, input[type=submit] +{ + @extend %outset; + + display: inline-block; + padding: 0 12px; + color: $buttonTextColor; + background: $buttonBackground; + cursor: pointer; + line-height: 3rem; + + &:hover, &:focus, &.focus + { + color: $buttonHoverTextColor; + background: $buttonHoverBackground; + outline: none + } + + &:active, &.active + { + @extend %inset; + + color: $buttonActiveTextColor; + background: $buttonActiveBackground; + } +} + +input[type=submit], .button-primary +{ + background: $buttonPrimaryBackground; + + &:hover, &:focus, &.focus + { + background: $buttonPrimaryHoverBackground; + } +} + +a.button +{ + text-decoration: none +} + + +.navigation +{ + clear: both; + margin-top: 3rem; +} + +.tabs +{ + &>.button + { + margin-left: -1px; + border-radius: 0; + + &:first-child + { + margin-left: 0; + border-radius: 3px 0 0 3px + } + + &:last-child + { + border-radius: 0 3px 3px 0 + } + + &:focus + { + position: relative; + z-index: 1 + } + } +} + + +.version +{ + color: $versionTextColor; + font-size: 8pt; + text-align: center; + margin-top: 2rem; +} + + +.notificationContainer +{ + position: fixed; + top: 2rem; + z-index: 666; + + @media #{$mediumScreen} + { + width: 512px; + left: 50%; + } +} + + +.notification +{ + @extend %outset; + + background: $notificationBackground; +/* border: solid 1px $notificationBorderColor;*/ + box-shadow: 0 0 10px black; + color: white; + cursor: pointer; + padding: .5em; + margin-bottom: 2rem; + + position: relative; + + @media #{$mediumScreen} + { + left: -50%; + } + + .message + { + white-space: pre; + } + + + &.error + { + background: $notificationErrorBackground; + } +} + + +.check, .radio +{ + display: inline-block; + cursor: pointer; + user-select: none; + white-space: nowrap; + margin-top: .5em; + margin-bottom: .5em; + + .control + { + @extend %outset; + background: $checkRadioBackground; + display: inline-block; + width: 16px; + height: 16px; + position: relative; + } + + .label + { + display: inline-block; + margin-left: .5em; + vertical-align: top; + } + + &.checked + { + .control + { + background: $checkRadioSelectedBackground; + + .inner + { + } + } + } + + &.disabled + { + cursor: not-allowed; + + .label + { + color: $inputDisabledTextColor; + } + } +} + + +.radio +{ + .control, .control .inner + { + border-radius: 50%; + } + + .control .inner + { + color: black; + position: absolute; + top: 4px; + left: 4px; + width: 6px; + height: 6px; + } + + &.checked .control .inner + { + background: #cccccc; + box-shadow: 0 1px rgba(0,0,0,0.5); + } +} + + +.check +{ + .control .inner + { + position: absolute; + top: 5px; + left: 4px; + width: 6px; + height: 3px; + } + + &.checked .control .inner + { + border: solid rgba(255,255,255,0.8); + border-width: 0 0 2px 2px; + transform: rotate(-45deg); + box-shadow: -1px 0 rgba(0,0,0,0.2), 0 1px rgba(0,0,0,0.5) + } +} + + +.form-control +{ + margin-top: 1em; +} + + +input[type=text], input[type=number], input[type=password], textarea +{ + @extend %inset; + background: $inputBackground; + color: $inputTextColor; + padding: .5em; + width: 100%; +} + +select +{ + @extend %outset; + background: $selectBackground; + color: $inputTextColor; + font-family: 'Verdana', 'Arial', sans-serif; + padding: .5em; +} + +input[type=range] +{ + margin-top: 1rem; + margin-bottom: 1rem; +} + +h1 +{ + font-size: 2rem; + margin: 0; +} + +h2 +{ + color: #c0c0c0; + font-size: 1.2rem; + margin: 0; +} + +h3 +{ + @extend %outset; + color: $sectionHeaderTextColor; + background: $sectionHeaderBackground; + font-size: 1.2rem; + padding: .5rem; +} + +h4 +{ + font-size: 1.4rem; +} + + +input[disabled] +{ + cursor: not-allowed; + color: $inputDisabledTextColor; + background: $inputDisabledBackground; +} + +label +{ + display: block; + margin-top: .5em; + margin-bottom: .5em; +} + + + +.label-inline +{ + margin-right: 2rem; +} + + + +@media #{$mediumScreen} +{ + .horizontal + { + clear: both; + + label + { + display: inline-block; + } + + input[type=text], input[type=number], input[type=password], textarea + { + display: inline-block; + float: right; + width: 50%; + } + + &:after + { + clear: both; + } + } +} + +.hint +{ + display: block; + font-size: 8pt; + color: #808080; + margin-bottom: 1.5rem; +} + + +.loading +{ + margin-top: 3rem; + text-align: center; +} + + +.suboptions +{ + margin-left: 5rem; +} + + +.buttons +{ + clear: both; + text-align: center; + margin-top: 1rem; +} + + +.sliders +{ + margin-top: 2rem; +} + + +.slidercontainer +{ + margin-top: 1rem; +} + +.slider +{ + -webkit-appearance: none; + width: 100%; + height: $sliderBarSize; + border-radius: $sliderBarSize / 2; + background: $sliderBarColor; + outline: none; + + &::-webkit-slider-thumb + { + -webkit-appearance: none; + appearance: none; + width: $sliderThumbSize; + height: $sliderThumbSize; + border-radius: 50%; + background: $sliderThumbColor; + cursor: pointer; + } + + &::-moz-range-thumb + { + width: $sliderThumbSize; + height: $sliderThumbSize; + border-radius: 50%; + background: $sliderThumbColor; + cursor: pointer; + } +} + + +.warning +{ + @extend %outset; + background: #973a38; + padding: .5em; + margin-bottom: 2rem; + margin-top: 1rem; +} + + +.nodata +{ + color: #808080; + text-align: center; +} + + +.clear +{ + clear: both; +} + + +.panel +{ + margin-bottom: 2rem; + padding: 0; + + .panel-header + { + @extend %outset; + border-radius: 3px 3px 0 0; + border-bottom-width: 0; + padding: .5em; + + label { + font-size: 1em; + } + + background: $panelHeaderBackground; + color: $panelHeaderTextColor; + + .actions + { + float: right; + } + + a, .label + { + color: $panelHeaderLinkColor; + } + } + + .panel-body + { + @extend %outset; + border-radius: 0 0 3px 3px; + + background: $panelBodyBackground; + padding: 2rem; + } + + + &.active + { + .panel-header + { + background: $panelActiveHeaderBackground; + color: $panelActiveHeaderTextColor; + } + } +} + + +.inline +{ + display: inline-block; + width: auto; +} + +.fade-enter-active, .fade-leave-active +{ + transition: opacity .5s; +} + +.fade-enter, .fade-leave-to +{ + opacity: 0; +} + + +.range +{ + clear: both; + + .start + { + position: relative; + display: inline-block; + width: 49%; + + .slidercontainer + { + margin-right: 4em; + } + + .value + { + position: absolute; + right: 0; + top: 1.5rem; + color: $sliderValueColor; + } + } + + .end + { + position: relative; + display: inline-block; + float: right; + width: 50%; + + .slidercontainer + { + margin-left: 4em; + } + + .value + { + position: absolute; + left: 0; + top: 1.5rem; + color: $sliderValueColor; + } + } + + &:after + { + clear: both; + } +} + + +.resetReason +{ + margin-left: 2em; +} \ No newline at end of file diff --git a/web/variables.scss b/web/variables.scss new file mode 100644 index 0000000..4e1fee7 --- /dev/null +++ b/web/variables.scss @@ -0,0 +1,48 @@ +$smallScreen: "screen and (max-width: 767px)"; +$mediumScreen: "screen and (min-width: 768px)"; + +$inputBackground: #404040; +$inputTextColor: white; +$inputDisabledBackground: #262626; +$inputDisabledTextColor: #808080; + + +$containerBackground: #202020; +$containerShadowColor: #fcf6cf; + +$buttonBackground: $inputBackground; +$buttonTextColor: #dddddd; +$buttonHoverBackground: #505050; +$buttonHoverTextColor: #dddddd; +$buttonActiveBackground: #282828; +$buttonActiveTextColor: #cccccc; + +$buttonPrimaryBackground: #2265a1; +$buttonPrimaryHoverBackground: #2672b6; + +$checkRadioBackground: $inputBackground; +$checkRadioSelectedBackground: #606060; + +$panelBorderColor: #404040; +$panelBodyBackground: #303030; +$panelHeaderBackground: #404040; +$panelHeaderTextColor: white; +$panelActiveHeaderBackground: #3b4a58; +$panelActiveHeaderTextColor: $panelHeaderTextColor; +$panelHeaderLinkColor: white; + +$selectBackground: $inputBackground; + +$notificationBackground: #297ab8; +$notificationErrorBackground: #973a38; + +$versionTextColor: #808080; + +$sectionHeaderBackground: #282828; +$sectionHeaderTextColor: #808080; + +$sliderBarColor: #404040; +$sliderBarSize: .5rem; +$sliderThumbColor: #fcf6cf; +$sliderThumbSize: 2rem; +$sliderValueColor: #808080;