From 6180b9f86cef18907ad05d1e373208157de107c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20M=C3=A9tais?= Date: Thu, 20 Jul 2023 17:38:14 +0200 Subject: [PATCH 1/5] Replace Jimp by Sharp for image processing (faster + supports webp/avif) --- lib/index.js | 4 +- lib/screenshotHandler.js | 87 ++++------------------------------------ package.json | 2 +- 3 files changed, 11 insertions(+), 82 deletions(-) diff --git a/lib/index.js b/lib/index.js index 68bf50c..8285f33 100644 --- a/lib/index.js +++ b/lib/index.js @@ -33,10 +33,11 @@ var yellowLabTools = function(url, options) { // If a screenshot saveFunction was provided in the options if (options && typeof options.saveScreenshotFn === 'function') { + const screenshotTmpPath = data.params.options.screenshot; debug('Now optimizing screenshot...'); // TODO: temporarily set all screenshot sizes to 600px, until we find a solution - ScreenshotHandler.findAndOptimizeScreenshot(data.params.options.screenshot, 600) + ScreenshotHandler.findAndOptimizeScreenshot(screenshotTmpPath, 600) .then(function(screenshotBuffer) { debug('Screenshot optimized, now saving...'); @@ -50,6 +51,7 @@ var yellowLabTools = function(url, options) { // Remove uneeded temp screenshot path delete data.params.options.screenshot; + return ScreenshotHandler.deleteTmpFile(screenshotTmpPath); }) .catch(function(err) { diff --git a/lib/screenshotHandler.js b/lib/screenshotHandler.js index 3aab753..02875ac 100644 --- a/lib/screenshotHandler.js +++ b/lib/screenshotHandler.js @@ -1,5 +1,5 @@ -var debug = require('debug')('ylt:screenshotHandlerAgent'); -var Jimp = require('jimp'); +var debug = require('debug')('ylt:screenshotHandler'); +var sharp = require('sharp'); var Q = require('q'); var fs = require('fs'); var path = require('path'); @@ -7,84 +7,11 @@ var path = require('path'); var screenshotHandler = function() { - this.findAndOptimizeScreenshot = function(tmpScreenshotPath, width) { - var that = this; - - debug('Starting screenshot transformation'); - - return this.openImage(tmpScreenshotPath) - - .then(function(image) { - that.deleteTmpFile(tmpScreenshotPath); - return that.resizeImage(image, width); - }) - - .then(this.toBuffer); - }; - - - this.openImage = function(imagePath) { - var deferred = Q.defer(); - - Jimp.read(imagePath, function(err, image){ - if (err) { - debug('Could not open imagePath %s', imagePath); - debug(err); - - deferred.reject(err); - } else { - debug('Image correctly open'); - deferred.resolve(image); - } - }); - - return deferred.promise; - }; - - - this.resizeImage = function(image, newWidth) { - var deferred = Q.defer(); - - var currentWidth = image.bitmap.width; - - if (currentWidth > 0) { - var ratio = newWidth / currentWidth; - - image.scale(ratio, function(err, image){ - if (err) { - debug('Could not resize image'); - debug(err); - - deferred.reject(err); - } else { - debug('Image correctly resized'); - deferred.resolve(image); - } - }); - } else { - deferred.reject('Could not resize an empty image'); - } - - return deferred.promise; - }; - - - this.toBuffer = function(image) { - var deferred = Q.defer(); - - image.quality(85).getBuffer(Jimp.MIME_JPEG, function(err, buffer){ - if (err) { - debug('Could not save image to buffer'); - debug(err); - - deferred.reject(err); - } else { - debug('Image correctly transformed to buffer'); - deferred.resolve(buffer); - } - }); - - return deferred.promise; + this.findAndOptimizeScreenshot = async function(tmpScreenshotPath, width) { + return sharp(tmpScreenshotPath) + .resize({width: 600}) + .jpeg({quality: 85}) + .toBuffer(); }; diff --git a/package.json b/package.json index 07e5917..96bd8df 100644 --- a/package.json +++ b/package.json @@ -45,13 +45,13 @@ "is-webp": "1.0.1", "is-woff": "1.0.3", "is-woff2": "1.0.0", - "jimp": "0.22.8", "md5": "2.3.0", "meow": "5.0.0", "parse-color": "1.0.0", "phantomas": "2.8.0", "q": "1.5.1", "request": "2.88.2", + "sharp": "0.32.3", "ttf2woff2": "5.0.0", "uglify-js": "3.17.4", "woff-tools": "0.1.0" From 0cde5a3607ef925191b7d0bb4d497768d3a4949f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20M=C3=A9tais?= Date: Fri, 21 Jul 2023 10:17:18 +0200 Subject: [PATCH 2/5] Add Avif to content type detection --- lib/tools/redownload/contentTypeChecker.js | 75 +++++++--------------- lib/tools/redownload/imageDimensions.js | 4 ++ package.json | 10 +-- test/core/contentTypeCheckerTest.js | 10 +-- 4 files changed, 32 insertions(+), 67 deletions(-) diff --git a/lib/tools/redownload/contentTypeChecker.js b/lib/tools/redownload/contentTypeChecker.js index ea06d88..08f5b23 100644 --- a/lib/tools/redownload/contentTypeChecker.js +++ b/lib/tools/redownload/contentTypeChecker.js @@ -1,20 +1,12 @@ -var debug = require('debug')('ylt:contentTypeChecker'); -var Q = require('q'); -var isJpg = require('is-jpg'); -var isPng = require('is-png'); -var isSvg = require('is-svg'); -var isGif = require('is-gif'); -var isWebp = require('is-webp'); -var isWoff = require('is-woff'); -var isWoff2 = require('is-woff2'); -var isOtf = require('is-otf'); -var isTtf = require('is-ttf'); -var isEot = require('is-eot'); -var isJson = require('is-json'); +var debug = require('debug')('ylt:contentTypeChecker'); +var Q = require('q'); +var FileType = require('file-type'); +var isSvg = require('is-svg'); +var isJson = require('is-json'); var ContentTypeChecker = function() { - function checkContentType(entry) { + async function checkContentType(entry) { var deferred = Q.defer(); // Setting isSomething values: @@ -55,7 +47,7 @@ var ContentTypeChecker = function() { var foundType; try { - foundType = findContentType(entry.weightCheck.bodyBuffer); + foundType = await findContentType(entry.weightCheck.bodyBuffer); // If it's an image or a font, then rewrite. if (foundType !== null && (foundType.type === 'image' || foundType.type === 'webfont' || foundType.type === 'json')) { @@ -76,54 +68,23 @@ var ContentTypeChecker = function() { return deferred.promise; } - function findContentType(bodyBuffer) { + async function findContentType(bodyBuffer) { var bodyStr = bodyBuffer.toString(); - if (isJpg(bodyBuffer)) { - return contentTypes.jpeg; - } - - if (isPng(bodyBuffer)) { - return contentTypes.png; - } - // https://github.com/sindresorhus/is-svg/issues/7 if (/ Date: Wed, 26 Jul 2023 16:04:20 +0200 Subject: [PATCH 3/5] New rule that converts images to WebP and AVIF and checks the gain --- lib/metadata/policies.js | 12 +- lib/metadata/scoreProfileGeneric.json | 1 + lib/screenshotHandler.js | 2 + lib/tools/redownload/contentTypeChecker.js | 2 +- lib/tools/redownload/imageReformater.js | 138 +++++++++++++++++++++ lib/tools/redownload/redownload.js | 46 ++++++- test/core/imageReformaterTest.js | 122 ++++++++++++++++++ test/core/redownloadTest.js | 15 +-- test/www/animated.webp | Bin 0 -> 37342 bytes test/www/monster.webp | Bin 0 -> 83922 bytes 10 files changed, 325 insertions(+), 13 deletions(-) create mode 100644 lib/tools/redownload/imageReformater.js create mode 100644 test/core/imageReformaterTest.js create mode 100644 test/www/animated.webp create mode 100644 test/www/monster.webp diff --git a/lib/metadata/policies.js b/lib/metadata/policies.js index 3157fb1..fcabafe 100644 --- a/lib/metadata/policies.js +++ b/lib/metadata/policies.js @@ -729,7 +729,7 @@ var policies = { "totalWeight": { "tool": "redownload", "label": "Total weight", - "message": "

The weight is of course very important if you want the page to load fast. Try to stay under 1MB, which is already very long to download over a slow connection.

", + "message": "

The weight is of course very important if you want the page to load fast. Try to stay under 1.5MB.

", "isOkThreshold": 1572864, "isBadThreshold": 3145728, "isAbnormalThreshold": 5242880, @@ -746,6 +746,16 @@ var policies = { "hasOffenders": true, "unit": 'bytes' }, + "oldImageFormats": { + "tool": "redownload", + "label": "Old image formats", + "message": "

Measures the number of bytes that could be saved by converting images to newer and more efficient formats. The current best image format for the web is AVIF and the second best is WebP.

Be careful, you need to provide a fallback for old browsers that don't support them (for example, Microsoft Edge doesn't support AVIF on Windows 10 or earlier) and search engine bots.

