Plugin Directory

EWWW Image Optimizer

Reduce file sizes for images in WordPress including NextGEN, GRAND FlAGallery and more using lossless/lossy methods and image format conversion.


NOTE: The WebP naming scheme was changed in 2.0.1 to avoid filename conflicts. You will need to update your rewrite rules via the settings page, and run the WebP upgrade script. Every image in the Media Library with a WebP version using the old naming scheme will have a link to the upgrade process (in list view, not grid view).


  • these are current feature requests, if you see something you like here, go vote for it in the support forum
  • full GMedia support (still waiting for more votes)
  • option to scan Media Library folders for current/previous month during scheduled optimization (already on roadmap)
  • If you would like to help translate this plugin in your language, get started here: http://translate.ewww.io/projects/ewww-image-optimizer/


  • fixed: previous fix for deleting webp images was not working properly


  • fixed: infinite loop on hosts where set_time_limit does not work


  • added: wp-cli command to optimize via command-line, 'wp-cli help ewwwio optimize' for more details
  • added: Unoptimized Images page to show ONLY images that have not been processed by EWWW (under Media Library)
  • added: advanced option to preserve metadata for full-size originals
  • added: disable automatic optimization on upload under advanced options if you prefer to manually optimize in batches, or by scheduled optimization
  • changed: webp images are checked during deletion of images, though WP already removes any newer webp versions that are in the attachment metadata
  • fixed: load text domain earlier so that admin menu items are properly translated
  • fixed: Total Savings calculates properly on multi-site installs when network-activated
  • fixed: Total Savings was double-counting the first 1000 image query
  • FlaGallery 4.27 resolves the optimize on upload issue, and fixes problems with the new wp-cli functions