", + "isOkThreshold": 30720, + "isBadThreshold": 307200, + "isAbnormalThreshold": 512000, + "hasOffenders": true, + "unit": 'bytes' + }, "imagesTooLarge": { "tool": "redownload", "label": "Oversized images", diff --git a/lib/metadata/scoreProfileGeneric.json b/lib/metadata/scoreProfileGeneric.json index 8bff9e4..4ecdc42 100644 --- a/lib/metadata/scoreProfileGeneric.json +++ b/lib/metadata/scoreProfileGeneric.json @@ -5,6 +5,7 @@ "policies": { "totalWeight": 5, "imageOptimization": 2, + "oldImageFormats": 2, "imagesTooLarge": 1, "compression": 2, "fileMinification": 2 diff --git a/lib/screenshotHandler.js b/lib/screenshotHandler.js index 02875ac..c175fd1 100644 --- a/lib/screenshotHandler.js +++ b/lib/screenshotHandler.js @@ -4,6 +4,8 @@ var Q = require('q'); var fs = require('fs'); var path = require('path'); +// Disable sharp cache to reduce the "disk is full" error on Amazon Lambda +sharp.cache(false); var screenshotHandler = function() { diff --git a/lib/tools/redownload/contentTypeChecker.js b/lib/tools/redownload/contentTypeChecker.js index 08f5b23..a37c7d5 100644 --- a/lib/tools/redownload/contentTypeChecker.js +++ b/lib/tools/redownload/contentTypeChecker.js @@ -52,7 +52,7 @@ var ContentTypeChecker = function() { // If it's an image or a font, then rewrite. if (foundType !== null && (foundType.type === 'image' || foundType.type === 'webfont' || foundType.type === 'json')) { if (foundType.type !== entry.type) { - debug('Content type %s is wrong for %s. It should be %s.', entry.type, entry.ulr, foundType.type); + debug('Content type %s is wrong for %s. It should be %s.', entry.type, entry.url, foundType.type); } rewriteContentType(entry, foundType); } diff --git a/lib/tools/redownload/imageReformater.js b/lib/tools/redownload/imageReformater.js new file mode 100644 index 0000000..c882c6c --- /dev/null +++ b/lib/tools/redownload/imageReformater.js @@ -0,0 +1,138 @@ +var debug = require('debug')('ylt:imageReformater'); +var sharp = require('sharp'); + +// Disable sharp cache to reduce the "disk is full" error on Amazon Lambda +sharp.cache(false); + +var ImageOptimizer = function() { + + // https://www.industrialempathy.com/posts/avif-webp-quality-settings + const WEBP_QUALITY = 82; + const AVIF_QUALITY = 64; + + async function reformatImage(entry) { + if (!entry.weightCheck || !entry.weightCheck.bodyBuffer) { + // No valid file available + return entry; + } + + var fileSize = entry.weightCheck.uncompressedSize; + debug('Let\'s try to convert %s to other image formats', entry.url); + debug('Current file size is %d', fileSize); + + var animated = await isAnimated(entry); + debug('Check if the file is animated: %s', animated); + + + if (isJPEG(entry) || isPNG(entry)) { + debug('File is %s, let\'s try to convert it to WebP', entry.contentType); + + try { + + const webpFile = await convertToWebp(entry.weightCheck.bodyBuffer, animated); + + if (webpFile) { + var webpFileSize = webpFile.length; + + debug('WebP transformation complete for %s', entry.url); + debug('WebP size is %d bytes', webpFileSize); + + if (webpFile.length > 0 && gainIsEnough(fileSize, webpFileSize)) { + entry.weightCheck.webpSize = webpFileSize; + debug('WebP size is %d bytes smaller (-%d%)', fileSize - webpFileSize, Math.round((fileSize - webpFileSize) * 100 / fileSize)); + } + + } else { + debug('Convertion to WebP didn\'t work'); + } + + } catch(err) { + debug('Error while converting to WebP, ignoring'); + } + } + + if (!animated && (isJPEG(entry) || isPNG(entry) || isWebP(entry))) { + debug('File is %s and is not animated, let\'s try to convert it to AVIF', entry.contentType); + + try { + + const avifFile = await convertToAvif(entry.weightCheck.bodyBuffer); + + if (avifFile) { + var avifFileSize = avifFile.length; + + debug('AVIF transformation complete for %s', entry.url); + debug('AVIF size is %d bytes', avifFileSize); + + if (avifFile.length > 0 && gainIsEnough(fileSize, avifFileSize)) { + entry.weightCheck.avifSize = avifFileSize; + debug('AVIF size is %d bytes smaller (-%d%)', fileSize - avifFileSize, Math.round((fileSize - avifFileSize) * 100 / fileSize)); + } + + } else { + debug('Convertion to AVIF didn\'t work'); + } + + } catch(err) { + debug('Error while converting to AVIF, ignoring'); + } + } + + return entry; + } + + async function convertToWebp(bodyBuffer, isAnimated) { + return sharp(bodyBuffer, {animated: isAnimated}) + .webp({quality: WEBP_QUALITY, alphaQuality: WEBP_QUALITY}) + .toBuffer(); + } + + async function convertToAvif(bodyBuffer) { + return sharp(bodyBuffer) + .webp({quality: AVIF_QUALITY}) + .toBuffer(); + } + + // The gain is estimated of enough value if it's over 2KB or over 20%, + // but it's ignored if is below 100 bytes + function gainIsEnough(oldWeight, newWeight) { + var gain = oldWeight - newWeight; + var ratio = gain / oldWeight; + return (gain > 2048 || (ratio > 0.2 && gain > 100)); + } + + function isJPEG(entry) { + return entry.isImage && entry.contentType === 'image/jpeg'; + } + + function isPNG(entry) { + return entry.isImage && entry.contentType === 'image/png'; + } + + function isWebP(entry) { + return entry.isImage && entry.contentType === 'image/webp'; + } + + function entryTypeCanBeReformated(entry) { + return isJPEG(entry) || isPNG(entry) || isWebP(entry); + } + + async function isAnimated(entry) { + if (isWebP(entry)) { + const metadata = await sharp(entry.weightCheck.bodyBuffer).metadata(); + return metadata.pages > 1; + } + return false; + } + + return { + reformatImage: reformatImage, + convertToWebp: convertToWebp, + convertToAvif: convertToAvif, + gainIsEnough: gainIsEnough, + entryTypeCanBeReformated: entryTypeCanBeReformated, + isAnimated: isAnimated + }; +}; + +module.exports = new ImageOptimizer(); \ No newline at end of file diff --git a/lib/tools/redownload/redownload.js b/lib/tools/redownload/redownload.js index 803b0dd..e7d8f26 100644 --- a/lib/tools/redownload/redownload.js +++ b/lib/tools/redownload/redownload.js @@ -15,6 +15,7 @@ var request = require('request'); var md5 = require('md5'); var imageOptimizer = require('./imageOptimizer'); +var imageReformater = require('./imageReformater'); var fileMinifier = require('./fileMinifier'); var gzipCompressor = require('./gzipCompressor'); var brotliCompressor = require('./brotliCompressor'); @@ -78,6 +79,10 @@ var Redownload = function() { .then(imageOptimizer.optimizeImage) + .then(function(entry) { + return Q(imageReformater.reformatImage(entry)); + }) + .then(imageDimensions.getDimensions) .then(fileMinifier.minifyFile) @@ -91,7 +96,7 @@ var Redownload = function() { }) .then(function(newEntry) { - debug('File %s - Redownloaded, optimized, minified, compressed, analyzed: done', entry.url); + debug('File %s - Redownloaded, optimized, reformated, minified, compressed, analyzed: done', entry.url); // For the progress bar doneCount ++; @@ -154,6 +159,10 @@ var Redownload = function() { offenders.imageOptimization = listImagesNotOptimized(results); metrics.imageOptimization = offenders.imageOptimization.totalGain; + // Old image formats + offenders.oldImageFormats = listImagesWithOldFormats(results); + metrics.oldImageFormats = offenders.oldImageFormats.totalGain; + // Image width offenders.imagesTooLarge = listImagesTooLarge(results, data.params.options.device); metrics.imagesTooLarge = offenders.imagesTooLarge.length; @@ -398,6 +407,41 @@ var Redownload = function() { return results; } + function listImagesWithOldFormats(requests) { + var results = { + totalGain: 0, + images: [] + }; + + requests.forEach(function(req) { + + if (req.weightCheck.bodySize > 0 && + imageReformater.entryTypeCanBeReformated(req) && + (req.weightCheck.webpSize > 0 || req.weightCheck.avifSize > 0)) { + + var image = { + url: req.url, + originalWeigth: req.weightCheck.bodySize + }; + + if (req.weightCheck.webpSize) { + image.webpSize = req.weightCheck.webpSize; + } + if (req.weightCheck.avifSize) { + image.avifSize = req.weightCheck.avifSize; + } + + var smallest = Math.min(image.webpSize || Infinity, image.avifSize || Infinity); + image.gain = req.weightCheck.bodySize - smallest; + + results.totalGain += image.gain; + results.images.push(image); + } + }); + + return results; + } + function listImagesTooLarge(requests, device) { var results = []; diff --git a/test/core/imageReformaterTest.js b/test/core/imageReformaterTest.js new file mode 100644 index 0000000..07d6541 --- /dev/null +++ b/test/core/imageReformaterTest.js @@ -0,0 +1,122 @@ +var should = require('chai').should(); +var imageReformater = require('../../lib/tools/redownload/imageReformater'); +var fs = require('fs'); +var path = require('path'); + +describe('imageReformater', function() { + + it('should convert a JPEG image to WebP and AVIF', async function() { + var fileContent = fs.readFileSync(path.resolve(__dirname, '../www/jpeg-image.jpg')); + let entry = { + isImage: true, + type: 'image', + contentType: 'image/jpeg', + weightCheck: { + bodyBuffer: fileContent, + uncompressedSize: fileContent.length + } + }; + + var newEntry = await imageReformater.reformatImage(entry); + + newEntry.weightCheck.should.have.a.property('webpSize'); + newEntry.weightCheck.webpSize.should.be.below(fileContent.length); + + newEntry.weightCheck.should.have.a.property('avifSize'); + newEntry.weightCheck.avifSize.should.be.below(fileContent.length); + }); + + it('should convert a PNG image to WebP and AVIF', async function() { + var fileContent = fs.readFileSync(path.resolve(__dirname, '../www/jpeg-image.jpg')); + let entry = { + isImage: true, + type: 'image', + contentType: 'image/png', + weightCheck: { + bodyBuffer: fileContent, + uncompressedSize: fileContent.length + } + }; + + var newEntry = await imageReformater.reformatImage(entry); + + newEntry.weightCheck.should.have.a.property('webpSize'); + newEntry.weightCheck.webpSize.should.be.below(fileContent.length); + + newEntry.weightCheck.should.have.a.property('avifSize'); + newEntry.weightCheck.avifSize.should.be.below(fileContent.length); + }); + + it('should convert a WebP image to AVIF', async function() { + var fileContent = fs.readFileSync(path.resolve(__dirname, '../www/jpeg-image.jpg')); + let entry = { + isImage: true, + type: 'image', + contentType: 'image/webp', + weightCheck: { + bodyBuffer: fileContent, + uncompressedSize: fileContent.length + } + }; + + var newEntry = await imageReformater.reformatImage(entry); + + newEntry.weightCheck.should.not.have.a.property('webpSize'); + + newEntry.weightCheck.should.have.a.property('avifSize'); + newEntry.weightCheck.avifSize.should.be.below(fileContent.length); + }); + + it('should recognize an animated WebP', async function() { + // Test on an animated image + let fileContent = fs.readFileSync(path.resolve(__dirname, '../www/animated.webp')); + let entry = { + isImage: true, + type: 'image', + contentType: 'image/webp', + weightCheck: { + bodyBuffer: fileContent, + uncompressedSize: fileContent.length + } + }; + + (await imageReformater.isAnimated(entry)).should.equal(true); + + // Test on a not animated image + fileContent = fs.readFileSync(path.resolve(__dirname, '../www/monster.webp')); + entry.weightCheck.bodyBuffer = fileContent; + (await imageReformater.isAnimated(entry)).should.equal(false); + }); + + it('should not convert an animated WebP', async function() { + // Test on an animated image + let fileContent = fs.readFileSync(path.resolve(__dirname, '../www/animated.webp')); + let entry = { + isImage: true, + type: 'image', + contentType: 'image/webp', + weightCheck: { + bodyBuffer: fileContent, + uncompressedSize: fileContent.length + } + }; + + var newEntry = await imageReformater.reformatImage(entry); + + // Test on a not animated image + newEntry.weightCheck.should.not.have.a.property('avifSize'); + }); + + it('should determine if gain is enough', function() { + imageReformater.gainIsEnough(20000, 10000).should.equal(true); + imageReformater.gainIsEnough(2000, 1000).should.equal(true); + imageReformater.gainIsEnough(20000, 21000).should.equal(false); + imageReformater.gainIsEnough(20000, 40000).should.equal(false); + imageReformater.gainIsEnough(20000, 19500).should.equal(false); + imageReformater.gainIsEnough(250, 120).should.equal(true); + imageReformater.gainIsEnough(200, 120).should.equal(false); + imageReformater.gainIsEnough(2000, 1900).should.equal(false); + imageReformater.gainIsEnough(200000, 197000).should.equal(true); + }); + +}); diff --git a/test/core/redownloadTest.js b/test/core/redownloadTest.js index 0c02dae..ada3e22 100644 --- a/test/core/redownloadTest.js +++ b/test/core/redownloadTest.js @@ -86,6 +86,10 @@ describe('redownload', function() { data.toolsResults.redownload.offenders.imageOptimization.totalGain.should.be.above(0); data.toolsResults.redownload.offenders.imageOptimization.images.length.should.equal(2); + data.toolsResults.redownload.offenders.should.have.a.property('oldImageFormats'); + data.toolsResults.redownload.offenders.oldImageFormats.totalGain.should.be.above(0); + data.toolsResults.redownload.offenders.oldImageFormats.images.length.should.equal(1); + data.toolsResults.redownload.offenders.should.have.a.property('imagesTooLarge'); data.toolsResults.redownload.offenders.imagesTooLarge.length.should.equal(0); @@ -167,18 +171,9 @@ describe('redownload', function() { redownload.redownloadEntry(entry) .then(function(newEntry) { - newEntry.weightCheck.bodySize.should.equal(4193); newEntry.weightCheck.bodyBuffer.should.deep.equal(fileContent); - - // Opening the image in jimp to check if the format is good - var Jimp = require('jimp'); - Jimp.read(newEntry.weightCheck.bodyBuffer, function(err, image) { - image.bitmap.width.should.equal(620); - image.bitmap.height.should.equal(104); - done(err); - }); - + done(); }) .fail(function(err) { diff --git a/test/www/animated.webp b/test/www/animated.webp new file mode 100644 index 0000000000000000000000000000000000000000..7a1d3fe146ae49b89f0cf8ff33864c3053562960 GIT binary patch literal 37342 zcmZ_01#BHL(=L2+!pzLf%*@Pb8fI>oISrjKGc#ku4L8ixFf&7g4JYUJeLsD=SNip@ zyp}v#k7ciR{LC}s)sUBwSxy1~w527~wAA=?5C8xG#=koO;y*=PMP3=^U+dom2K;L& z%ZOn8PxF7DkO2UI|N1FW|C6&O^qT`@4=da1EPV=u-duk2L-*nfSKfFP;-H`I&5Ui4 zLl3q&P>$MEbgVeoZ&cp}pIq<#$?m`rr&z+ zhwk{LM(~3mbrNND7*KFhJTQ`vn{s*wV5n>tRh6X;bah0(MrE@z6Tz`dIi%Dh{SZG- zMbD^GIIk#Q%T*^JXd3x80gs{grqq3xczidLQ$;m?oK87Zw~=mfKM^X7z_rNjrz25f z4H3nTCeYlnXz4z_PA`zx5daIC5p?1g{~?lVT}F18TxWiw(Yn7UWV?V8r;HCs~UVtUY7Fr(hIIcyxtR67Wp@^cVKp9)(@ zYVK6hL9PMKBWb$!en%Q{huh>4m}iEPEAS)u1#wBqmx=5jymjrIe9zZTUnq}={QQzg zC2vnSEmMoihf)1UmkFm&4wdbfmwrH|uqjoAnRyMW!U3#Ugc8Q_j8>}m5dpeI;DBlh0MuIY7VGkXZ$Gx1B!+~^e+_1fM+xw?4w{2__YSxY>S zNVmhvE0v+)*7ehi*3;Kc>N9HcAlnvY4>#UK`b~7Wusho8G=!I zm4+gK+b#(_Jfx+B7zIFbG-<@Em@kFrP@YLl-HaftQNXQ2Mb==2XuKyLZ!`;VfT^(+x`x&We{GZgNW5ajn9+JJ5M&0|yKLzV-ghvkNZ|%D?HOdGPFhejiLECeB~c zgI7CgDO<~1Xs60^WCkax53Q&(P>zMM8Ex5b;bvD868mBdyIOpC5~KXJzJhq4DRX4h zt>UGr(o&*djjr$Uo?pz9K0Tf)nsUcOR^VHL7B=Co#xxQ0s5(o;el8>-sH9rltuhh9 zQ+YMcsH#_60Fz|4Pb;HWWKTWK&`yzL-Uu2$2>exI3+;`?0 z+u*Frr&bId)NepYa6e2fVK0z+jv(bt<`q-VR)~FwCOi%iQ<5MQ&(KsZp(Ku+&_K93 zv*zqc^h7!y}E9SdAPU2XG zLsT;d*0-h%8DAv+-73a_Q94_F=70aERz_c~i+POlQctApmU+C+F!q5v#OzeW5jHJjX*@~?BSS7AfR=LfLT>sj7 zzOcutE5Uf0rnD*r&B_%;GDahSK`4CLEm<)D2s4i%BK5VOBc_67a|!8YF;IkQHR*+> zd<+={2U3WwcDn;Iu&!|&p;8PIB&VW^ORf3+ieQd2cH>*hO;99R3c=P0di-PGFK$jj z@^VY2#}#7a49j4$zr%H z2Nyemp4<6yHqtW&9hwHWBbe_*SEQzP1Bt6)Cm1B47*urU^hb_Xb8P|{jN-tD-wzk7 zpU{a#!*4vFPP_sm7K?zw6@_5YA0y+mvfDlDEi&~py~6*HPm@n5envin8s!i@-B=a4 zWb&y@HH(*#A1Bx?QP}>W?@l;h|HHTCgv$<35n&YtgOBthUa_@Hr^jBf`%AR3zOMaI z&;V-PdS^?h6ly8XuSPA;lLi5U5T!#oER8711! zj=9%*)JW^ZbNd4-W3ZEeZJ|({jh+H6j{_e+I`q5jqng6?&k(Lug2CGlhi6Z?fyr6LXvp-+}Ay56&W8J;#1NS;G!2GTcJUB=Q8Y=%{ z1-618Oaif9-wmU;KhB)z%OH#4smAlLzN#Y*78pLPx6ZNN29O@Uaa`}hdFl(WnI*$N z%MqrPpyp;HM>Cz4vxq#vb)`#Iy+2pC`WLdkH#K#iM{)AXO?Ex_eBydu<9IIHenw|B zJ4CmhOeLrdA|FrYMFaz@B;x#OjD{mxJ%(L2n5ORUQVNy&!% z%%h~}3py}%Ad5*le1>-OPbroak;VKA9rmTcHh|Wf&M@=VyL%0SSZaIW&$6!+|8~re zyra{{c=i7Duu(?>o$cmMP&hky8V*;}4~5=!;{^nt9)nOMI!fQnsC9=|Qsa1Nj_fK? z%BN8UffbZ?MpPhxQc#kQ9yb}m^J35*|4{YLrmihA%}42ZwueKP&RY9*;8)id;6}Ie z>A?0DRi+n{v$@l7|8vZXB!(v}`Vv|F)71Uc?BmYi!MD(@H|-o$`nqWg%eiU{$T zt#K6QBkZ?gOt?2_>oUQnD-M1G(mQ^QqMgqA>UU=@YE_N&$_}>I=!GjgS+BzB8YKMD zzJ?rI_kP{8ML{s!cOn1Pth!0t4_(y4down}jp-IiwqhZO#08J9btix`7b*WkX}j*@ zlT55b7=D^~a{!SMp%A2Jd-Zb4XzF5a14h`=RGcF|Iz1&j_C+yh1r}08d*D|W<)r$Sug>$#YVuOsefeT)H;EU!t zML}q-l3ks4yg`xldvY0KRm7^q+Ln@9--w$_Aj;A7DcGwS9>Xw{7*VTwhM*X{VWCnX z)Nmt+V7IW2KtP5#YoL-g^nkk0r@PiQF<=`d{^*H0t{m-WLMdq}>M;34v!}QgbbjC4 zmO43jZk8y`w~W~JUMex$7jMD_dGwB+c;s2@mD;Z~MHnp>doq`8L*IxwL1@~vb?2sP?YzolGW=-VWSyCS}v-Tpc1>00)L zg(e}H7lYji8^61esP$c9xz8({L@V+S3dA(0P4CMa*Q2#lODjwLd|s3qnGwejwZ%h= zl~Uf$#dF|qK!pZys_LBWw#VO?NG1pFp9okWl+r=!d3(EA zKMMF!7*QGpnR;HiwM9_XhajLu1<^5IY->7gO|W6}|}4==6Ma{pM( zC2_MH_*JemA8rA4Dv0st|tmu z79RU`@V&1E*8;(<<2^Ikp5nN^_?r?(=6y{$1<-PQxXD0OMJTE1mzU%{<_sf^JDqi@ zdywT{CZgi2Mdt8B4jA^(X7){vj!Me3E?9dsLe2~5d9oSnP~_@417|b!`q3+=J|*(h z^!v$u6dl(#9ZB5)X5MGL*TcTe!e!?(^b;BM(7YaQlhlM9nV(NYXEW{lI4bGk>;dCK zj2PS`^kKKT zV7T2wu`H=)H!Di%x0>cPnQLa1XG%Evww-9oXkQt0dXKJ=;qU%j9)N@Peyk$$n2Olz zvKumT7{eZ8WTg!}&=|$E0dTWlfploPYYy#Hu2NNB_*fW@RSFZic&Z{g89At8)w&Xh z`UTMP1cHOGwK>Pylku$TL6}Bm#bc!B-FD#-z8%+3DFa+OkMzIIy-N9yh&(mt=y9vm z4jX?eLeUee#jw^3-?67KDWSeieV5R|EBL#5&uJ@J2b#~K$$(w(i$8*9&V0+4Y%fHb z`Rk%s(RR>Aw<_9~;4ZL5;%`xWsRdIzT9`81SGZ}e_DJkix&;5b%z2=M3)}Kxi;p>Ex#I|q{za=Stk!K|frO^j^FjVp%GXW7F3G*S-ywWU7ZRc#P zL$TaO*%+{Bo61IMnQ9WuSZcg(Goef0l*=Aa$MXoVdyHB4yvH$b*g4tsH-(4xP>5?i zyLLSt^T|{&IPS|#;&<&jqBft6#s;1r`$N7=V?X`jQsd>&;b|9dDnCs{$E&H#YG|_6 z{eY+-b>u}YG7()UIj8fI_g%q;LDmc{hP0)JVKykIPn{2)J4w;d3PfAU+eTfTvY)NO z8tMLvQSQ(pS4((v_fnSK>q3Cn@bkKXYFl42Gx1?;3O7|sT%!#sjbOp~#@1ROcQ5X! z>a5*;Eo3J%=6!J@U=|(gl6Jx^`|7+{dZKcDi41zQn@4kcOXstbeSbVj`&&`!5^4ub z^|z~|UNBq`*VFRld2WE-9?YhZTT5D>+fY!Cb##xBl@IBw+Ec4)^hN!Qa)LRpJx=D4 zx8qfJ6C0&>m7heFe4&ZxNP@{i%;Dl6mxdbgBOr3LiN$hQ2k{+4+~20x&7qACQ71H- z90`Wq2}aKX!L_&#DV}?_$v71JH9UER8oSBNf`7*s7dzr9V}6kRLtSbO*NQ29a** zk7z&x&umD3xYk!zNIwOYA^$#{J9fwGW)e=Dx6~h1W)pZ^yKn}7B`=T?bp>R!`?W22 zK;^D(k#YU>q(aJOTWs71oiC`aPyh5Cl>aHC$(ARGd9FDZ7hO)dt(I|B16oX|7S&i?~<=^xV*8 z{3K;s#eFK$j_k)qeuY9lZ@|nurlh+OMb_A=*k|EvOJ)k**w5zAQK6A;KQWlVU|vhb zKQu)&?t1-`e}~TM7P}D8rF$B7D~}wnEdXbn$qQ&kOd)Gf-n~06ir+F(M|?z`uFrEG z;53o0z|&MI6X)g?MWEjW$$mSfuR(Ro7uK8p_f5U7_>aP~G;Ygznn7M}`LqWrt(oWX zt3=pbin|u$jO5gY+5K`@(NmRTb1c*(SoUv2{RNfQ;%@qHAB-j$lGsCoWA- zBWSjnO)T^gorxTkW-Rd%P&lgDwN>QUayz!Jh66m^1WZa`_IB#rNvvcQi`llMxN_@i zrfVg08#BXWT)72Y++Q6bpF$D4PkQZiX^}8cxj`BY1(}Q^y9kJC1syajEI3Q&O}kx7 zj}VN+d@My=W$`J7b=JZxXW{kjx`7|`Saw>^M#vdFBYmiRTp^IXUSu|7a73(b`RGlA zWo*R8hvmQ!(F#xGA_+`Z7F1b=)@np6b45v9!7pK>;FTq9)z zJ7A~#z!UK2*X4*cOc_@Op0?LQuI~W%F{#^JbCEqi&lKC{My1y{*KW=l59LBdQDVNa zqP>u(-zp&+r1(N5Ve&g-#onFEwCYG{a6u}luxq4-p6VsI%)o_;I@)K-9{e;I< zZst#42cQdxvJH^4Jx0sZQA@&YI(!42WawtGU`nm@PajWp1m~6W0Pn-tzP~jwMi-I2 z|GX_C3n`9*%iBsKX(FRn?GSYs82m1pZ;$2GKoGU4wGPJ@hgl*%`DL^JoHtrfCr%Zg z*lEfYvY5t}K0Dl}c>2Qt;apbzRZj_@)9HghJ;4kz2)V3_O@v&w9LOJ!&Se~1$aTa> zQ^CGNip-@>twaU4XF~}ZxQA9#>saI8+SuFqc87b+K$ib%2e+Adbipy2{m>wTGlA9- zCzDFryTyqzr(}~T1!t!DZ}hFnabkn|4q9ap_xIIQ*R_V6ahmj&owxG?)SJ)T90Yjf z7j*Z9FA#n|pf%b#Ct*jk2k4&2<*xM4mp6aP;-hr}DV&`+F^cbM&7rm}Ub6JO|NfjKT_Xsv%}>1vE67Rw-Tbf zQLGl%D%h_iQ9hsfdIy?B*7BtSM|vJj9%Kdn%OW~L|9@CSz<*f8um9x#VG+?}2WS9& zRBrvEjzH%ZSwextWT2F@mvT{q!-k9}&nvjcL*H&AduZo6p(~@RS&U~K0K-JZ&Da2q zIH%s#HT7$b%XIpXcorPG&*=__E)fC|b#Va|4!{dZBC~)BK{F+@Wct!irrisjvA%4F zB)P{=&==k**qj350+@FvX-HWmwWU~`&ZedJG{#qRnj@2!t2r13*cYACLPJZR% zDN)Zz9Z%J@xqMz~QBOy_*B^`Cp}IQ+YbR${de{d}G=gtONUJgRx5drswT6qqi8{^?bxL^?6rq`Jj2sBcu8wkBJIyRHc z2t$$i9cd2aV7^X7X6MBQD|POnXgt>Mb$oq1TBXB-S^G=u8wC?E$e*ex&)FS}lEyx` zgAcij5`Fm(P|YT$J9X?k0C#!^wlM9XOU>86Fp&`&H5~aRlpYE!`JT$7`OXuzRXi{I z!vdNW+nJnDpx=vrUT*0~U=aeWc?su#H?qMANcs*pkKaZFQg;FKDML;~zx%`VcJ^#c z&S$J7{s~=%_J?WM>DZp~W$eSrG_Y2Ntf;sTC#do^=JT{?+{rnnecb-gZ%Nf8Q zAfY$)HCoX!{L`m5ooH@H$g8456BvHCZ&PU=Z=+G^3;TCB)Y#|(&U1)`^1F2GJsZsa z3juYcI)KBX?3{SfMJKE+b(W>2%>THE`G^zN;p}dqv80#ytJORq_W6PX13WJr)`>e_ z8ldTQ=r^$o0)DLMN}KJ3J^Z?2^){w#r1NSN(v|}!$4#A^ohb>~k7IbOtuuKhbviN9 z;3s&DWE~WE+#^A|g{iJyrN#w55qYVFD@-%xk0vo>`^uswcvFMWWSLI>^<}RtND%CsK;s|^U==# zZ-U+Pi{<)ZRtEf~$C5N~X4mpKHBL1UO@WSEQ0U}Wy5#T)&SS#D`5sK2-I8!fx}^O7 z#BPTEf2?lJ|5{zveY$^EHyiO!J%o21z$s)dSg*8jNZQ%!TYrNCm9%cS-}$dKum82Y zw0VeXf|~X~Vfa$A;!8FD2oI4b*^(lOx#*KAD+1`Y{L+ZMaxR=r>0o~P3+DdDD=m6fV z;i9__3Ep}MF5BDWdR#Dx?=_n49Y6?Xex^Bc{Y^W=zA4`I0SUMqi15(*`?4acwj}UA zH2~+1dDv9NUYeF*sGu!FB#9RXcfoe>Tgu9mnk&G3j=b+y=+_h`c#JQ0+-k)m7+C(B zM0{JVy1PyXJ4MipsMa9{NhFP-IR zqL%8y-;f-&Xt!~a<-f+YDG1xIQxsQjp}|x`2ZMv6eQky}Q4$5g@xP($UcAT|9^m@$ zp5u<&#zmzvb+f}M-hbaN*QoCDY_B&W7?G11TiKM(){qi8IXyrC9_;{ZYZ~wDRKx?< zxGNjVYn0QOE#pV1xtxf$R5z?^%27r?H)_D-{vD4wgMRHCe|eMd z-8+)~=yW&@qO!^2WGIoqgr6&427PuaL)iTDx9M9G7Lqo1)SrZe4JOQGCByjd%>F#0 zb5fd818L;b8$zc{3%Ff|EmXb;YNgFknjrtUAOLomSu>j@K;l>UWnq&3$r{JB@-Mk1 zMjL4x#gR}=-fDSEN{!;vZ4tt$Y-NjQ_e^izA8xDLO24DRXhP+F>;TCK5VMN}OPvlx z_*vbB;P2Q-A)uhdB=c-`5c}y%)xRYTVaf&d5LoT>osnE0A$%h$7zc=1>bqoPG#9@< z-VXOCS63G{ra~)pjUeoe#PS17uJcP>ZQfRJA%Mzx8@8sw=NCI7mbdS|DBq$CvE+0M zTNu}b{&tu=rv4j@fP}I)A`VCz1zMwxikg^rJD%~x2v*>m!R1;wCOy_0mDx`B{WYoX zk$!T)06({gt*rTxUJFHFK>BW#4^3{vQ*f%OD^~dU7ibRV00ctGS)rs+Gb=E@gRY6( z6MpXcKdE_+`N>j#2BVJ>o_-npBxmpwQO&x#bsbqOBmqX`vfl5@wJu^StW*XROR*xe z#yJan(@bW5wJ)qJwT5QU{X{Gh+z!t3ZM>QlEWA3<`6;#Q&S@CFJ$HVIh5uUDi|# z1{4}tpO{`EnQe*3ZT;3gcXB4k@r2$p&QU8#Ma5J8we0EEkUsobOI& zhCWQ29z&A#0V4$%TL}-kdzmzoS5Ym0d|sPUM+I&)f1i?XMlGVo4Tc;~7I@U=mH}A8%la)|WTiY0C)}~=9>p|tjDKb`g zH)^fZpk#SNmnsp%kF_6;QAfkD;WWqM3-sf4p9E7D2L8hxRg1slg<;%&Z~I$ZL6; zX|E?~F-@SigZ&D@n$#Za>Zt$0<7>8?3Y%-m8GN{j0CJx;)u&8$X}Ez}wh~_!*2$30 zRF)f3oewk=>QZH`BXsYO_{fsEO6s6)8A1+3_{aBdhY--nf%G)b0%3xW> z>L1TGzlg&J}jS*j+&VuxsTT)W#uhCAod482`LLHL|^dKj9SckKo1PQy3&;b z6H*>PpvM2WKcDiEaFoIotmTsO@lj<2iTVJAbDCO z&v4(AyX9a50SGHo!>nMX%nGt_poTk=s!t7-OYs$>A%<9bb{+1LDukmX6ZO}MewdI? z-2|%y5AXQk*gY!*&V-NMM&P`&D@Vo{_+!j$Ddjkc+o@ZSEzNa>F#*1~fJZ~KjkBfM z6?)&%K@g(XZ>eFhzV?eLlbCw4G0JE%;hgon(_V`pa^-N2LZ*4?b3@trnh zte1MaIBwR?aMQk*_*BUl74`9PpD3uCt>i9|jC`Q*%rfO=M`AF7`$Q%hMNF>rQTSOA_ zJHL72X*3&Sn@sdISqK>aLhb-urXf-N^_RCZIgX5sX~{8(WdSxe8I;yW={1w|sWW)) z)RX^yX-+_<9IpsA&rb?N64RC}3ndQZ%@UdV4wy~Dmw*+y+?L^T)a@h;_gJ(MI9d#R z4q%ibMCQ~8Nqigxo!Tf_ImB)$V;U486&pQ`83ucB*LmHh>EJHU;v?V$wM+aE&od>P z$~H8Tw5LiE-X{lXY7|(ng#Vu9NV>)TX+gLR5Zg)NjdD2Ob!EDYk zHNJc5OE)fzN73nBTi6%|Q!^L&OuCnp8s-7GG7G{XoQAF)gtow}b);X`L}MrFgwT2I zr{}i4BQA@y)zNOyl8Ggj_|ke(*(`raF^1Jr)uFH9K>)iq6_;gFjwOtL|0~)oK7Ve{ z53|vhjd_HxdNRzN2m&|4OPnWL7PS)PQY=?J|st?l_YF0}U5R zO*1$wv2w-mR`#Wxx?Bq3koyqZ2(+z@DxPV$`|7Zd1ATkd|HoS+|HTBA9j*gUb)5X! zZ49S2oR*;WHohV?j~~23f3@*bmLX(2B1zC)q^|EE+#@TvVIC0FY(jf*DF13cZ{8hz z^NceOJm7%b>gh=|q`g+=FoJ0MIbS{+jPhWy@QXHi-l2g8&``Is%Kg=0&)53VU+R72 zuYZoZu<7~GvG;&olr=KMI<>#t45Y1Zmfd&fH4Qzm%}C5J_@> zE~A-{ov2mVEo_Q9RZsn+3q5&^%x6n={DOz6kKQ-c;uCal;TqV3IuA&UiNTB#tHvo`k)HERd>2rL+jvy9_Im1bB4QtLaCO<$uh~^ze0M22 zFu3rx%A6(px|)N5c8_o$T6*#eV8SMj9~klHiF(JA-ujnt_m7*jkx>Mht~TZP>_nu) z0LNgZ0Zvr2+Te1*seZcekwy<4^nnGLSF(dQa}L_&4L6?zmN_nF{8kMrP@$))urhsC z3<+-N`C@zSrMuHj+hQU|gD{Dtb61#mVX%?q-a$d^iG^!dIu+kmTt=%$s=C<+gbQ?E zWX*d`JJ?1`2u=eaQD-6+s?N7TEc+^EF}aah2=Ib8_ZC1?nF6Jb!Q@d}RHj|V0K^8j zL-sj7iO0};DOO432WCR?^f+u_7!gJ~EoS+Q(!qzA|6ULihep$2S=Q_JiokVNZ_;+5 z++-%K#!#{KPaTbPmkEJm@p|;asaLz>GfKdfR;dlVKlPpa4p&*d6skrHK_4vPVL6P| z*4kb%v=3P+XLvmKrLxDDbnIpdQz3?eABPl_B31rV%6E1XzPi~=*_V}qhusiC0~aEI z?5I$XF-J+1OW9;n#aGXB$TRg^iOw4lx?}RMRjr>jgzQ0^rr%;q!4-ZB+NL3l#3#(?cF~vW<^$VL8Y9g}Nk_)gso}xb4D&s$&)KZF4D&ijhd&`!^6`T9 zNea_S4LHW^Hf>q_jh~6L#^xdpR*m5;;QJucz0*I%U~YS8D5;P^YYX_$no7lEynw_N zT&c_oZ5JMND}AgKE(bsHH>DJj23vuXA*p`ZW0992&V(G)hF~L?8OnYbmWA5>pEm)3 zZ^OnoJqg={Jbn!!#46!!?T_d=R5NTIDQQ5)&eVa-=+H6Xg)EZArlg#G(!=!focQ;S zV~c%&-pd2|*HhcsO2)#j#LW%u!eK@_*K?CFep{XaW+G{AP$o^dTEjdnUEdHUm*dND zUi(}O`Sj_cm5sBCdMx6Rkn5oblwvE~ic4oehE|;xE{uw55w!GFLo}va3;7&>fNgcU zTco365!DxNmHIdJd&YFFVtUR`D1=r5EF&h>awS!p6|TKu$aTOVVP`8=7YE?cM)z_8 zXqE|1cmdM^$$t50Mu|xqEcUYANEW}6vo=cv@#yY3mVTW*vecy`eH&UrHB}c`w^$+y zt_=-)0srgAkL0Yzqn3wr&-RXR6=zCbMt2~e7K;|kE^}=W8gwddIs!KVQ%$Nt!3LTS zE?mKnFI*4WqXUHB1bQRwK_kd~+tBm5SEjR}BdAgBriY^j;?r~(23cet@@Oz$PPE8% z7lFWR(qilI!uTBylFvurN}@67!Cc(m}GQ<(3Cq1FXBi z-Y$K;DsdKa!68gN-5>*razz#Lg<%O6@+&h5@`%aLmh5-wh$%DIaWnuOsst)5E}joP z>gPCcmjG9LC=vWji>Nk^F&v&diDwchX4@Y#z?~`S{0o|l$&J8rTCs*S*%J>RRqP7F zUBkILT_K=f&na*t*^C2BdJks*SH-G}e7?+LyU>$@4H1@5eX_8DE#n+bNsr}| zsE1*P@YSSuTm(+NXGYJ({+F2Aq9ExPo0PA!)CITYIp73ZA@6&5x!Goa`^~SjmY<>= zFuE;@#D&V~ZgDMlS5r2{Sph<|Mg2;Aprl6U!wR=&g%Nl zFA3Z)Z*!o1J)?F_6({|>3qjxB2aj<2?aT0?`v1f36K=Fs3yD4jcu_YooPvOnHltM_ zipqX!8n;Za^z*wYGs!I;Rj3&R`K@2X5dg7~4rW>$DH$3jUFNT}`(sBAYv&pVm5__tL+nF*mv5aaKV++oE}8?hOLeCrT(Ci)Q=zF|@-y^Z|J z-?;9D&>9&YUQd?GhHl`W%~GH5N$`fJQV+&BRBJ99mzqaZr-lF^JlfPP=zX&XRKRPmbzywv+7lPp zvDb??jC<7QK(*c}Vt3eabaf5iG~*=_xGPH>CV6%zN`CH{te$V9%GxBG4(PH8mD2qdzFegQ&pRvetCs|d? z#AWbB;i$CcYJ^~v=VD752JQW^GZ)?Qi!lC-pAdwQP)`U%!W({K(NT*V(Q+Fp>x2(C zq$Sr+pIjx8)yv#a&_aAp9KB;iHMM+rO|BV&~SKCQy?Q zJBuNzD6E8$=>1N~fpuP>*t=K6UHeG5>vYjgjF6X^UyMs9h(AOjRRg-@kYTsCN&+PX z7htIrGroPKRxSDHxp0}^(jZk2w-u;%M)Y~{;^){R%Pe?PAVmzVA9W6mtqpN-YAbv^ zLtO^pTa#~ejujG=_^TnRt>*eqb{cD;N2j09tR9Iq1?g&mjz^v7ZCd!^zil*3Z+Lg| zrRy;XI8dx?-gCCDHe(<1e<#ni*=GlC#c^12oKrYK>3^Qd^TV6*;(H|8z4!W{vrJ`3 zrCv%_1xxj3=ZA$J*in9$$7x&jc-oaFoj zz^O)w03_p?PW(gqP6b1_hT197CK3Yf0yf5J7+ z!%abg6R2FQCkJ>vKCeHbuPkvs7Vag#2}`f;5RUB-h8@ef@E23f#29;S)1_}l&^Sg-dZWAS6QfERodZfVC-x$O#Ue?^$n zSBT;IEsHFDCNSNX<#NM)SkRm+NkA$~&47;0!lbi`$CezCO|dUA-Wl889MCq}8v09GtI-6O@Zs9O!f7+Rd1*&hj5f||EeK`PkzOnRy6QHwt?9q)wC8Pf?jix})IHs-_i1nqeSBa`I-Y4Kq;cDrO zw|t{Ft?4ugHTgOMUo=6=(L4+zTi&kugA+~})Y@botqxm44~EL*R!P#AE>-4CpN$is zW^qX_`!^>QO^&Z{lX?*LZW80A+WbXKOPB}g*43u*rBw}P^^53^KtA&XDfZUwvfkA{ zo|#LgikfV;;EIoeHWCy|LR{(30(twlMS40qLQhJpFVy4f6)IsxW7pCv-@e8N=8Go< zHV+g(2Ci%Ir(S`XP(j8J2(Qud9n2!wFZ#kYM*<(2IJLs2|J`eGkO6>y1mM5&Z=((P zzZ~G_e>lJ>abq;q|8jsG*U$Z1M+rby02qp#%qO3#?|%;B5RG5;UWs0Jp#uQy^<7{s7pIksI2ZcgT1_zKv`xj21 zbG>BMp$lUvemQP^`)^V-t9wIp!0__9(;klDfFqMDc4zhQS>CIvl8 z>%=s_{)HNemAbId3)3EW=_Ixk-8M|{Xv7KS)Uy=TlM5Fh_*!b87w&RnB&%zuN>0Zo zYJi1o%3Gwf#>uO-PD^TrKnf+i&k8v2~kY&PdHn@VZ_^w?+{GL|sSAYdxS7@%!D zgTX;B>qLCciE&Ywlcp$b9`UOG^_moLDktaL!90^K<)5uJ~7WG&Xo}1o=*ms%nhzl%+BL!t@ zFLw2)r9r9I@*CDAOPmK4k3u9(K!v!)ojtd2vi78(A;0<+llH0Vbt)y z8O}b)=?k_w`*^`{A>f$LHBPp|MR0MNrU)0x{zy?b7g|Nr4cxvcfS|J(V&vjG=Tlbf zXGBOy@1kJ4cnU5z`K^iqm`1C}thWgx?w$7bRNno85fklHR{Yz`6PZGdz3E#6to?%} z$t;zbeYP_ilQ%^}73Ia8ZA%44SdUI`bWdj04>IbOvphXH#Hx0h-udpsk5Dga@SjfwxT59Nn3}!CuQhK!RkPxEnYZY};7lor2Of9qpK(2SQA|DKa_Dy~^0Vpf`_h_W^k11IA*0AhE=@+Pdo{d;2waH!e| zoR{(!ilw6PK(Q3g zZuSvC{9L~II^Ux{vg(zwK+|PebjO+$3JD{`ERQ)BtkPP7$?kWmiix|yNvVdbnVx() zM}EIb?DHOG9;zT{IMM?5CG^8fo3nB^x1ZF)qW4P9$Pk{1w|>X*jC0G$0>l0pqX~pZ ztSVE!fEm*_X!RQ{OlsU=BGkZ-5Pw)WxZmkP#h8tNtIJTeh{L8yFU1#B7x)_uoZe#B z9{sdTg8sdzS-{2U{utBCjB-tk$``p%G`Y*uEJPYP>NDxh2N0{bY%6SmNA7<{ZM$E! zP&*tAkg*dsLT;n!E~)AxnJfRw5%;M=w?SW!0dU#AL8f#isv&9~Lpw9oFLM|cGfP+A zG>@VJ))K|#Sv(Q^(eMTc%I$q0A-OqFyQa}gQ1e}9Pm^kj|D;J-;t=G(=Adl;^cjj# z+aQokx8`WrvEeqT$Z{V%vrFD-hBeSpR4*Z4)e$G!+HiIpPQf-`zJ7{m8ywdsQNC%t z$opyClYUvVC4&oxQf3$jJ?b`64VC-wRuMQBJ=YRQm&ix1rQ`KyK$CuVwNTRoVuEy% zxHP*Ofq{!KBTZJ)Wrunw;s+iSbau)}-KU)RM%#_^p_0#i@ys|1bWm8;MmJ<0Yaz6vG$_C}m;%@w~ zxOGw3lK9|Pu-~!765Ww=20Z=V^y`bG6cbl}vZBWH^BL%68t{oi-@I&Z8?BEhIJ|W7 z-#O00`}`uV=j;|t5Gaayt6;fA&OOESoCR`3F0o~=^sSUEd7Mp_O)wl#&SWXZA{blN zsmG&vZd^?K^+ETti(Y97vRR}W;f z#Yk8V)!NidcqNe|!ITrLWW-`2{vGWTEG%4RZ`IBfAAdUx>P*e*4iErjuQy?q(Ax{i zTWARHV$pFHX%i2CWRk{}lco-ww_tAI7RA#4_L4*Y;v#> zavTa+qdu{{>x#tX#dI2+TBkD3-oD;7X7X9u#MbcvKhEVvb$Z%B0%YNTD>e&<`U0&?a$H#B z9^_>40E<7(<*dU!iM9GmJ-F|PL}FRo8z=~&EHXHJ5>;Qx(cx_qQgpCGg9oU-zB_^*oova9K3Ih# zg|ZJ-oajbjw7XBejC#($yP~f_yQv<^$KVJCaNhUp+dhIGW1HJMigLL=XxnBhQZ>Kr zv~2^4<+MR+X*)EzE}ct=9BUEKW5clo)miU|Tma@TA)y~8F!O;h#Th8r%B@)9tmFGy9#xM9c5(jiAJIy3JWTp0 zDJwLno7o3FZI^nZ8vfcr3;j8iA2qn^5XwhJYfDR--<8RNfvgk;l3@ zPc?y5f^{K(f^lQUU^qgWDAlSl4|Yu%p3_RnkK2aSYfFWx&EJZW5d}!A!%DSF1-|tT z+r&}Lba7vEKDGv-hMF02pIb^=p*&VHEXvGO8?$KJdWq?)3))`7a0zZ2rHN2Bff^UrgDnoeql%!_;dXe{?6!UHs3-~9$$`OeM zHnT!_>3`T%Xq1CWKTKVbQzSw`QI7k6n5tmm@iC9Pv9D0W;}?#h+|gc zF@`P3(x&6IF2n{i6@SpmH#W+9jZ9jc|J{}nNTF;#W;OCF5OYp3+Z&HWd^43xln~{< z&rybDkXV2VRLbu)N1qb#7o$_Cvr3(@$3?fw(xg5(7jK-(St2Z2JEA!Ls_ysfZ3)vm zG`(14ep72|H|TRLPwQqT%tn#fs%9~te@}|O7^VYIBHY;pNlcXs4Fl-lXPo5zn=l>MDy#|bC z$3rM=AcZ*o9hd@i_`7ITzR*gBg3;S=`>nBKf|3#TiQ;pS?HXeZ;!$a-N_J3>u*Mn6 z`|fZ;m7six5WjKEaEnv!8E9kw0;d4)kejF(#~|p`aMxZ3_{tK2d%zjqK8CXnz+|K4 zi)cF7ypgEjmBj?LVMM?fd3Cw?-ZSBv~6pDv27<`Y*uXB zM#Z*Ov2EM7ZB}gC6+0E3T5JD*JNw+uo42)hUd-0VczW;HN1g=bVkoe;y^ikQsey)@ zt^fS%Qref_-lwfAttA87+cXvB&BjFO{)WD5A}k`94hktEIIC}1nH1F--K3x2itPa+ z`Oxqp_f+=`bKs~VhD_k{`N&kE=peEP%eUFqRolI$rI4dE>CzTPP{(IHp#J~ zN{d%7W?~c`!^r0cJIRZKiQO>V++hy*BW;P}RPs|Hk-JG~*$#9bbMYfHKoUK+mK^9e zFYg6iMVOUrt0w4GdP;4AvHFFr7w1Ay(&*Bm=d4BUO1k!f`*r=oUnavd17(4&qBZh2 ziN(6+$uSrJ3I+fm9Uz_$`Y}+{YHPP?w&@ll8GuZc zWIQ2c_p;+Hr*QPsf}(kZC$XaTQR|z0PuDgS9GapOecn$yzGfwX%r4qZ&w3qe4vfUp zs4pihhl0tQ0ov}OoO_Yv%airY6PNRY2#SwH3O7dF8~v9`I(YrDf9fRhZ&GF>v)_bB zAgTFed!esZM_YYi3lh6ELYDa)$yW)^`pk0WvBZQ^05?M?VXOGwS}r9Ux4&X1&M`Xu|#t zeKqLV7}qKkKK!~(0f^$Q;fclv8OH}7rK+1d2m|wQF5bb^7BS;7fxZHYy$cRxu&=mh zHaX+k?F#~@Q7j3V$%RcH5%Gbm64)iz<>S?lY2FNH*lT;hR21wiE4ceJCwuU9zu{3S z0+T;#zh~$GE#D8CS1AI%9$MsR{86Ng{JBV3Ya~w(w4~R7!=`>G9pe&w15zeqvSDTK zSE&ap?K;5gcm*Zu-fR^_wjNsed{;1v2vYS!8$5z-&@9);BviE2hBP;r{g@Z>%>XTg z7MH9ijq)~Vx?kCXU}1x_RH7-YN<1bvbb$}bGEY{Yp`{_1C4m5v*k~^iW%|rLh@ftY z6jtQEodNtbd@*VRVcFn?#1zVM*24?){^!Si$riSXhGLr9aLjqNp$9Z3jOgJHdu;&5 zF2(Y3VnE;_v>OVY&O7bwDVnE{sI}jL)CbWr>EU|+5m8tyXO+1PU{11)8m+QI(&;ZP zos;ZPVs!pm;qWThPx`K#s))#z{M%RT;RxBTB1AB^4HwizYyaem24U+c<=mDjf z0{nUA0kKsR&^Rnyt3RXdNHfeaGEKb>qmrM85~o|NEv2zJTEDWZ)1@ZhB%=_1&R9ex zhIi`UHQCNi!4!jL)gYHUUKL8Ijo;l5z2nt=q%WIHV+*x~A_-hfC=?o*GfBxFFp!8G zU^xxU0q=HWD*{l31xdKNAx-`5L+#%B@5dSUC=*V9GMB+1`RMS`MmMYtwc#IlB`RKb z`Pkmv*8EA5HQP+j3mw&*Pe6Cj&TsO42ET-V+re1h2I=pKYoM~LunGF)?vqy`{R0pq zVj)73dzmL&(SCBd%+@zdTIoZrg`8lmgFc*%e`Tb~ro4OX?2AJvQ;&Hw3ZuL@_Vxw; ziJ-{#YW^WQp=%3)k-h8?9UB6v0&eg?F2G{~q|HXeIfA4_btJh~M~tXBlp|!GHF~og0!kT0vFaT2^tlkEX4az>Nt*b zz~NZ)Rc?1x_^WDP7A`^54l{H*tT@mLwCWT zck3Pg(KeZ_#y1g_B~*PBxtC{1qI*ayR7Uo>@J}C~@piTDnuBKs=Z1 zOnbZfW)n2`^dQ7UQ@<{Nj^_Cqyz~)Q zd$xKU;9)PyrhvSp)CUcM85kiA{5G+naK6ys1Xkdz$bVo_yN9JRtf~8gt<8TE`l7OG zzaHoO1zp_dG~aMlunl5)g_u`G-=r`-LG+yI(lOq;ff`m2|H@V7r~5soK4Vh}^vTp|pM(?ND&xX$|(ENXQeZo$PfA#dx=HEvKa(UBFI&M;MU)6ur3 zek^nqz;exoXSY+1HjPHuZn;#QqD~3ppY3MKe>RyUeqTMN@bx{UfGTzevw~{4tqFq- zwYvOk{IwrjvOlxJ`~%x}YGV-}?(%M@X;Y?5z0;>xgE6ykTl!aE%ykv8tnDLsD)=+{ z7V=;au4X9MDq0^s1T$?eye9?ks*@7EIG^?e(P0#W$>D$--GHYrkSme82(fIy#y-sHQ#SRWnRn~_2kD|2#lZj;3z@198T|ME{Zw^hC z3)nSMX_k}WRO+mo`fDog2|PezPzBs3j?vvu;y*K`a>7jalx%@3n%hlQkwHxbG)!2- zv(@!P`J8}>J7>2H4N2JjjbT(VP=P=0>0YftoFs-rC3TX{8W{G)(RZE6zc#_zi&eeB zKm+V1>ICuU5_EbMduVTLFTs4XIm}_Rb8een0v>%C#s0KM2qA}>nHt~}^f@j*1`Z$# zcY7w3j%;nfe*LB>4do8T3%@CiU#)5RJuL5vG10+|4*xpG^DI94Dv-2-j_?K{m6$(a zMk3e5&f3a`wGfZ?cyio&Q!s8F-}aYmD%Nx1-WMh{lq54YBgQpsolD9 zz=EgK%OdxB1A=+RKK#N&o)57I_0d=CaLXLKIrQ!LDqvRX|LqiH3EFgY(C)qMqUic8 zf?OI8HJ$q#M2P7SNvFkNl#tcx9xn<7IW~NaCZW?WPGGX);&csk8S9kM~ef8_QfcW0KyHc@%$(!2GAv`DJgOugKawtpmaJ^y3CNmi~k}4HU6*-#4vqBxb zg&ZOaR&A=r2CJuqIvLEKbUJ!nGgg@Qmyi8curEeBg3u zi)1p?XDwU~#Q6&jw>D!{rVdeLGz_^mob`F~?8vExGLyx3IRV>+j{5uG7pDGqgLd4L zHrOQ0HKM>E&`R+sW2@#r)+ikqMhFHA1;0%14KLD`D@15iNOm_?xy4AxqVWQT!DTI? zb%AFkDQe{m*nSbZs)6h(fPl)7L~5FWTP?>(N_-=8iab%sS7L=FWYkX%9ToZIBmW(^&mRCEBf~W zY#cy|#3IV6Mc^L1G|+9}eo}&qHzK+y0YwaD{eu+E-%{?cm#P~~f8V_@q@dv@?FED? z_+H(bM;mRW6--r>$DQ+W^72PGbPkd6m}O< zx|VMP%cLpo5`fN+lif{C%e&p=_=@tv!a*#FnCLzUsNqiZUSFc=Z_Ps;#0J(Rds5O+ zLbRW;3Is+1hp1FY<*}w17^Dh1l|Do@Qd6a{vQB%%yi*_TEkst{`Wu46EnliEfv1${$k^5Xcljiz9n$xhP+U5}cH7@sqc6z+s9N#=;cNa$ z+kZPh-~X#>8UDl9Lmmpn0w12!mR zfFKGqG&ZEhT>9jp!=-V-j&O;Wp3zIE+sdRiDT0LblW;pzdCf^Pn|7pqH#PMMp(KoA zApaZkpzCx>c0cQEz91AM`Tf;*ngw@@&k{iU{KNKSH=JJ$?jQ&VeQ z=&|$PehLIqsRTUhnH2wVc1^@?no&|l#lQ4G1rmqj?{$mCM5G+qOy*T z!@Xa@gBJUn+$xR}q@IR!$v1VMO=1!E{!W$WNk1Zd?q@3`s8HPP>0Dv#=Rs6!MWloY zqZTPRGMge5r?ZmCOL5c%m@sCKP7~zfAoUqSy1^U_%2g2<51L@j3h9O;tJbbF>IPT2 zJI1j&{oL?YYN&GxEg=8~ZXm`hgltWGpS&q-g{=H-;gdo_Json!xoIOQ<@^?W(J$<( zbL}+>(4bG45g^t@#&G8Ug>n%68<(L^GLTfV) zFO-bpC!i`gWC}{jv{$E-mJY$lSPf4WVaRa9Mif99xDoXpd^OhFqQN3XMulgPr5ozW z&YRwT)er~zy4lvnBHjnqZ)rl%10a4GL-gq>bj^{3UXql%;pzC>$$!Ibb;KhmTgq?% z(@(^&J~BA)DYq32B+}sz($`fP!Q)74U(|?)W${Tm4pl-ox{52X2e@{D?`R<0x~~?2 zNo@aYe-Ni@NR%}d=W$~1IlQIvBOlM9NI^ZA&@+6Ozje$nrr-UtG`dI4`F2F=z1^ZS zXW7A!LChKj>yz$iD%!{!g6&dH=HboSMF6Y~{jL?}ty{xFMS)eoHar#3qJ?pfX0}gZ z&J&RIs-YXGXXAeW>qeeJmYzMe-cqUk%WSPsIqkg_)i0dCtdk!0fblAHYZ#Qab@6~; zZf&2;s4d{GEC#3W>U=v+0G$L3lVow;NYgRFK|WMB)%kJ5A-kIKSniJX%l|sH?S239 zjc*D1B>$%e?xlXD$H|W*WZlEg=U7pv2FbACjI#mxa^pd_Y*kRe63g~H)ooB7FNa&q zvnd#~F;$+h9I$R_ZLO%{xYC&iNhp2moPe?nKgI@49Dh=*vt3gZ{gz`J{yQf z&EE#d;+Y=yXGU;EYP@5Q-?R%<7Dz4)Pe@jQp^&2P!YzisXN_hUYjgUPYulF37?*87Gw(`Ci?kas1~R(Uw1w>fR(-nKUHL(VlP6-jetESs!yc>bLZ zIahM%`Q3F1WZiIwe9D7cG$uC6l@?s$=n-zZSz;?jqFFy^w(rf1s zA)+KoeiKOuq(i#iejz~#Nrz(Y2L+8{7CZhUt=rkAn~o2`-jWq`=p38nO?`yKs;$t| z9B1VCP$GVcCxpZ{W%8VnX$K5(;aU+%i_RPL+kX>F5bBbbcl`|{tGE$Xo@Zy=x?0~Ex?~_ z=r)?_?VR!Q@4Q2tjp2KBES=Bq$M3~&g>L~pn2q6Gw55@iRO6ZR7?)UAJBoU>^cuaS zTlNO49g3yzS!VW4h*b7A%$}3z2bU>>vr+|0k^j7=EB`Yi{vU$of6=Nv|Ctd-{G(Of z|389eE#<|bO&`_+BC;EC2?)yfIJ>Q<%w)64o_NHr;P^i4{U0A4#?cOCyZ6zxIvBm8 z|00AMFAa%FIK6As|L>zarKT?jH~|Eyq6ThYV)LOP0RSMjAYy@VaP3beT{m-bHM_;d zG*S|o;r>{YZuM9-W#V#MT}`e8W|OQEtH@Eel<|zUr2fOiA}R(fM%g9JSfxx;vi_4} zFx`q5pFJi;Ke0wH=o}p5(&uH2j4Z_PqWYCM*I=kBb zE2&*?dMknViPP7&YucmKau**W zW#Km}`8vX8Xx*V|B)tG{Jh7zE8(^a4YQ+_-2R2y?*AXMbx&rKb`o zU%qW?48GLDan?^&SKG6ybD7=cLto2_fNDYxBWLDgS>3r$0w-lwG4#fDKxgHA0Zedo ztp%Op6|)y@>oJzjuUF7GEyi4o_lYU^Iviu{rt0s;97qXF*phOMXVmKuNQTGaHh*=68Iq~OfKR)qmc z80C8QJ^*a!9EY)q%^`nS!O2!$2r+-6>AK`+&yr0%ab!$H9O_1Fu}smu+v^XW<8;(R%V67#hV zu@B?mNRh&;kEu$ta=~Bqlp4CBYvcr_jQ%3=iBjppm;DC9bLvkLgXS$f*TO98`o2tJ z>SzN7CzD!6m&7^{eRRlyPkc{r5>MR2|T6ol`Aq3DjsWtqip_O}oO=Q&8{ z{bKfWBAlKY9gK%EKPo%->RpQ{G`@tLyha4qec-ZG_I*a7b;^TNHT|hay%Y$2Aq}^j zu*sSN3InQz1)0D;`m1nG9wul#`qtcSD%CgFfZbVt%gQY}`Qq5=kdaPChO2v^K`wR# zffT66wVDw+@zvj;sQD3pXfg;#s4>wIHz0e9FeBo&iwAC?_3Fd3Y$l!8T!$Evl#M05 zq^J3pG#V%|aa)T?yBf@?TgpiazwPV{yJQo>2P37l&em=dIUl)KA3=Bt&KkN+2?B9~ zMUAQlb2Gw%nDyv+fa=*_0T*OKO5oO4dQjeq=Ld6`mlv=V_M)89t;98of^p|eJP9f$ zG|!^E{u5+$m-`Ao^v!C@@|6F%+0{H^*KG=qBDdh@jx@XdA`$j*>PDS}GQ%c?@mvXP zgJM**iC_}wi$2(*yx8R{leBc3pFnEYpPW;QKp9nx>-nshVFiHdCJT_;F(rh?)xh_M zi0G**AEA=o-UoR9)`?k4mspW>%h3xzcO$g<*o-sRsI(i>$s|Y}(wJ!Dl3?vT{cPEw zF||QP8G=zuBJN^;6%4mBQ#6vmgYDejB)P>4Z$Ne+nl$V1;V^k3g#t6Y`YavkV_PtB!a>Y$H{nfN%6ze#0WV` zcLUh)wEJ4juy@IP+~C%b3k@0dza`$H&`MF_ri3b*O)Nxkee1*<7Vsi&ExVTi&U&a1 zVd71V@kD(H>qA-ut|+FMbdq;i7EOgO#&|L@!0I{du>g1VRi z?JFFg34RXvf0@t2(7Vgg<^3|BdQ7BZsuZH6;H0^g0ST$J)oEH#Lj{4aQ6A7jJ}iy1 z7L_IU)D<+{sFsBj3tUK18T^IX12<00goB<~$)u*2&OWql-fPmeaZ zCIVZot1`~3TsLttu*#pLP0t6uH>8D6LE#LL&=Cneh~Qr6g`w7dXlq*_VneV}ug)&= zPl3=oTu7W-ANeEBcoV#$1B25R0V4Gl?DYy>@}%bJ9$awJ_cuHK{lTTHO*`4&7uDbo)PvIS6C)sC(&118iCAJhu;C%|2 zBQ?k1XP+ZVUD-JU!2-h1wm(^aM1p2K%DW-p3{b_CGa!@ik0AD;nib0@YtrPZzQSh-WT*%@!A|^0d%pM^@88;_&TFEf zYzDH`*QX3^iATdFaOUwN#)vjFJOK6*zN5o(FJy6w^r84RPp+xerx8`I0n}AtNCXMa zYF1BF*Si9V&Ppol&+8#s4)DyI4Hi+o`yPE?x;Kfsiy z0N0Sp7JrNJhaq!s96Q!u6OU(B8-+)`AV+Z zXeg8(sdORW4+o%>$3}Nc4^}(a_1|I%Jq}122PHB=f*SUo=p?`7t-?!}5tZ4Ssk?!g zdc3mn#89@#9zX2@6wbV;Tn`pRsaP?8v1jJ-h#Rr=?{t8}dzx8huyN}uFd-JXW_pC) zGuRU9@yHW&W)JD0-oTt`f>i2a-t5<-xX9SUG+2gpa*^y{G=hw;yy7d`WXFbK8JyQ* zobFSkhu}j}8Bd4!ile!Xo+G>s{e6A|;t~-%dt8%;`DrQm4>FR7`uZmN=7_5sc7^R8 zJ5iosl;cAtqk_U~=ty^>!2I3T#GAzDA}<5=S1PQD`2f?~#Pzr0(^?#&$;pTUU{Sk= zNYW1KlSD)m+~Tz-k^B+qoU4L$5br$^T9jq4z%ejkoq2}Ku|)L^z~ThoO;_1$+|cYg?#S)olM4pe8JgD*-HA?+gv0S+#wtYxhm0X81DY#@ZNDk zCP8I-ZkcqI-P0N*M-MFApMBVuDIDUof$yq_wTp3N=TFmv9y&afw_c{XUq1{_%d-6L z66sUl?6h6s*7$ohf&=c2&}gqx0_{BRjA0dHDI4>^*SXYYQ0$`=_EF0ATG4`6Fsv!H z;Usn&<-p%r*x(HM9HWV^U)&N$>og+U-cwcbAn>>pCXhgH5T zF!PRATmdP6?~m11hR$a2CctfsnudhvR*%a|PHI$D_GIedG!?3|>w47}%LwOs_y1Wrk(GdP)l9&Lr06@0qmDY^i))?1KtLW zpXwKJm?t1G5E>izYSt(MDHu^XL^M!Cqn%Y;$PMRom7ttQ!YDH6`12dJ1}s4f{$>Ks z$iGNsEaVoPrOR|ZWpJd~t?CI-IuG)b2sYNLGZE;bF|uNI%J=EEX;Sf6B{k&2)Zb$# zH|XcAH9&j%P7J{sofoPK5!He~Q`?^^RKazzVNEvj0s{BjlWmc4SW6%fXml5{v*Z&c z6?iw6FYX*LzrW)I&o;llza77Cro3P`R1!b&x>O8?PrmdI$(q~nw*gUWve|xkW50-O z7PdRH{{AdQo0Xa-YUkNKP2>@KLqZ-{t)N?$BSwE@0`*3pSqPeq-nKn@%-3w#^nZ=#$uZP^Cjn>rTrf^O; zc-ZUfYnJb*+qduXcHt-?W^6=&SsxZOX#YMZya;d)8y(7}+zZmf1tVjgg4Ad#87vI1D#PyqZ~UaG4JWF|!z> zvALkoz`ybem8Nypf8gv&Cw!L{sdzUw!}-u556t4|phX@|;vjl`9bp}nIl3deYH=>o zY*NZ6iC5M^Pu%N;U1_Wti_^oepWHmnw!C*54>BzG_ zI!U*o)&c9~2H*q|F?1mD@;lV8Yk z3Acc?C>FYzU>*nz%&|);ly~ni=kw`czso;_eQ5NGBMzH6A#`R=`Gm{-E9KG#Fw1T* zXRDuv!YM<2>prYE#LN(wcGhf=iGqRcqWoR4NOMN%*Dh#N>@#1t@Pe_2dg8_o(ufvZm*dNydY4`n3KE(QJW-Z2cv zxOF=P)_|RucBT#XitP`NC~5y72`pO%F~;ZtH;CO~P0nR+R`$e!MKwhFDlDA1lezJF z>E9eSxmi}b@G(?lCZ{qG9vjF)!_pP(CZd~L#xq5+yRBh}m_Mg-)v3c+(aLr&eiy@` zxH0snY(OmJko5XUuDKL&%%;{JMy+ z-|VU*xr!6}pK+NAea_d#EJb3Na?w*6BiEbQJtFAb@uZfuj<~3fwN*(PUGDal77Ou2 z_(0FGLVdIOGqPieo9?1UW15NgOSo*FW4;&G1QWmwSfY9E=#~K*n${TEsHk7WK#H-% z>9!2I#NSxhv79a5NtnNp(=VJH^(x?qdgd}K_XZvL>dl+AgV z! zjnlE; zz%}bVQaJdck$6%giKVI|rG@mGx<*saZwz`ni8Lni_~w5}3|I7B|0|AckVeNNqY_CM zJofUQz9z8dBNN(Sp%4o(6f&U2dG@gH<83kLZ*0i)I*e`tHdK;&lyoQrpk_T^)z!#I z8KF{V!AP%R9ih2JJ_+pZ$)yQKWq0tO$5sN@-l=sqXVDOVoKJmpF;Kk$V;m{mR--Yoi_;-WI#TsQ$rH^fOgGIrw&K z7lnFpqjnCUB|%QjLcE_7Rc-q(v(OclYH}7w-$1E!CHw-M7zZcL0juu@w!9O>C@X1V z#haB&YkBB=(n96YG`E|+i_m4_nPr}#q14)Y_uDSSU(6%t6ld>-4=ejbOmux#9e}cJ zJxh1%dGE2_Vcc}drHb6u``aNg32^Z;5tz;#jF8XKH8@l|XxVt!Tv@nYqo|Q2Aj#r+ zp&fl`c@xqMkGZ_0EZzp9hTC!av((C6aC3CNN;d3 zr;vokqF&5Tl;^@g;kE#Lt~D~4A$ieX;!OBTVL27&+PoxQWHB;RO*Em7>?C;yCSyRC zX=YZ23Ot-lDb#MXgeb$qtXg(bRMas=`ogEuwqCWNqzUB@?RW*O92O>KMZ)c8vqoy! zjCp!!Y~+vqOj??`dN&^la{oqN&O)yN_~WY6**q1?eu41C z)8oc@cD#MF`O9ju80ovyayJy~q_o~Rxt2-EYz~K&s6;S4u8MFpeE??Hb9!`yL--%} z2qWx6Oa(E$$9lQRs9+n&3)hIbT%!W9RBQkt^TFD=i*!%H*2asQ`$}r`)3#}$4xZ?u z!juh;*y8m#Yu)llJ|EDF-BzVOj000glTdC#lbzXNC8xsZAeI2gcDc#U7ryrnJanL4 zJm;4>l@j!YWM4kRBlXJ286CD>_NgaV8$EqcHPhtCi(F*%$bEl=D1PL{n9F=_96Z4F zTR18bBR|zxKxeo)(X+;+n03TPX_|-gNg4-kMKy6Paex)V$G(Af_DpRC)HSuVOI4DI zPtv^L6=JcECiH<+b9Xs9*W2b7jwG61%lMC}_3wdnA?c4Jif_$XL^sgLYt<_UMmp4@ z_S%q&PwzI$AG{(1+-jTlX1ClXVe687jb0`Mzc+KgkWkLxH_Acz!=LW#A>iKGN#~gv zEN$!(neBhPX02HR$GKn7qQTSf&7ZP3!*j}8Emvb{&t)7P(*z>6Ps49xh4xx0acUZ@ z!NTx?jiLl6jX;LZR4bxwUB0ExYrV{CZeCmLR3lh?S!!+n%L=&enoekG3&?@37?SDZ$X4)M!hX=qD${GSd)pDQj7$c# z))0lZ>?k4SnC6VlHvJ>9Im?u9!0}AuyLK{?iu;8iLLaGHhTR`I8o=wPlwC6d&_EXg zG0t%pWhZ+|llxSf*1p4N7Y_I92M@h)NTOX(5Kje@Mwr@mF>m5&YV3>8I4&QOY<{gW z3^BaZ{a?*}lB-nLVM9g~e(i%(+2S!+2(%js6_hdw6F!GAaHVZdZ+5Z-L{lpn$kfte zU6*8|ogTnIT6m6n63@eX7Kbx+<4J52Bet?uL%~#Qe?W>tz5ngUXifyC9MBIPM?mN4BE;_016J_W6vl&=YChs_7z4g8fBx zbAs_1x?r#EL3Mq22PE81&~0k{dG20OB7>2dDeP_jkZAFem zK)}l}pNSHgQ0k2d>%WwJSf|nsLvn7z)q$7}6eKCDrHHPrl*00UHIwY*#2bPe%>6&( zs-@%)cH#m9U4F(JN|6jsA0-QE~$jB^8VEQaq$VuEA8 z#!#Fkaef&b0?N`iIUKTlzI318Z%guw`}xHsY4WSlibL{(3Y^y927k#peCZ;C_EbB^ z3zqNS5>*6thMw&*3^i0gcUB7rPm%zT zqz;GI-Q+MeT%EmO^`j#hMi>+iO61=!!~cvc`krTle&EnRbcpQm0c%@7ojn%h=zT