*fixed: post-processing call to Amazon S3 and Cloudfront was broken when upgrading it to .7 or higher, fixed to allow both .6 and .7 to work with EWWW IO


  • broken: optimize on upload currently broken for flagallery
  • deprecated: NextGEN legacy support will be removed in 2.2 unless I hear from anyone still using it, Nextcellent will continue to be supported
  • changed: all image types are enabled when cloud API key is validated (but only if you do not choose individual options)
  • changed: prefixed javascript/request variables to avoid potential conflicts
  • fixed: undefined variable $log when uploading images
  • fixed: undefined variable $force when running scheduled optimize
  • fixed: undefined index JPG Support when GD is missing
  • added: memory logging in memory.log when WP_DEBUG is turned on in wp-config.php
  • fixed: bulk actions for Nextcellent were missing
  • fixed: notices generated because webp versions do not have height and width when WP is scanning resizes
  • fixed: notices generated due to no optimization status during bulk optimization for webp versions
  • fixed: error when trying to unserialize an array for Image Store Optimize page
  • changed: binary installation and checking only on specific admin pages instead of all admin pages, please report breakages ASAP
  • added: Portuguese translation (pt_BR), props to Pedro Marcelo de Sá Alves


  • security: ssl strengthened for cloud users, no more SSLv3 (thanks POODLE), and other additional encryption tweaks, please report related errors ASAP
  • fixed: warning when scheduled scanner doesn't have any images to optimize
  • added: option to skip PNG images over a certain size since PNG images are prone to timeouts
  • added: compatibility with Animated Gif Resize plugin to preserve animation even in resizes
  • added: compatibility with Hammy plugin to generate dynamic resize versions on demand (and any other plugin/theme that uses WPThumb)
  • added: optimizing previously uploaded images (via bulk or otherwise) also uploads to Amazon S3 with the Amazon Cloudfront and S3 plugin
  • added: webp images are tracked in attachment metadata to enable upload via AWS plugins, but webp images are not deleted when attachments are deleted from Media Library (yet)
  • added: previously generated retina images (WP Retina 2x) are processed by standard Media Library routine, instead of via Folders to Optimize
  • changed: streamlined wp_image_editor extensions to be more future-proof
  • updated: all translations have been updated


  • security: pngout error message properly sanitized to prevent XSS attack
  • changed: changed priority for processing Media Library images to run before Amazon Cloudfront plugin, this could affect other plugins that hook on wp_generate_attachment_metadata
  • fixed: cloud users seeing 'needs attention' incorrectly
  • fixed: error counter for bulk not being reset when successfully resuming
  • fixed: clarification about jpegmini and cmyk images
  • fixed: debugging errors for optipng/pngout levels should not be displayed for cloud users
  • fixed: pngout error was printing to screen prematurely
  • fixed: Image Store resizes were being double-optimized due to filename changes


  • fixed: naming conflict with webp when jpg/png files have identical names, read NOTE above
  • fixed: folders to optimize are not retrieved properly on settings page
  • fixed: undefined variable in permissions check for cwebp on Mac OSX
  • fixed: prevent excess calls for cwebp
  • fixed: wpdb->prepare should have two arguments
  • updated: Spanish translation
  • added: Russian translation
  • changed: alternative binaries for jpegtran and cwebp use -alt suffix to avoid conflict with user-compiled binaries
  • removed: deprecated import process from bulk optimize page
  • removed: empty table option from bulk optimize page, use the Force checkbox instead
  • changed: force re-optimize checkbox applies to Media Library AND the Scan and Optimize function
  • changed: plugin status auto-collapses to save screen space, unless something needs your attention
  • changed: settings tabs have been moved below the status section (directly above the settings area) to enhance usability


  • NOTE: while this is a release with new features, it is not a rewrite, only the next number in the decimal system, just like the WP numbering scheme
  • added: webp generation (wahooooooooo)
  • added: jpegmini support (more wahooooo, but requires a cloud subscription)
  • fixed: jpeg quality not being set properly for 4.0 on resizes
  • changed: settings page, feel free to give me feedback on the new menubar
  • fixed: some settings not being validated properly for multi-site
  • added: up to 30 second retry when bulk optimize is interrupted
  • changed: various code cleanup
  • fixed: prevent excess warnings/notices when binaries can't be installed
  • fixed: prevent binary installer from firing on unsupported operating systems
  • changed: better verification when saving settings for multi-site
  • changed: all cloud transactions are now secured (https)
  • fixed: use nextgen2's unserialize function to query metadata during bulk optimize
  • added: Polish translation
  • updated: Dutch and Romanian translations
  • updated: Tutorial videos on the Installation page have updated finally
  • updated: new binaries for optipng, gifsicle, and pngquant
  • updated: recompiled jpegtran binaries to be smaller
  • fixed: import failed if nextgen classes aren't available during import


  • added: fallback mode when totals for resizes and unoptimized images cannot be determined by the bulk optimize tool
  • added: up to 30 second retry when import is interrupted on bulk optimize page
  • fixed: suppress 'empty server response' messages for cloud users, instead correctly report No Savings


  • fixed: memory limit exceeded when counting total savings on settings page
  • fixed: application/octet-stream is accepted as valid output for mimetype check on executables
  • added: PngOptimizerCL for even better optimization of PNG images on cloud service
  • changed: cloud processing nodes upgraded for faster image processing
  • changed: made queries for resuming bulk operations more efficient to avoid running into max query length problems
  • fixed: images that were not processed (cloud or otherwise) can be optimized later (they are no longer stored in ewwwio_images table)
  • changed: more efficient verification of cloud api keys


  • fixed: escapeshellarg command breaks Windows filenames
  • fixed: newer versions of pngquant not detected
  • fixed: properly check paletted/indexed PNG files for transparency (requires GD)
  • fixed: images smaller than imsanity resize limit trigger notice
  • changed: exclude full-size from lossy optimization applies to lossy conversions too
  • changed: no more caching of cloud key verification results, since verification is 300x faster, and only called when we absolutely need it
  • added: status for pngquant on settings page when lossy optimization is enabled
  • added: Optimized/webview sizes in FlaGallery are tracked properly, and optimized during bulk operations, and manual one-time optimizations.
  • added: use nextgen2 hook for adding action link in gallery management pages


  • changed: verification results for cloud optimization are still cached, but actual optimization requires pre-verification to maintain load-balancing
  • added: NextCellent Gallery support - no future development will be done for NextGEN 1.9.13, all future development will be on NextCellent.
  • updated translations for Romanian and Dutch
  • fixed some warnings and notices
  • added GMedia folder to Scan and Optimize function
  • show cumulative savings in status section
  • added: filter to bypass optimization for developer use
  • added: option to bypass optimization for small images


  • fixed: images with empty metadata count as unoptimized images on Bulk Optimize
  • changed: Import process split into batches via AJAX to make it less likely to timeout and use less memory
  • changed: Bulk Optimize page uses less memory and is quicker to load
  • fixed: custom column in NextGEN galleries works again with NextGEN 2.0.50+
  • changed: cloud api cache refreshes properly when visiting Settings page
  • fixed: license exceeded messages do not stall Bulk Optimize incorrectly
  • fixed: warning on Bulk Optimize for sites using UTC
  • fixed: user-specified paths to optimize did not work if using multi-site WP with plugin activated per-site
  • fixed: gifsicle sometimes generates slightly larger images (not anymore)


  • fixed: Import process is much faster by about 50x


  • fixed: tools cannot be found if there are spaces in the WP paths
  • changed: API key validation is now cached to greatly reduce page load time, mostly on the admin side, but also for any sites that generate or allow uploading images on the front-end
  • fixed: a few WP Retina @2x images were not being optimized, and none of them were stored in the ewwwio_images table properly
  • new: better compression for cloud users via advpng
  • new: lossy compression for PNG images via pngquant
  • changed: Bulk Optimize loads much quicker (mostly noticable on sites with thousands of images)


  • updated Romanian translation
  • removed: potentially long-running query from upgrade
  • fixed: cloud queries were using the wrong hostname, all cloud users must apply this update to avoid service degradation


  • fixed: ewww_image_optimizer_aux_images_loop() undefined causes any calls to WP_Image_Editor to fail (breaks lots of stuff)


  • fixed: debug output not working properly on bulk optimize
  • changed: when cloud license has been exceeded, the optimizer will not attempt to upload images, and bulk operations will stop immediately
  • fixed: unnecessary decimals will not be displayed for file-sizes in bytes
  • added: button to stop bulk optimization process
  • fixed: rewrote escapeshellarg() to avoid stripping accented characters from filenames
  • fixed: problems with apostrophes in filenames
  • changed: Optimize More and Bulk Optimize are now on the same page
  • changed: After running Optimize More, you can Show Optimized Images and Empty Table without refreshing the page.
  • fixed: blank page when resetting bulk status in flagallery
  • change: already optimized images in Media Library will not be re-optimized by default via bulk tool
  • fixed: FlaGallery version 4.0, optimize on upload now works with plupload
  • fixed: proper validation that an image has been removed from the auxilliary images table
  • move more code into admin_init to improve page load on front-end
  • added: ability to specify number of seconds between images (throttling)
  • added: nextgen and grand flagallery thumb optimization is now stored in database
  • change: significant speed improvement, optimizer only checks for the tools it needs for the current image
  • fixed: urls for converted resizes were not being updated in posts
  • fixed: attempt to convert PNGs with empty alpha channels after optimization on first pass, instead of on re-optimization


  • fixed: color of progressbar for 4 more admin themes in WP 3.8
  • changed: metadata stripping now applies to PNG images, but only if using optipng 0.7.x
  • added: ability to remove individual images from the Optimize More table
  • fixed: Optimize More was using case-insensitive queries for matching paths
  • fixed: Optimize More was unable to record image sizes over 8388607 bytes
  • removed: obsolete jquery 1.9.1 file used for maintaining backwards compatiblity with really old versions of WP
  • fixed: weirdness with paths preventing Windows servers from activating, and cleanup of plugin path code


  • new version of gifsicle (1.78), for more detail, see http://www.lcdf.org/gifsicle/changes.html
  • proper detection of Cloudinary images instead of error message
  • plays nicer with Imsanity, detect when a newly uploaded image has been modified and optimized already (instead of re-optimizing)
  • Dutch translation - nl_NL
  • Romanian translation - ro_RO
  • Spanish translation - es_ES
  • Cloudinary integration: auto-upload after optimization when uploading to Media Library, must be enabled in settings
  • debugging output for Media Library (let's you see resizes)
  • visual tweaking for upcoming WP 3.8
  • better checking for safe_mode


  • fixed: some settings were set to incorrect defaults after enabling and disabling cloud features
  • fixed: invalid status on some systems for 'tar' command
  • new: SunOS support - OpenIndiana and Solaris
  • fixed: resizes not properly checking for re-optimization prevention


  • fixed: some security plugins disable Optimize More - use install_themes permission instead of edit_themes
  • fixed: table schema changes not firing on upgrade
  • changed: bulk_attachment variables are not autoloaded to improve performance


  • added: internationalization - need volunteers to provide translations.
  • fixed: Import button not shown on Optimize More in some cases
  • fixed: Bulk Optimize for Nextgen was broken
  • changed: file comparison from md5sum to filesize for Optimize More to improve load time
  • added: quota information for cloud users on settings page
  • fixed: sub-folders of uploads directory were not allowed if /uploads is outside of wp folder
  • changed: increased cloud_verify timeout to avoid false results
  • added: link to status page for cloud service on settings page
  • fixed: debug log created if it does not exist already


  • fixed: syntax error causing white screen of death for Nextgen v2


  • added: ability to optimize specified folders within your wordpress install
  • added: option to optimize on a schedule for images that cannot be automatically optimized on upload (buddypress, symposium, metaslider, user-specified folders)
  • added: WP Symposium support via 'Optimize More' in Tools menu
  • added: BuddyPress Activity Plus support via 'Optimize More'
  • fixed: unnecessary check for 'file' field in attachment metadata
  • fixed: network-level settings are not reset on deactivation and reactivation
  • fixed: blog-level settings not displayed when activated at the blog-level on multi-site
  • added: Any plugin that uses wp_image_editor (GD, Imagick, and Gmagick implementations) will be auto-optimized on upload
  • fixed: Optimize More will crash if one of the standard folders does not exist (e.g.: buddypress avatar folders)
  • fixed: filenames are escaped to prevent potential crashes and security risks
  • fixed: temporary jpgs are checked to be sure they exist to avoid warnings
  • fixed: prevent warnings on bulk optimize due to empty arrays
  • fixed: don't check permissions until after we know file exists
  • fixed: WP get_attached_file() doesn't always work, try other methods to get attachment path
  • removed: deprecated setting to skip utility verification
  • fixed: init not firing for plugins with front-end functionality
  • fixed: suppress warnings if corrupt jpg crashes jpegtran
  • added: screencasts on plugin Installation page


  • plugin will failover gracefully if one of the cloud optimization servers is offline
  • prevent excess database calls when optimizing theme images
  • fixed plugin mangles metadata for Image Store plugin
  • added optimization support for Image Store plugin
  • verify md5 on buddypress optimization, so changed images will get re-optimized by the bulk tool
  • cleaned up settings page (mostly) for cloud users


  • added license exceeded status into status message so users know if they've gone over
  • prevent tool checks and cloud verification from firing on every page load, yikes...


*fixed: temporary jpgs were not being deleted (leftovers from testing for last release) *fixed: jpgs would not be converted to pngs if jpgs had already been optimized *fixed: cloud service not converting gif to png


  • Cloud Optimization option (BETA: get your free API key at http://www.exactlywww.com/cloud/)
  • fixed if exec() is disabled or safe mode is on, don't bother testing local tools
  • more tweaks for exec() detection, including suhosin extension


  • BuddyPress integration to optimize avatars
  • added function to optimize all images in currently active theme
  • full compatibility with NextGEN 2.0.x
  • thumbnails are now optimized automatically on upload with NextGEN 2.0.x
  • fixed detection of disabled exec() function when exec is the first function in the list
  • use internal wordpress functions for retrieving image path, displaying filesize, building redirect urls, and downloading pngout


  • fixed bulk optimization functions for non-English users in NextGEN
  • fixed bulk action conflict in NextGEN


  • global configuration for multi-site/network installs
  • prevent loading of bundled jquery on WP versions that don't need it to avoid conflicts with other plugins not doing the 'right thing'
  • removed enqueueing of common.js to make things run quicker
  • fixed hardcoded link for optimizing nextgen thumbs after upload
  • added links in media library for one time conversion of images
  • better error reporting for pngout auto-install
  • no longer alert users of jpegtran update if they are using version 8


  • fixed fatal errors when posix_getpwuid() is missing from server
  • removed path restrictions, and fixed path detection for old blogs where upload path was modified


  • FlaGallery and NextGEN Bulk functions are now using ajax functions with nicer progress bars and such
  • NextGEN now has ability to optimize selected galleries, or selected images in bulk (FlaGallery already had it)
  • NextGEN users can now click a button to optimize thumbnails after uploading new images
  • use built-in php mimetype functions to check binaries, saving 'file' command for fallback
  • added donation links, since several folks have expressed interest in contributing financially
  • bundled jquery and jquery-ui for using bulk functions on older WP versions
  • use 32-bit jpegtran binary on 'odd' 64-bit linux servers
  • rewrote debugging functionality, available on bulk operations and settings page
  • increased compatibility back to 2.8 - hope no one is actually using that, but just in case...


  • fixed bug with missing 'nice' not detected properly
  • added: Windows support, includes gifsicle, optipng, and jpegtran executables
  • added: FreeBSD support, includes gifsicle, optipng, and jpegtran executables
  • rewrote calls to jpegtran to avoid shell-redirection and work in Windows
  • jpegtran is now bundled for all platforms
  • updated gifsicle to 1.70
  • pngout installer and version updated to February 20-21 2013
  • removed use of shell_exec()
  • fixed warning on ImageMagick version check
  • revamped binary checking, should work on more hosts
  • check permissions on jpegtran
  • rewrote bulk optimizer to use ajax for better progress indication and error handling
  • added: 64-bit jpegtran binary for linux servers missing compatibility libraries


  • fixed: finfo library doesn't work on PHP versions below 5.3.0 due to missing constant
  • fixed: resume button doesn't resume when the running the bulk action on groups of images
  • shell_exec() and exec() detection is more robust
  • added architecture information and warning if 'file' command is missing on settings page
  • added finfo functionality to nextgen and flagallery


  • re-compiled bundled optipng and gifsicle on CentOS 5 for wider compatibility


  • fixed: servers with gzip still failed on bulk operations, forgot to delete a line I was testing for alternatives
  • fixed: some servers with shell_exec() disabled were not detected due to whitespace issues
  • fixed: shell_exec() was not used in PNGtoJPG conversion
  • fixed: JPGs not optimized during PNGtoJPG conversion
  • allow debug info to be shown via javascript link on settings page
  • code cleanup


  • fixed: resuming a bulk optimize on FlAGallery was broken
  • added resume button when running the bulk optimize operation to make it easier to resume a bulk optimize


  • fixed optipng check for older versions (0.6.x)
  • look in system paths for pngout and pngout-static
  • added option for ignoring bundled binaries and using binaries located in system paths instead
  • added notices on options page for out-of-date binaries


  • use finfo functions in PHP 5.3+ instead of deprecated mime_content_type
  • use shell_exec() to make calls to jpegtran more secure and avoid output redirection
  • added bulk action to optimize multiple galleries on the manage galleries page - FlAGallery
  • added bulk action to optimize multiple images on the manage images page - FlAGallery


  • fixed: forgot to apply gzip fix to NextGEN and FlAGallery


  • fixed: turning off gzip for Apache broke bulk operations


  • support for GRAND FlAGallery (flash album gallery)
  • added ability to restore originals after a conversion (we were already storing the original paths in the database)
  • fixed: resized converted images had the wrong original path stored
  • fixed: tools get deleted after every upgrade (moved to wp-content/ewww)
  • fixed: using activation hook incorrectly to fix permissions on upgrades (now we check when you visit the wordpress admin)
  • removed deprecated path settings, custom-built binaries will be copied automatically to the wp-content/ewww folder
  • better validation of tools, no longer using 'which'
  • removed redundant path checks to avoid extra processing time
  • moved NextGEN bulk optimize into NextGEN menu
  • NextGEN and FlAGallery functions only run when the associated gallery plugin is active
  • turn off page compression for bulk operations to avoid output buffering
  • added status messages when attempting automatic installation of jpegtran or pngout
  • NEW version of bundled gifsicle can produce better-optimized GIFs
  • revamped settings page to combine version info, optimizer status, and installation options
  • binaries for Mac OS X available: gifsicle, optipng, and pngout
  • images are re-optimized when you use the WP Image Editor (but never converted)
  • fixed: unsupported files have empty path stored in meta
  • fixed: files with empty paths throw PHP notices in Media Library (DEBUG mode only)
  • when a converted attachment is deleted from wordpress, original images are also cleaned up


  • fixed: uninitialized variables
  • update links in posts for converted images
  • fixed: png2jpg sometimes fills with black instead of chosen color
  • fixed: thumbnails for animated gifs were not allowed to convert to png
  • added pngout version to debug


  • fixed: wordpress plugin installer removes executable bit from bundled tools


  • SECURITY: bundled optipng updated to 0.7.4
  • deprecated manual path settings, please put binaries in the plugin folder instead
  • new one-click install option for jpegtran
  • one-click for pngout is more efficient (doesn't redownload tarball) if it exists
  • optipng and gifsicle now bundled with the plugin
  • new optional conversion routines check for smallest file format
  • added gif2png
  • added jpg2png
  • added png2jpg
  • reorganized settings page (it was getting ugly) and cleaned up debug area
  • added poll for feedback
  • thumbnails are now optimized in NextGEN during a manual optimize (but not on initial upload)
  • utilities have a 'niceness' value of 10 added to give them lower priority


  • fixed not returning results of resized version of image


  • added pngout functionality for even better PNG optimization (disabled by default)
  • added options to disable/bypass each tool
  • pre-compiled binaries are now available via links on the settings page - try them out and let me know if there are problems


  • path validation was broken for nextgen in previous version, now fixed


  • added the ability to resume a bulk optimization that doesn't complete
  • changed path validation for images from wordpress folder to wordpress uploads folder to accomodate users who have located this elsewhere
  • minor code cleanup


  • fixed parse error due to php short tags (old habits die hard)


  • added extra progress and time indicators on Bulk Optimize
  • allow each image in Bulk Optimize 50 seconds to help prevent timeouts (doesn't work if PHP's Safe Mode is turned on)
  • added check for safe mode (because we can't function that way)
  • changed default PNG optimization to level 2 (8 trials) to improve performance
  • restored calls to flush output buffers for php 5.3


  • added bulk optimize to Tools menu and re-optimize for individual images with NextGEN
  • fixed optimizer function to skip images where the utilities are missing
  • added check to ensure user doesn't pass arguments in utility paths
  • added check to prevent utilities from being located in web root
  • changed optipng level setting from text entry to drop-down to prevent arbitrary script execution
  • more code cleanup


  • ported basic NextGEN integration from WP Smush.it (no bulk or re-optimize... yet)
  • added extra output for bulk operations
  • if the jpeg optimization produces an empty file, it will be discarded (instead of overwriting your originals)
  • output filesize in custom column for Media Library
  • fixed various PHP notices/warnings


  • missed documentation updates in 1.0.4 - sorry


  • Added trial with -progressive switch for JPGs (jpegtran), thanks to Alex Vojacek for noticing something was missing. We still check to make sure the progressive option is better, just in case.
  • tested against 3.4-RC3


  • Allow user to specify PNG optimization level
  • Code and screenshot cleanup
  • Settings page beautification (if you can think of further improvements, feel free to use the support link)
  • Bulk Optimize action drop-down on Media Library - ported from Regenerate Thumbnails plugin


  • Forgot to add Settings link to warning message when tools are missing


  • Fixed optimization level for optipng (-o3)
  • Added Installation and Support links to Settings page, and a link to Settings from the Plugin page.


  • First release (forked from CW Image Optimizer)

Requires: 3.5 or higher
Compatible up to: 4.1.1
Last Updated: 2015-1-10
Active Installs: 100,000+


4.6 out of 5 stars


85 of 98 support threads in the last two months have been resolved.

Got something to say? Need help?



5 people say it works.
0 people say it's broken.

100,2,2 100,1,1 100,2,2 100,2,2
100,2,2 100,1,1 50,2,1 100,1,1
100,1,1 0,1,0 100,5,5
0,1,0 100,1,1 100,3,3 100,1,1 0,1,0 100,1,1 100,1,1 0,1,0
100,1,1 100,1,1 100,2,2 100,2,2
100,1,1 100,5,5 100,1,1 100,2,2 0,1,0 100,4,4 100,3,3 100,3,3
75,4,3 100,1,1
100,5,5 100,2,2 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1
100,1,1 33,3,1 100,5,5 100,1,1 100,2,2 100,1,1 100,1,1
100,3,3 80,5,4
100,8,8 33,3,1 100,1,1 100,6,6 100,1,1 100,6,6 100,2,2
100,5,5 50,2,1
100,2,2 100,2,2 100,3,3 100,6,6
100,5,5 100,2,2 100,1,1
100,4,4 100,3,3 100,4,4
100,7,7 100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 91,11,10