xefwqR&;~$H=kQY8zY(Md&WR9h|F7aqET@0PnZTpBe}SDd zTZzOdk^mraqyiaBp`?FBR~L`V>^BggMT$%g%0xH!-jfeL3Jr-Yi7Xmn2qVQP#3kQ_ zLsh5W2|1*?G_n*7uaa6DQPd!2pFlbdicSGQAOR_%w+|z=d~_2}X}nDB}NkM!&d}xI%eOapQvdOmN@4 z^F{@WyjDYbsznReX>z(2Vne^>5V+AyEBa@i2a?OGv!6@Hi&%>o4G!^fCrrYwu>rTZ zylAfnDHk%kZuXZJ&d9)1VY|2dhYXcCa=Snse@L1U^p!y07LR_Xzg{?alf(p{rU&&m zvfuUSpp2<6Ng|n(Ke&k)xf0^*nBiP&On$Jy`E#!TJj$nn7LgN<{BH$#%r|(%7S5#u z)QX{`$#9a;$mn6>GK1Y`Yo|?ib9i{O0r(xbV%BvIvZv5Xm_{bJU(4f!&0_3{w)<5U z<7+0?bKwBPv0vHW@7cRtjG}PWpB4W+o>ZIabCDg*Zc{Q-{HH+R&LbG{YAaq_0Sm)< z$%Z32LqHgThx|T>5HdcvbRhP;pG3HcnmmWc29$9w`0B6O=lVqfVi^|Zs#%`=(yW(i8H>v6u%nv|1kDT}vA#tJwqu;H7Gf=lI(@uTn2dQ#~vm0e%v zQs)=8W}?*WF%Z+idedOM!m;ao>0x)gZ*ehyTc^CALQ6Oe^$c{GUbW) z;hS$?rW;tpyKQJ^YQuvcc7DF@!cW=OuqVN34q~sSZ9`W$y-l!DRBVe480Axs(MI$} zas_o*r|X*!2!hG4&aITNE8X9(oA>ql+gL)S=v(2S#+Q)e1cHS7<8^P6+dD4Kn!ElW zgLm3DxmW%B^1DSg+>odu{l`Ll~+pm#)%L@@7Mm zF;G)41s^1X(BI_~m&Y;)2enpfaF_E2gsVfcf7o;+AH5m?KXWzL(Y6BJfTw6ht7s@f zBQcXrAYv*=IZh%z-r$80n&sDE6P`nET|11vbPvt5&yIOI!eI2WOWlICMW0B@VekV* zm^Qwr+g`}kJn(acbRQ~_a#B>%RpQQES{`gW;%KC^+N69Y`$OmY*oPo)7*q1sZs4V| z+m?7daf{2fO>D?ip%1$zq@2*1q5j-^E1aBrC;dQE!KKn>&rg>A_Os~u=+w5Cw*H>u zWfxfxVX$!#j`q~t;nOULXGqC2bhPC7hhS6b`P~p}G1vV+^O+eDXN7betE%5fW*NPh z(TKupt?1<)F@cvUDS}=S(JOTz&VoLs{$WK58LRVKiDI`b93q+>J^WXmBMSLrI}_$# zIUqZvu$wRN4hnaU1AOU^zwnKu(8)!lfFYRa`k+LXG6Sfcx`ITo5VqL&ohk}H(H3x3 zk|AU~{24ig3j=w*W5DliF>>VuuQcI3^5h64_e^frsRyG#IV*Xy0SdOi#jIHv+8v!onS&NVE*oE%@O&C7DwERiYP)FuLAx-KRRZ5twF-tjPC1It ze*5)iAW-KUjN-t>dXPWLJPQ7dcN@N{UV{p7?lbg9VtR&fX7YdJ>O&}{ zJ0HN;|3ZVMoeN3&dZ;5Yc_5frYJdIfx6dL(hm|D~*Gu;86HtzsGuzvR^$<9&Eun(S z4}}WLC6Wtw7#S`wYy~>mJE33yXDJH@Ek%^YFa4>o4RN7mybl-_-$JLuWFojXjyH({ z&9wKiP2iF=K6{t5aA;w~Jr2vBqmN;q4=2558P+l(v9i4pUY;^kb02GN%!p2YDReW- zwuXZ0bo!-&Y*+CNCy8=%%3AQVPCEFjySREQG8zt8CyI0w4Nb5fXhP}_TF)X7whLL6 z)#C7Xj=YY^y>t54x|m2$rlZusLYuo_LnnBf&ezyaspMFbSf^RkqszIPA4_B(cj*p=ZbheTR8YXCD7hMMr=buMN^r) zV0J+7Pa~_{Hu{mDDIPuzU3W>^q0M{3rVTw+;OA{6WBpVf30uRKgH1L}^5mokRizwQ z4(TIUD8ZCKXi1(1jJ&DZW+ebQizW@U?ol90@8Oi(pj^AD$8G`f8RdFA;3BjPJRAO) z9-hl@4mva<+1B+4Jjdl@`LAXwcIH^gE1}NEgE9_ynHkaH(YfiBo@)MJ?r78(w;lNT zmq*1bqVU|xpx_e;sJaML+15i?0O{hnTSPJmpk%T}AylJdFe&|bmnmSFoVuCR=5|8a zDytQa$n!Tm|Ii#*i`TW0;Ey7zncId?;3Mf6LlkiK5K%kTSQz3H_umvqaIuX}A;Kme%r)1SR=fo%!MAt!cBjJ#3g9e(m z)BdqWq@f@U_)hI^uApEdjE#G89EPV%{0r-TV7u>`xlt-)*;1){t;Ds6WhgBcbYK-S zO3#Qa3V{6KI5tFMs1%;BbmrWTK``x= z?LTFjVLR z^jG}QH;Kg^#}7faa+`}DT9d9=+B`+xn2*nsyP^&_stQIlgdY!hpo=!VCm!JOM5RWI z;DP{2Fi5o`-!WG7=oT`v`|SpV!#ilam!byy$IBXS_im76HxC^Ke3s-+n(=3D>HXBAohlIGf1%FHx<>ImAAvUL}}>M{Uu`p6)g zs$IWI&V9xpytHUDw_EQnl6P^+Ey3RBlE9XQ--1~Z7J*hAiH8k z5!_RXcHcJ%<(hLyn9oN}$s8GpZ!qu^w>MVsqO^+RzIE zr>;!IL63E;KbwvCfOBZ@l`U}4L(yTxrTIw|R_rIR7;Q^^>*X6>ZyLlE+2VqP3L((~ ze8G7(08x)Gh7IcRVuz_55;CR-vV_Ipg<9Hz6cF%S5g^@A%^%q56AOpwpe-;iJE&34 z>Sa$qRwQaPd7;Ci?eZtJC!W;!;z_x(JMj74bnjQ7q2sxvr=<9+h@3TS=|RGRgCwIt+=|pT|+L7bs6ch-I{Ihg^EkdUd4O^%!$4a z^XF%D}pVIA_ciX8DXSFUzum5y3-!Edfeh3I+QyzU7EAAiKl*4VsY8+-T3A zGo0v?*Qcns*(!*8b}`;F_$ft(Qv$j2s+VC{YKcWXjERa@oEvz;%dB_KeTDHbD#=-} zVlHzNtKa1nfy*cS1=uCrdF7#okr_5nW}RZl!g8G1**U7ijx2-btjjRyY%NYCh7(?& z+^b|2`A6>6jhx^o)S`pfTThxhBVaRO0ME`5_D%?yYl<0mo^ga*$u6hr&v&C<`wVV( z+RlBc^hI_rPQ%#fF7Q0)kh7@&#AWsE1ZIVDEBQw`PvGSv7w2q)j_9yr(84lTW;R2^ ziNL4yE2Ep)utuuLzvh}0ymC^vp>6hJM_Km1_-#dg;|aC#?u3f@4w)k;O#dY%P#E7$ zzj$)hdsV!tT$a_XN=+9G=O=b znPa>F_u2*A#%?OeTwH_WvB!88Sdza0n6QYS0NaBMr!5~fhw(e<8P(N&=n>%=(2sZ- z%-tIX)!?qEL?`;>JW9ivKFqhGzb4u$1Ss&*+hi9TU@@;Cz4?j5lGnnVV+*F0> z!I@nc@3Icq4$Co~O#~NrSZT@OM)w+^&R(;r0T%Dzmj&f&bHsK1D1+>mFD!$~PLvg> zY%{?~Y^6Ebb^H10g=_cbyK?i;>4*)1y*YYkWQ04nnaR;D7N)x>m@Kwf7@s*8)6M#@ znRYwgXg-M7cxT@g-@6Fqp_Wb2Rdw=-dz6i5KvxF&%yn^bw<_271s@2`;)rf6r71y? zKh*7~t|d{NROo8*27FGJygT@Ux>FqRxd3PYOXEcd62j;5CLz1y)Dwb3!cv3)fo8N2 z2he~#fO)e?ojYd|!{o3I1V_Y?1_hQup>5E&`d>qgTgh?VtJGyRMG-W00!}ONfBMsc z%7)k|M@Sk_KA<=fd>rGNs;WWZC}x)fv(SdonfhIXl&%}YSsFKzmXy&)b_UNhu0wL` zYMn9lS?-)tn&(MFJrx1PM=UEMPeU1$DcsC9=nQ-SrDHzKx`@*6!%wY4!>2gcnMmSL zyB4E@kGHKSS24A&d_}4I_}{{DrQ4jyeFA7L>OE|BTFe!9LHqRK1kE&jQ9sW~Q0|!A9lJBj4Rh@cNJx^H zRmsr?y9QFPi&ITwP`LpSDqk4QBrq?*TGDU4F}XYTX0{T7YdtEVl#GcduC`Q{&<0C_ zP)Y``l^&9YMhIer!;9nej33t>WEv{_u$+k4K88IpA98aA<{ z6~B-Bg2~;n3$uK+5#ptccqK^1Qk(M1XV6o28&C^8oPgXiQ@6HmcbmBGpw_{*PVN?# zF{c1RZQ`do|1imuqy~mA)25r z+2t1k-dhjMC^QkTKEx1|;NA8hhlIhP_!B{U^g#o`3nz!f3m1PT>lOU3JffqVY8F&-Rhj~y|>*xbpKZqfj_`uSv^(ii2lohB)M*z-GnaF zqBM5^0T4hQ->xgTW_BIU$3L|E-~96cssAaJdYN<_g9c2u$sz;ZBE2viiM9G`O~Q2}Fe zV{6Aef&xc?;O&THprRQ20h5q1D{_}3m{E^zld>|5GPEUvZ8iF)6u=aovDfKf=my46 zgeX9M`Vg_7ICJq;47eGk_F?ln)tlcpBOf7R)zCkVdG%q}qfjMYYP*9=<~AVE4tGv@ zb?yeWtm6#8u13byL!L70kzvgW&9_GqM!=m`VX)IWGOOgh2pJ9rH^mT@ed(4mfSDJ0 zrRE@_M*=6!iGv>sX2y8s5#cGy1Z8UIp|6Fak53JZiBOSO^*|>mZ@}CQ{P`g@HRl>&z-l&vBUd9wH(k1T$@~rPK0*LM#@gUc3#kgJhw&iCc`Th1N-0+be zK|V2x+FOR8M+mE?Ed0uZ+))t@k$aJO{94!VDN9d{xmwrtBeUt; zhvXq31a=bsI-}qV@D@e$ER;hGucplW3?X>+#1ef%FsjGwp>wwa!3b74kVUJ59NN`8 z&u?EG3K1xL5uvBDL18twOb&+^A>W)C5d5l2=9K6$5q-UALh?9vPG6}fJCNv%FvOR= zyE2&|NX6I;Az6XrlCiqlo!f*<0YecG@L3{dv|s8YzZJlQ5R5^OM7&Cewh$N9Att@W zg^XfnvWC^X1Wh|Yf0jWM$@DsNMdPLj;apR=!o}gwJVJ=6Czw&^`&k*5Yn(W+!YO~f z`t)V?WDu2Ke>!DizauL>Ocpkh1AM%oUJq0c}GOiZ|scd1qvWpuE=w#3@satknV) z{LnRgH!5Q{(Y=_69YqQ3I^U&kpUxWPAK&>37gO2^IU~H zI&U?Y*4j-X3j94D6=T*$RtD01A!3D9^A*7V5YalAU1dL0M1|=6AvsKtz-cE4rLd!k zlgJ9n&6kdHcrl1;def9wJ`jDlX#)AZ8mTBtbeb&@6|Sk*Y&B;TLM_L{lQBz-65J?gL&^BhBTrq+IYIUMgO4*EmMk0C9FB zP!F9G!c*N^cnafbFe%qTmT$Eh6{qJe>&7fd)CgDc2LkuBET%a?-0Yn;iDiOAb=#i2gjXRZ_ z9+Us^guCoCWnr%|5VaDQc}+QnyDwo>nxJl)ay$*#1ExDn!xveF_)wSVg(lJtD6xeu z2#Hlgg{mNCAs_0lIk>~Q8ALsng0gnBP82DMM?_PIA>Kii5NQHS8~2c!%A&n3<$_w- z6fk7QCQGQebW+#eo6qlFq(q(Z&^e)(YmytQCS|aLNq0KH;tmNf|AS5C7;=wYS0RvC zNxI1foCl1$zGxy%l>HNmwa$XCh-NiAop#tMS32>uYTgH=`w4IM6cy@>$RT7gPTwkQ zk-~-h+WUauo7{^O{;?D>K>?Y_z*Z=yGXbY{!z-@_1SH}!f)YUGn``?(1W7Z=(>#iL zQrIdg`T^zQM<&X+^Cpp}fGtj|gg0(^K1DSn8@mm3LSkCvKGq?Y^0(0O3c<+4i~7qi+PkcebMy} zT~7RKC)3-weod`r{6U!p<_&_fvoXfB#GCa=^g5iYrF5McB^T!tZnAj8HK1|^_fw<&oqhyLA=a5r@_VQUU>Oxo3i-07q^ z;4Dx(8Y{cc`40Uyg)ufQX7>@LKttW7z|;+-8ainIIF# zt?|~Y{1nBwu#nqT^KN07)b7{L>mT`DB$`+Mub?^IYuc8I{g@52Xy(9B)M8FEO%YfD z7j6^T|5Fshu2@kXMutifjOM8tGSLFFk?o>c0lcX1l0Ty2X$^wPK*J`2MIiQ3nhbNC zPUQZdkdFcXXOfryd-=crPVMfu6}tbYW4|Va-5h$~wYl3t?e6}cjsd&-tsC_Jv^>T8 dZu!5L%ewpRmOjp*8ojpeW|#K=#C%NXxe+(9v(Nwl literal 0 HcmV?d00001 diff --git a/test/www/monster.webp b/test/www/monster.webp new file mode 100644 index 0000000000000000000000000000000000000000..e6ec32087cdf58ebe50e41256d52fd8278c0fbdb GIT binary patch literal 83922 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 literal 0 HcmV?d00001 From c22fd8b1327c4638716adfdc347795c989f7d9e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20M=C3=A9tais?= Date: Wed, 26 Jul 2023 17:28:53 +0200 Subject: [PATCH 4/5] Add more information to the Old Image Formats offenders --- lib/tools/redownload/redownload.js | 40 ++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/lib/tools/redownload/redownload.js b/lib/tools/redownload/redownload.js index e7d8f26..c567729 100644 --- a/lib/tools/redownload/redownload.js +++ b/lib/tools/redownload/redownload.js @@ -421,20 +421,46 @@ var Redownload = function() { var image = { url: req.url, - originalWeigth: req.weightCheck.bodySize + originalWeigth: req.weightCheck.bodySize, }; + switch (req.contentType) { + case 'image/jpeg': + image.originalFormat = 'JPEG'; + break; + case 'image/png': + image.originalFormat = 'PNG'; + break; + case 'image/gif': + image.originalFormat = 'GIF'; + break; + case 'image/webp': + image.originalFormat = 'WebP'; + break; + case 'image/avif': + image.originalFormat = 'AVIF'; + break; + } + if (req.weightCheck.webpSize) { image.webpSize = req.weightCheck.webpSize; + image.webpGain = req.weightCheck.bodySize - req.weightCheck.webpSize; + + image.bestFormat = 'WebP'; + image.maxGain = image.webpGain; } + if (req.weightCheck.avifSize) { image.avifSize = req.weightCheck.avifSize; + image.avifGain = req.weightCheck.bodySize - req.weightCheck.avifSize; + + if (!req.weightCheck.webpSize || req.weightCheck.webpSize > req.weightCheck.avifSize) { + image.bestFormat = 'AVIF'; + image.maxGain = image.avifGain; + } } - var smallest = Math.min(image.webpSize || Infinity, image.avifSize || Infinity); - image.gain = req.weightCheck.bodySize - smallest; - - results.totalGain += image.gain; + results.totalGain += image.maxGain; results.images.push(image); } }); @@ -863,9 +889,9 @@ var Redownload = function() { debug('Downloading %s', entry.url); - // Always add compression and webp headers before sending, in case the server listens to them + // Always add compression and webp/avif headers before sending, in case the server listens to them var reqHeaders = []; - reqHeaders['Accept'] = '*/*,image/webp'; + reqHeaders['Accept'] = '*/*,image/webp,image/avif'; reqHeaders['Accept-Encoding'] = 'gzip, deflate, br'; reqHeaders['Connection'] = 'keep-alive'; reqHeaders['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'; From 675316c9b7a26de41db2e5c25b8f768795f82cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20M=C3=A9tais?= Date: Wed, 26 Jul 2023 18:02:21 +0200 Subject: [PATCH 5/5] Wording --- lib/metadata/policies.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/metadata/policies.js b/lib/metadata/policies.js index fcabafe..7214982 100644 --- a/lib/metadata/policies.js +++ b/lib/metadata/policies.js @@ -749,7 +749,7 @@ var policies = { "oldImageFormats": { "tool": "redownload", "label": "Old image formats", - "message": "

Measures the number of bytes that could be saved by converting images to newer and more efficient formats. The current best image format for the web is AVIF and the second best is WebP.

Be careful, you need to provide a fallback for old browsers that don't support them (for example, Microsoft Edge doesn't support AVIF on Windows 10 or earlier) and search engine bots.

", + "message": "

Measures the number of bytes that could be saved by converting images to newer and more efficient formats. The best image format is generally AVIF and the second best is WebP.

Be careful, you need to provide fallback images for old browsers and search engine bots.

", "isOkThreshold": 30720, "isBadThreshold": 307200, "isAbnormalThreshold": 512000,