diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4532e6f1855f11683772fae625b2fb9e5b8249ad..644fd1a5c88c1bf122803d224dd202a7fdf122b5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,61 @@
+2.0.0.0-dev76
+=============
+* Pricing improvements:
+  * Eliminated code duplication from templates and implemented new calculation models for the following modules:
+     * ConfigurableProduct
+     * Wishlist
+     * Rss
+     * ProductAlert
+* JavaScript improvements:
+  * Removed head.js usages from frontend
+  * Removed head.js usages from adminhtml
+* Themes update:
+  * Plushe styles are removed, Plushe theme is now based on blank
+* Fixed bugs:  
+  * Unable to place order with product that contains custom option 'file'
+  * OnePageCheckout is not working if PayPal method is enabled to work via Payment Bridge
+  * Impossible to reset password for admin user (incorrect reset password link in email)
+  * Errors when deleting customer group specified as default one in the config
+  * A number of essential buttons do not work and block other functionality in Internet Explorer 10
+  * "Insert Widget" button is missing in Insert Widget popup while creating CMS page
+  * Impossible to change status for rating in admin
+  * System email templates are not loaded when user creates new email template
+  * Billing Agreements tab displays during New Customer creation in admin panel
+  * Images are not displayed in WYSIWYG when editing default pages
+  * Error message "Asymmetric transaction rollback" when creating simple product with flat catalog product option enabled in config
+  * Fatal error when trying to preview sample(type=link) or view link for download(type="link") for downloadable product
+  * Customer is redirected to Home Page after adding new address during multiple address checkout if secure URLs are enabled for frontend in config
+  * Impossible to select value in the State/Province field in the customer registration form when customer uses multiple address checkout
+  * Manage Stock option is not editable when using mass action on several products in the admin panel
+  * Category is not displayed in layered navigation block when Flat Catalog is enabled in config
+* GitHub requests:
+  * [#489] (https://github.com/magento/magento2/issues/489) -- PHPUnit 4.0 Compatibility
+  * [#535] (https://github.com/magento/magento2/issues/535) -- Image management for products
+* Framework improvements:
+  * Covered Magento lib form elements with unit tests:
+      * `lib/Magento/Framework/Data/Form/Element/AbstractElement.php`
+      * `lib/Magento/Framework/Data/Form/Element/Button.php`
+      * `lib/Magento/Framework/Data/Form/Element/Checkbox.php`
+      * `lib/Magento/Framework/Data/Form/Element/CollectionFactory.php`
+      * `lib/Magento/Framework/Data/Form/Element/Column.php`
+      * `lib/Magento/Framework/Data/Form/Element/File.php`
+      * `lib/Magento/Framework/Data/Form/Element/Hidden.php`
+      * `lib/Magento/Framework/Data/Form/Element/Editablemultiselect.php`
+      * `lib/Magento/Framework/Data/Form/Element/Factory.php`
+      * `lib/Magento/Framework/Data/Form/Element/Image.php`
+      * `lib/Magento/Framework/Data/Form/Element/Imagefile.php`
+      * `lib/Magento/Framework/Data/Form/Element/Label.php`
+      * `lib/Magento/Framework/Data/Form/Element/Link.php`
+      * `lib/Magento/Framework/Data/Form/Element/Multiselect.php`
+      * `lib/Magento/Framework/Data/Form/Element/Note.php`
+      * `lib/Magento/Framework/Data/Form/Element/Obscure.php`
+      * `lib/Magento/Framework/Data/Form/Element/Password.php`
+      * `lib/Magento/Framework/Data/Form/Element/Radio.php`
+      * `lib/Magento/Framework/Data/Form/Element/Reset.php`
+      * `lib/Magento/Framework/Data/Form/Element/Submit.php`
+      * `lib/Magento/Framework/Data/Form/Element/Text.php`
+      * `lib/Magento/Framework/Data/Form/Element/Textarea.php`
+  
 2.0.0.0-dev75
 =============
 * Modularity improvements:
diff --git a/app/autoload.php b/app/autoload.php
index 50d3ccd77cdf332fb4da8a1f8750d88322552604..1a52fe5a9bc4053dcfd8ffcd290d264c1c045eb3 100644
--- a/app/autoload.php
+++ b/app/autoload.php
@@ -24,4 +24,4 @@
  * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 require_once __DIR__ . '/../lib/Magento/Framework/Autoload/IncludePath.php';
-spl_autoload_register('\Magento\Framework\Autoload\IncludePath::load');
+spl_autoload_register([new \Magento\Framework\Autoload\IncludePath(), 'load']);
diff --git a/app/bootstrap.php b/app/bootstrap.php
index 74f7d43835dfedc617777bc3b31242e5a1715e35..e356336ce0facca8ec7f0ba1ee20efd0dbee007d 100644
--- a/app/bootstrap.php
+++ b/app/bootstrap.php
@@ -63,7 +63,7 @@ define('BP', dirname(__DIR__));
 require_once BP . '/app/functions.php';
 
 require_once __DIR__ . '/autoload.php';
-\Magento\Framework\Autoload\IncludePath::addIncludePath(array(BP . '/app/code', BP . '/lib'));
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(array(BP . '/app/code', BP . '/lib'));
 $classMapPath = BP . '/var/classmap.ser';
 if (file_exists($classMapPath)) {
     require_once BP . '/lib/Magento/Framework/Autoload/ClassMap.php';
diff --git a/app/code/Magento/Authorizenet/view/frontend/form/cc.phtml b/app/code/Magento/Authorizenet/view/frontend/form/cc.phtml
index 9d67b54ee9522df64563275f6285a896f377bad7..f45a4ccdb30717ff2e000b429c7e3b732295d2d0 100644
--- a/app/code/Magento/Authorizenet/view/frontend/form/cc.phtml
+++ b/app/code/Magento/Authorizenet/view/frontend/form/cc.phtml
@@ -34,23 +34,16 @@
 
     <?php if ($this->isPartialAuthorization()): ?>
         <?php echo $this->getChildHtml('cards') ?>
-        <div class="release-amounts" data-container="release-amounts">
+        <div class="release-amounts"
+             data-container="release-amounts"
+             data-mage-init='{"authorizenetAuthenticate":{"partialAuthorizationConfirmationMessage": "<?php echo $this->getPartialAuthorizationConfirmationMessage()?>",
+                                                          "cancelConfirmationMessage": "<?php echo $this->getCancelConfirmationMessage() ?>",
+                                                          "cancelUrl": "<?php echo $this->getCancelUrl() ?>"}}'>
             <button class="button" type="button" id="payment-button-cancel" name="cancel"><span><span>Cancel</span></span></button>
             <span><?php echo __('To cancel pending authorizations and release amounts that have already been processed during this payment, click Cancel.') ?></span>
         </div>
         <?php echo $this->showNoticeMessage(__('Please enter a different credit card number to complete your purchase.')) ?>
 
-        <script type="text/javascript">
-            (function ($) {
-                head.js("<?php echo $this->getViewFileUrl('Magento_Authorizenet::authorizenet-authenticate.js') ?>", function () {
-                    $('[data-container="release-amounts"]').authorizenetAuthenticate({
-                        partialAuthorizationConfirmationMessage: '<?php echo $this->getPartialAuthorizationConfirmationMessage()?>',
-                        cancelConfirmationMessage: '<?php echo $this->getCancelConfirmationMessage() ?>',
-                        cancelUrl: '<?php echo $this->getCancelUrl() ?>'
-                    });
-                });
-            })(jQuery);
-        </script>
         <span id="cancel-please-wait" class="please-wait load indicator" style="display: none" data-text="<?php echo __('Processing...') ?>">
             <span><?php echo __('Processing...') ?></span>
         </span>
diff --git a/app/code/Magento/Authorizenet/view/frontend/js/components.phtml b/app/code/Magento/Authorizenet/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..920b70b475a8c4d078f5a2ad06bfe65036e00bb6
--- /dev/null
+++ b/app/code/Magento/Authorizenet/view/frontend/js/components.phtml
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            authorizenetAuthenticate: [
+                '<?php echo $this->getViewFileUrl('Magento_Authorizenet::authorizenet-authenticate.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Authorizenet/view/frontend/layout/checkout_onepage_index.xml b/app/code/Magento/Authorizenet/view/frontend/layout/checkout_onepage_index.xml
index 423ca04f8ccaf513be556d01a68f7672bb9157af..738038f686f061d8e5e816e854bebaf0c4ba3ba4 100644
--- a/app/code/Magento/Authorizenet/view/frontend/layout/checkout_onepage_index.xml
+++ b/app/code/Magento/Authorizenet/view/frontend/layout/checkout_onepage_index.xml
@@ -31,4 +31,7 @@
             </arguments>
         </block>
     </referenceBlock>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="authorizenet_page_head_components" template="Magento_Authorizenet::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php
index a5e956d90a91ca5abffb1da4db25e2cf13ddce53..6c7ec0a722dc39d982f206ee1876faa868f3e4a6 100644
--- a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php
+++ b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php
@@ -83,7 +83,7 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Filter\Date
     {
         if ($this->getColumn()->getFilterTime()) {
             try {
-                $dateObj = $this->getLocaleDate()->date(null, null, $locale, false);
+                $dateObj = $this->_localeDate->date(null, null, $locale, false);
 
                 //set default timezone for store (admin)
                 $dateObj->setTimezone(
@@ -96,7 +96,7 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Filter\Date
                 //set date with applying timezone of store
                 $dateObj->set(
                     $date,
-                    $this->getLocaleDate()->getDateTimeFormat(
+                    $this->_localeDate->getDateTimeFormat(
                         \Magento\Framework\Stdlib\DateTime\TimezoneInterface::FORMAT_TYPE_SHORT
                     ),
                     $locale
diff --git a/app/code/Magento/Backend/view/adminhtml/layout/default.xml b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
index fc4a5c1a427bc37a1f36ccb6f0eaa550c4b42535..176052180d44717aea59a1349b171b5801e7f5ea 100644
--- a/app/code/Magento/Backend/view/adminhtml/layout/default.xml
+++ b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
@@ -44,9 +44,9 @@
                     <argument name="file" xsi:type="string">jquery/jquery-ui-1.9.2.js</argument>
                 </arguments>
             </block>
-            <block class="Magento\Theme\Block\Html\Head\Script" name="head-load-min-js">
+            <block class="Magento\Theme\Block\Html\Head\Script" name="js-head-js">
                 <arguments>
-                    <argument name="file" xsi:type="string">headjs/head.load.min.js</argument>
+                    <argument name="file" xsi:type="string">headjs/head.min.js</argument>
                 </arguments>
             </block>
             <block class="Magento\Theme\Block\Html\Head\Script" name="underscore-js">
diff --git a/app/code/Magento/Backend/view/adminhtml/media/uploader.phtml b/app/code/Magento/Backend/view/adminhtml/media/uploader.phtml
index 0dc97108f1ab831cf62d6c3a81b183ecd181d703..6d160e1fe1cf2aae71785ec18168cf4de71f0898 100644
--- a/app/code/Magento/Backend/view/adminhtml/media/uploader.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/media/uploader.phtml
@@ -51,7 +51,7 @@
     $(function () {
         $('#fileupload').fileupload({
             dataType: 'json',
-            dropZone: '#media_gallery_content',
+            dropZone: '[data-tab-panel=image-management]',
             sequentialUploads: true,
             acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
             maxFileSize: <?php echo $this->getFileSizeService()->getMaxFileSize() ?>,
diff --git a/app/code/Magento/Bundle/Block/Adminhtml/Catalog/Product/Composite/Fieldset/Bundle.php b/app/code/Magento/Bundle/Block/Adminhtml/Catalog/Product/Composite/Fieldset/Bundle.php
index 6aa9711f8ac063c783ae05c8f982a12d8644f4ee..373a054f931a184cc0913b68c82b983a8c31ffab 100644
--- a/app/code/Magento/Bundle/Block/Adminhtml/Catalog/Product/Composite/Fieldset/Bundle.php
+++ b/app/code/Magento/Bundle/Block/Adminhtml/Catalog/Product/Composite/Fieldset/Bundle.php
@@ -27,10 +27,6 @@ namespace Magento\Bundle\Block\Adminhtml\Catalog\Product\Composite\Fieldset;
 
 /**
  * Adminhtml block for fieldset of bundle product
- *
- * @category   Magento
- * @package    Magento_Adminhtml
- * @author      Magento Core Team <core@magentocommerce.com>
  */
 class Bundle extends \Magento\Bundle\Block\Catalog\Product\View\Type\Bundle
 {
diff --git a/app/code/Magento/Bundle/Block/Catalog/Product/Price.php b/app/code/Magento/Bundle/Block/Catalog/Product/Price.php
index 9e523dd38d3f169f127bfd33cb272119f3f96eca..0de8cb4ac4da8f27262868e9170087cf89db8689 100644
--- a/app/code/Magento/Bundle/Block/Catalog/Product/Price.php
+++ b/app/code/Magento/Bundle/Block/Catalog/Product/Price.php
@@ -81,13 +81,13 @@ class Price extends \Magento\Catalog\Block\Product\Price
      */
     public function isRatesGraterThenZero()
     {
-        $_request = $this->_taxCalc->getRateRequest(false, false, false);
-        $_request->setProductClassId($this->getProduct()->getTaxClassId());
-        $defaultTax = $this->_taxCalc->getRate($_request);
+        $request = $this->_taxCalc->getRateRequest(false, false, false);
+        $request->setProductClassId($this->getProduct()->getTaxClassId());
+        $defaultTax = $this->_taxCalc->getRate($request);
 
-        $_request = $this->_taxCalc->getRateRequest();
-        $_request->setProductClassId($this->getProduct()->getTaxClassId());
-        $currentTax = $this->_taxCalc->getRate($_request);
+        $request = $this->_taxCalc->getRateRequest();
+        $request->setProductClassId($this->getProduct()->getTaxClassId());
+        $currentTax = $this->_taxCalc->getRate($request);
 
         return floatval($defaultTax) > 0 || floatval($currentTax) > 0;
     }
@@ -101,54 +101,14 @@ class Price extends \Magento\Catalog\Block\Product\Price
     public function displayBothPrices()
     {
         $product = $this->getProduct();
-        if ($product->getPriceType() == \Magento\Bundle\Model\Product\Price::PRICE_TYPE_DYNAMIC &&
-            $product->getPriceModel()->getIsPricesCalculatedByIndex() !== false
+        if ($product->getPriceType() == \Magento\Bundle\Model\Product\Price::PRICE_TYPE_DYNAMIC
+            && $product->getPriceModel()->getIsPricesCalculatedByIndex() !== false
         ) {
             return false;
         }
         return $this->_taxData->displayBothPrices();
     }
 
-    /**
-     * Convert block to html string
-     *
-     * @return string
-     */
-    protected function _toHtml()
-    {
-        $product = $this->getProduct();
-        if ($this->getMAPTemplate() && $this->_catalogData->canApplyMsrp(
-            $product
-        ) && $product->getPriceType() != \Magento\Bundle\Model\Product\Price::PRICE_TYPE_DYNAMIC
-        ) {
-            $hiddenPriceHtml = parent::_toHtml();
-            if ($this->_catalogData->isShowPriceOnGesture($product)) {
-                $this->setWithoutPrice(true);
-            }
-            $realPriceHtml = parent::_toHtml();
-            $this->unsWithoutPrice();
-            $addToCartUrl = $this->getLayout()->getBlock('product.info.bundle')->getAddToCartUrl($product);
-            $product->setAddToCartUrl($addToCartUrl);
-            $html = $this->getLayout()->createBlock(
-                'Magento\Catalog\Block\Product\Price'
-            )->setTemplate(
-                $this->getMAPTemplate()
-            )->setRealPriceHtml(
-                $hiddenPriceHtml
-            )->setPriceElementIdPrefix(
-                'bundle-price-'
-            )->setIdSuffix(
-                $this->getIdSuffix()
-            )->setProduct(
-                $product
-            )->toHtml();
-
-            return $realPriceHtml . $html;
-        }
-
-        return parent::_toHtml();
-    }
-
     /**
      * @param null|string|bool|int|\Magento\Store\Model\Store $storeId
      * @return bool|\Magento\Store\Model\Website
diff --git a/app/code/Magento/Bundle/Block/Catalog/Product/View.php b/app/code/Magento/Bundle/Block/Catalog/Product/View.php
deleted file mode 100644
index 917f0382cf58bf8acf57324558d3bc26cf0cb506..0000000000000000000000000000000000000000
--- a/app/code/Magento/Bundle/Block/Catalog/Product/View.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @category    Magento
- * @package     Magento_Bundle
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
- */
-
-namespace Magento\Bundle\Block\Catalog\Product;
-
-/**
- * Product View block (to modify getTierPrices method)
- */
-class View extends \Magento\Catalog\Block\Product\View
-{
-    /**
-     * Get tier prices (formatted)
-     *
-     * @param \Magento\Catalog\Model\Product|null $product
-     * @return array
-     * @deprecated
-     */
-    public function getTierPrices($product = null)
-    {
-        if ($product === null) {
-            $product = $this->getProduct();
-        }
-
-        $res = array();
-
-        $prices = $product->getFormatedTierPrice();
-        if (is_array($prices)) {
-            $store = $this->_storeManager->getStore();
-            $specialPrice = $product->getSpecialPrice();
-            $defaultDiscount = max($product->getGroupPrice(), $specialPrice ? 100 - $specialPrice : 0);
-            foreach ($prices as $price) {
-                if ($defaultDiscount < $price['price']) {
-                    $price['price_qty'] += 0;
-                    $price['savePercent'] = ceil(100 - $price['price']);
-
-                    $priceExclTax = $this->_taxData->getPrice($product, $price['website_price']);
-                    $price['formated_price'] = $store->formatPrice($store->convertPrice($priceExclTax));
-
-                    $priceInclTax = $this->_taxData->getPrice($product, $price['website_price'], true);
-                    $price['formated_price_incl_tax'] = $store->formatPrice($store->convertPrice($priceInclTax));
-
-                    $res[] = $price;
-                }
-            }
-        }
-
-        return $res;
-    }
-}
diff --git a/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle.php b/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle.php
index 6fe9106aca136223fed7d34798e694edf16176be..3d9a2f6510d50a94ab2c1f61f102205955d70eb8 100644
--- a/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle.php
+++ b/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle.php
@@ -25,19 +25,17 @@
  */
 namespace Magento\Bundle\Block\Catalog\Product\View\Type;
 
+use Magento\Framework\Pricing\PriceCurrencyInterface;
+
 /**
  * Catalog bundle product info block
- *
- * @category    Magento
- * @package     Magento_Bundle
- * @author      Magento Core Team <core@magentocommerce.com>
  */
 class Bundle extends \Magento\Catalog\Block\Product\View\AbstractView
 {
     /**
-     * @var mixed
+     * @var array
      */
-    protected $_options = null;
+    protected $_options;
 
     /**
      * Default MAP renderer type
@@ -51,18 +49,13 @@ class Bundle extends \Magento\Catalog\Block\Product\View\AbstractView
      *
      * @var \Magento\Catalog\Helper\Product
      */
-    protected $_catalogProduct = null;
+    protected $_catalogProduct;
 
     /**
      * @var \Magento\Bundle\Model\Product\PriceFactory
      */
     protected $_productPrice;
 
-    /**
-     * @var \Magento\Core\Helper\Data
-     */
-    protected $coreData;
-
     /**
      * @var \Magento\Framework\Json\EncoderInterface
      */
@@ -73,12 +66,17 @@ class Bundle extends \Magento\Catalog\Block\Product\View\AbstractView
      */
     protected $_localeFormat;
 
+    /**
+     * @var PriceCurrencyInterface
+     */
+    protected $priceCurrency;
+
     /**
      * @param \Magento\Catalog\Block\Product\Context $context
      * @param \Magento\Framework\Stdlib\ArrayUtils $arrayUtils
      * @param \Magento\Catalog\Helper\Product $catalogProduct
      * @param \Magento\Bundle\Model\Product\PriceFactory $productPrice
-     * @param \Magento\Core\Helper\Data $coreData
+     * @param PriceCurrencyInterface $priceCurrency
      * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
      * @param \Magento\Framework\Locale\FormatInterface $localeFormat
      * @param array $data
@@ -89,7 +87,7 @@ class Bundle extends \Magento\Catalog\Block\Product\View\AbstractView
         \Magento\Framework\Stdlib\ArrayUtils $arrayUtils,
         \Magento\Catalog\Helper\Product $catalogProduct,
         \Magento\Bundle\Model\Product\PriceFactory $productPrice,
-        \Magento\Core\Helper\Data $coreData,
+        PriceCurrencyInterface $priceCurrency,
         \Magento\Framework\Json\EncoderInterface $jsonEncoder,
         \Magento\Framework\Locale\FormatInterface $localeFormat,
         array $data = array(),
@@ -97,19 +95,18 @@ class Bundle extends \Magento\Catalog\Block\Product\View\AbstractView
     ) {
         $this->_catalogProduct = $catalogProduct;
         $this->_productPrice = $productPrice;
-        $this->coreData = $coreData;
+        $this->priceCurrency = $priceCurrency;
         $this->jsonEncoder = $jsonEncoder;
         $this->_localeFormat = $localeFormat;
         parent::__construct(
             $context,
             $arrayUtils,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
     /**
-     * @return mixed
+     * @return array
      */
     public function getOptions()
     {
@@ -159,8 +156,6 @@ class Bundle extends \Magento\Catalog\Block\Product\View\AbstractView
         $options = array();
         $selected = array();
         $currentProduct = $this->getProduct();
-        /* @var $bundlePriceModel \Magento\Bundle\Model\Product\Price */
-        $bundlePriceModel = $this->_productPrice->create();
 
         if ($preConfiguredFlag = $currentProduct->hasPreconfiguredValues()) {
             $preConfiguredValues = $currentProduct->getPreconfiguredValues();
@@ -169,84 +164,55 @@ class Bundle extends \Magento\Catalog\Block\Product\View\AbstractView
 
 
         $position = 0;
-        foreach ($optionsArray as $_option) {
-            /* @var $_option \Magento\Bundle\Model\Option */
-            if (!$_option->getSelections()) {
+        foreach ($optionsArray as $optionItem) {
+            /* @var $optionItem \Magento\Bundle\Model\Option */
+            if (!$optionItem->getSelections()) {
                 continue;
             }
 
-            $optionId = $_option->getId();
+            $optionId = $optionItem->getId();
             $option = array(
                 'selections' => array(),
-                'title' => $_option->getTitle(),
-                'isMulti' => in_array($_option->getType(), array('multi', 'checkbox')),
+                'title' => $optionItem->getTitle(),
+                'isMulti' => in_array($optionItem->getType(), array('multi', 'checkbox')),
                 'position' => $position++
             );
 
-            $selectionCount = count($_option->getSelections());
+            $selectionCount = count($optionItem->getSelections());
 
-            foreach ($_option->getSelections() as $_selection) {
-                /* @var $_selection \Magento\Catalog\Model\Product */
-                $selectionId = $_selection->getSelectionId();
-                $_qty = !($_selection->getSelectionQty() * 1) ? '1' : $_selection->getSelectionQty() * 1;
+            foreach ($optionItem->getSelections() as $selectionItem) {
+                /* @var $selectionItem \Magento\Catalog\Model\Product */
+                $selectionId = $selectionItem->getSelectionId();
+                $qty = !($selectionItem->getSelectionQty() * 1) ? '1' : $selectionItem->getSelectionQty() * 1;
                 // recalculate currency
-                $tierPrices = $_selection->getTierPrice();
+                $tierPrices = $selectionItem->getPriceInfo()
+                    ->getPrice(\Magento\Catalog\Pricing\Price\TierPrice::PRICE_CODE)
+                    ->getTierPriceList();
 
                 foreach ($tierPrices as &$tierPriceInfo) {
-                    $tierPriceAmount = $_selection->getPriceInfo()->getPrice('regular_price')
-                        ->getCustomAmount($tierPriceInfo['price']);
-                    $tierPriceInfo['price'] = $this->coreData->currency($tierPriceInfo['price'], false, false);
-                    $tierPriceInfo['inclTaxPrice'] = $this->coreData->currency(
-                        $tierPriceAmount->getValue(),
-                        false,
-                        false
-                    );
-                    $tierPriceInfo['exclTaxPrice'] = $this->coreData->currency(
-                        $tierPriceAmount->getBaseAmount(),
-                        false,
-                        false
+                    $price = $tierPriceInfo['price'];
+                    $tierPriceInfo['price'] = $this->priceCurrency->convert(
+                        $this->_taxData->displayPriceIncludingTax() ? $price->getValue() : $price->getBaseAmount()
                     );
+                    $tierPriceInfo['exclTaxPrice'] = $this->priceCurrency->convert($price->getBaseAmount());
+                    $tierPriceInfo['inclTaxPrice'] = $this->priceCurrency->convert($price->getValue());
                 }
-                // unset($tierPriceInfo);
                 // break the reference with the last element
 
                 $canApplyMAP = false;
-
                 $bundleOptionPriceAmount = $currentProduct->getPriceInfo()->getPrice('bundle_option')
-                    ->getOptionSelectionAmount($_selection);
-                $_priceInclTax = $bundleOptionPriceAmount->getValue();
-                $_priceExclTax = $bundleOptionPriceAmount->getBaseAmount();
-
-                //if ($currentProduct->getPriceType() == \Magento\Bundle\Model\Product\Price::PRICE_TYPE_FIXED) {
-                //    $_priceInclTax = $this->_taxData->getPrice($currentProduct, $itemPrice, true);
-                //    $_priceExclTax = $this->_taxData->getPrice($currentProduct, $itemPrice);
-                //}
-                //$itemPrice = $bundlePriceModel->getSelectionFinalTotalPrice(
-                //    $currentProduct,
-                //    $_selection,
-                //    $currentProduct->getQty(),
-                //    $_selection->getQty(),
-                //   false,
-                //    false
-                //);
+                    ->getOptionSelectionAmount($selectionItem);
+                $priceInclTax = $bundleOptionPriceAmount->getValue();
+                $priceExclTax = $bundleOptionPriceAmount->getBaseAmount();
 
                 $selection = array(
-                    'qty' => $_qty,
-                    'customQty' => $_selection->getSelectionCanChangeQty(),
-                    'inclTaxPrice' => $this->coreData->currency(
-                        $_priceInclTax,
-                        false,
-                        false
-                    ),
-                    'exclTaxPrice' => $this->coreData->currency(
-                        $_priceExclTax,
-                        false,
-                        false
-                    ),
-                    'priceValue' => $this->coreData->currency($_selection->getSelectionPriceValue(), false, false),
-                    'priceType' => $_selection->getSelectionPriceType(),
+                    'qty' => $qty,
+                    'customQty' => $selectionItem->getSelectionCanChangeQty(),
+                    'inclTaxPrice' => $this->priceCurrency->convert($priceInclTax),
+                    'exclTaxPrice' => $this->priceCurrency->convert($priceExclTax),
+                    'priceType' => $selectionItem->getSelectionPriceType(),
                     'tierPrice' => $tierPrices,
-                    'name' => $_selection->getName(),
+                    'name' => $selectionItem->getName(),
                     'plusDisposition' => 0,
                     'minusDisposition' => 0,
                     'canApplyMAP' => $canApplyMAP
@@ -257,17 +223,17 @@ class Bundle extends \Magento\Catalog\Block\Product\View\AbstractView
                     : $selection['exclTaxPrice'];
 
                 $responseObject = new \Magento\Framework\Object();
-                $args = array('response_object' => $responseObject, 'selection' => $_selection);
+                $args = array('response_object' => $responseObject, 'selection' => $selectionItem);
                 $this->_eventManager->dispatch('bundle_product_view_config', $args);
                 if (is_array($responseObject->getAdditionalOptions())) {
-                    foreach ($responseObject->getAdditionalOptions() as $o => $v) {
-                        $selection[$o] = $v;
+                    foreach ($responseObject->getAdditionalOptions() as $index => $value) {
+                        $selection[$index] = $value;
                     }
                 }
                 $option['selections'][$selectionId] = $selection;
 
-                if (($_selection->getIsDefault() ||
-                        $selectionCount == 1 && $_option->getRequired()) && $_selection->isSalable()
+                if (($selectionItem->getIsDefault() || $selectionCount == 1 && $optionItem->getRequired())
+                    && $selectionItem->isSalable()
                 ) {
                     $selected[$optionId][] = $selectionId;
                 }
@@ -284,24 +250,32 @@ class Bundle extends \Magento\Catalog\Block\Product\View\AbstractView
         }
         $isFixedPrice = $this->getProduct()->getPriceType() == \Magento\Bundle\Model\Product\Price::PRICE_TYPE_FIXED;
 
+        $productAmount = $currentProduct
+            ->getPriceInfo()
+            ->getPrice(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE)
+            ->getAmount();
+
+        $baseProductAmount = $currentProduct
+            ->getPriceInfo()
+            ->getPrice(\Magento\Catalog\Pricing\Price\RegularPrice::PRICE_CODE)
+            ->getAmount();
+
         $config = array(
             'options' => $options,
             'selected' => $selected,
             'bundleId' => $currentProduct->getId(),
             'priceFormat' => $this->_localeFormat->getPriceFormat(),
-            'basePrice' => $this->coreData->currency($currentProduct->getPrice(), false, false),
-            'showIncludeTax' => $this->_taxData->displayPriceIncludingTax(),
-            'finalBasePriceInclTax' => $this->coreData->currency(
-                $this->_taxData->getPrice($currentProduct, $currentProduct->getFinalPrice(), true),
-                false,
-                false
-            ),
-            'finalBasePriceExclTax' => $this->coreData->currency($currentProduct->getFinalPrice(), false, false),
+            'basePrice' => $this->priceCurrency->convert($baseProductAmount->getValue()),
+            'finalBasePriceInclTax' => $this->priceCurrency->convert($productAmount->getValue()),
+            'finalBasePriceExclTax' => $this->priceCurrency->convert($productAmount->getBaseAmount()),
             'priceType' => $currentProduct->getPriceType(),
-            'specialPrice' => $currentProduct->getSpecialPrice(),
+            'specialPrice' => $currentProduct
+                ->getPriceInfo()
+                ->getPrice(\Magento\Catalog\Pricing\Price\SpecialPrice::PRICE_CODE)
+                ->getValue(),
             'includeTax' => $this->_taxData->priceIncludesTax() ? 'true' : 'false',
             'isFixedPrice' => $isFixedPrice,
-            'isMAPAppliedDirectly' => $this->_catalogData->canApplyMsrp($this->getProduct(), null, false)
+            //'isMAPAppliedDirectly' => $this->_catalogData->canApplyMsrp($this->getProduct(), null, false)
         );
 
         $config['finalPrice'] = $this->_taxData->displayPriceIncludingTax()
diff --git a/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php b/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php
index 0510e58ffcdf6f4174ced41dae0c90f63366cff5..773dd24ce48c24ad250bb5eac918bafb62ced64f 100644
--- a/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php
+++ b/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php
@@ -25,28 +25,26 @@
  */
 namespace Magento\Bundle\Block\Catalog\Product\View\Type\Bundle;
 
+use Magento\Bundle\Model\Product\Price;
+
 /**
  * Bundle option renderer
- *
- * @category    Magento
- * @package     Magento_Bundle
- * @author      Magento Core Team <core@magentocommerce.com>
  */
 class Option extends \Magento\Bundle\Block\Catalog\Product\Price
 {
     /**
-     * Store preconfigured options
+     * Store pre-configured options
      *
      * @var int|array|string
      */
-    protected $_selectedOptions = null;
+    protected $_selectedOptions;
 
     /**
      * Show if option has a single selection
      *
      * @var bool
      */
-    protected $_showSingle = null;
+    protected $_showSingle;
 
     /**
      * @var \Magento\Core\Helper\Data
@@ -104,10 +102,10 @@ class Option extends \Magento\Bundle\Block\Catalog\Product\Price
     public function showSingle()
     {
         if (is_null($this->_showSingle)) {
-            $_option = $this->getOption();
-            $_selections = $_option->getSelections();
+            $option = $this->getOption();
+            $selections = $option->getSelections();
 
-            $this->_showSingle = count($_selections) == 1 && $_option->getRequired();
+            $this->_showSingle = count($selections) == 1 && $option->getRequired();
         }
 
         return $this->_showSingle;
@@ -120,29 +118,29 @@ class Option extends \Magento\Bundle\Block\Catalog\Product\Price
      */
     public function getDefaultValues()
     {
-        $_option = $this->getOption();
-        $_default = $_option->getDefaultSelection();
-        $_selections = $_option->getSelections();
+        $option = $this->getOption();
+        $default = $option->getDefaultSelection();
+        $selections = $option->getSelections();
         $selectedOptions = $this->_getSelectedOptions();
         $inPreConfigured = $this->getProduct()->hasPreconfiguredValues() &&
-            $this->getProduct()->getPreconfiguredValues()->getData('bundle_option_qty/' . $_option->getId());
+            $this->getProduct()->getPreconfiguredValues()->getData('bundle_option_qty/' . $option->getId());
 
-        if (empty($selectedOptions) && $_default) {
-            $_defaultQty = $_default->getSelectionQty() * 1;
-            $_canChangeQty = $_default->getSelectionCanChangeQty();
+        if (empty($selectedOptions) && $default) {
+            $defaultQty = $default->getSelectionQty() * 1;
+            $canChangeQty = $default->getSelectionCanChangeQty();
         } elseif (!$inPreConfigured && $selectedOptions && is_numeric($selectedOptions)) {
-            $selectedSelection = $_option->getSelectionById($selectedOptions);
-            $_defaultQty = $selectedSelection->getSelectionQty() * 1;
-            $_canChangeQty = $selectedSelection->getSelectionCanChangeQty();
+            $selectedSelection = $option->getSelectionById($selectedOptions);
+            $defaultQty = $selectedSelection->getSelectionQty() * 1;
+            $canChangeQty = $selectedSelection->getSelectionCanChangeQty();
         } elseif (!$this->showSingle() || $inPreConfigured) {
-            $_defaultQty = $this->_getSelectedQty();
-            $_canChangeQty = (bool)$_defaultQty;
+            $defaultQty = $this->_getSelectedQty();
+            $canChangeQty = (bool)$defaultQty;
         } else {
-            $_defaultQty = $_selections[0]->getSelectionQty() * 1;
-            $_canChangeQty = $_selections[0]->getSelectionCanChangeQty();
+            $defaultQty = $selections[0]->getSelectionQty() * 1;
+            $canChangeQty = $selections[0]->getSelectionCanChangeQty();
         }
 
-        return array($_defaultQty, $_canChangeQty);
+        return array($defaultQty, $canChangeQty);
     }
 
     /**
@@ -226,18 +224,17 @@ class Option extends \Magento\Bundle\Block\Catalog\Product\Price
     }
 
     /**
-     * @param \Magento\Catalog\Model\Product $_selection
+     * @param \Magento\Catalog\Model\Product $selection
      * @param bool $includeContainer
      * @return string
      */
-    public function getSelectionQtyTitlePrice($_selection, $includeContainer = true)
+    public function getSelectionQtyTitlePrice($selection, $includeContainer = true)
     {
-        $price = $this->getProduct()->getPriceModel()->getSelectionPreFinalPrice($this->getProduct(), $_selection);
-        $this->setFormatProduct($_selection);
-        $priceTitle = $_selection->getSelectionQty() * 1 . ' x ' . $this->escapeHtml($_selection->getName());
+        $this->setFormatProduct($selection);
+        $priceTitle = $selection->getSelectionQty() * 1 . ' x ' . $this->escapeHtml($selection->getName());
 
         $priceTitle .= ' &nbsp; ' . ($includeContainer ? '<span class="price-notice">' : '') . '+' .
-            $this->renderPriceString($_selection, $includeContainer) . ($includeContainer ? '</span>' : '');
+            $this->renderPriceString($selection, $includeContainer) . ($includeContainer ? '</span>' : '');
 
         return $priceTitle;
     }
@@ -245,17 +242,17 @@ class Option extends \Magento\Bundle\Block\Catalog\Product\Price
     /**
      * Get price for selection product
      *
-     * @param \Magento\Catalog\Model\Product $_selection
+     * @param \Magento\Catalog\Model\Product $selection
      * @return int|float
      */
-    public function getSelectionPrice($_selection)
+    public function getSelectionPrice($selection)
     {
         $price = 0;
         $store = $this->getProduct()->getStore();
-        if ($_selection) {
+        if ($selection) {
             $price = $this->getProduct()->getPriceModel()->getSelectionPreFinalPrice(
                 $this->getProduct(),
-                $_selection,
+                $selection,
                 1
             );
             if (is_numeric($price)) {
@@ -268,15 +265,15 @@ class Option extends \Magento\Bundle\Block\Catalog\Product\Price
     /**
      * Get title price for selection product
      *
-     * @param \Magento\Catalog\Model\Product $_selection
+     * @param \Magento\Catalog\Model\Product $selection
      * @param bool $includeContainer
      * @return string
      */
-    public function getSelectionTitlePrice($_selection, $includeContainer = true)
+    public function getSelectionTitlePrice($selection, $includeContainer = true)
     {
-        $priceTitle = $this->escapeHtml($_selection->getName());
-        $priceTitle .= ' &nbsp; ' . ($includeContainer ? '<span class="price-notice">' : '') . '+' .
-            $this->renderPriceString($_selection, $includeContainer) . ($includeContainer ? '</span>' : '');
+        $priceTitle = $this->escapeHtml($selection->getName());
+        $priceTitle .= ' &nbsp; ' . ($includeContainer ? '<span class="price-notice">' : '') . '+'
+            . $this->renderPriceString($selection, $includeContainer) . ($includeContainer ? '</span>' : '');
         return $priceTitle;
     }
 
@@ -305,9 +302,7 @@ class Option extends \Magento\Bundle\Block\Catalog\Product\Price
         $taxHelper = $this->_taxData;
         $coreHelper = $this->_coreHelper;
         $currentProduct = $this->getProduct();
-        if ($currentProduct->getPriceType() == \Magento\Bundle\Model\Product\Price::PRICE_TYPE_DYNAMIC &&
-            $this->getFormatProduct()
-        ) {
+        if ($currentProduct->getPriceType() == Price::PRICE_TYPE_DYNAMIC && $this->getFormatProduct()) {
             $product = $this->getFormatProduct();
         } else {
             $product = $currentProduct;
@@ -316,9 +311,9 @@ class Option extends \Magento\Bundle\Block\Catalog\Product\Price
         $priceTax = $taxHelper->getPrice($product, $price);
         $priceIncTax = $taxHelper->getPrice($product, $price, true);
 
-        $formated = $coreHelper->currencyByStore($priceTax, $product->getStore(), true, $includeContainer);
+        $formatted = $coreHelper->currencyByStore($priceTax, $product->getStore(), true, $includeContainer);
         if ($taxHelper->displayBothPrices() && $priceTax != $priceIncTax) {
-            $formated .= ' (+' . $coreHelper->currencyByStore(
+            $formatted .= ' (+' . $coreHelper->currencyByStore(
                 $priceIncTax,
                 $product->getStore(),
                 true,
@@ -328,7 +323,7 @@ class Option extends \Magento\Bundle\Block\Catalog\Product\Price
             ) . ')';
         }
 
-        return $formated;
+        return $formatted;
     }
 
     /**
diff --git a/app/code/Magento/Bundle/Helper/Catalog/Product/Configuration.php b/app/code/Magento/Bundle/Helper/Catalog/Product/Configuration.php
index 214914552f33afdf725e78df79b97dfc8f00b475..b0a840fba4e192ffa1641159ce817190fc7febe8 100644
--- a/app/code/Magento/Bundle/Helper/Catalog/Product/Configuration.php
+++ b/app/code/Magento/Bundle/Helper/Catalog/Product/Configuration.php
@@ -25,31 +25,28 @@
  */
 namespace Magento\Bundle\Helper\Catalog\Product;
 
+use Magento\Catalog\Helper\Product\Configuration\ConfigurationInterface;
 use Magento\Catalog\Model\Product\Configuration\Item\ItemInterface;
+use Magento\Framework\App\Helper\AbstractHelper;
 
 /**
  * Helper for fetching properties by product configurational item
- *
- * @category   Magento
- * @package    Magento_Bundle
- * @author     Magento Core Team <core@magentocommerce.com>
  */
-class Configuration extends \Magento\Framework\App\Helper\AbstractHelper implements
-    \Magento\Catalog\Helper\Product\Configuration\ConfigurationInterface
+class Configuration extends AbstractHelper implements ConfigurationInterface
 {
     /**
      * Core data
      *
      * @var \Magento\Core\Helper\Data
      */
-    protected $_coreData = null;
+    protected $_coreData;
 
     /**
      * Catalog product configuration
      *
      * @var \Magento\Catalog\Helper\Product\Configuration
      */
-    protected $_ctlgProdConfigur = null;
+    protected $productConfiguration;
 
     /**
      * @var \Magento\Framework\Escaper
@@ -58,17 +55,17 @@ class Configuration extends \Magento\Framework\App\Helper\AbstractHelper impleme
 
     /**
      * @param \Magento\Framework\App\Helper\Context $context
-     * @param \Magento\Catalog\Helper\Product\Configuration $ctlgProdConfigur
+     * @param \Magento\Catalog\Helper\Product\Configuration $productConfiguration
      * @param \Magento\Core\Helper\Data $coreData
      * @param \Magento\Framework\Escaper $escaper
      */
     public function __construct(
         \Magento\Framework\App\Helper\Context $context,
-        \Magento\Catalog\Helper\Product\Configuration $ctlgProdConfigur,
+        \Magento\Catalog\Helper\Product\Configuration $productConfiguration,
         \Magento\Core\Helper\Data $coreData,
         \Magento\Framework\Escaper $escaper
     ) {
-        $this->_ctlgProdConfigur = $ctlgProdConfigur;
+        $this->productConfiguration = $productConfiguration;
         $this->_coreData = $coreData;
         $this->_escaper = $escaper;
         parent::__construct($context);
@@ -102,7 +99,9 @@ class Configuration extends \Magento\Framework\App\Helper\AbstractHelper impleme
     public function getSelectionFinalPrice(ItemInterface $item, $selectionProduct)
     {
         $selectionProduct->unsetData('final_price');
-        return $item->getProduct()->getPriceModel()->getSelectionFinalTotalPrice(
+        /** @var \Magento\Bundle\Model\Product\Price $priceModel */
+        $priceModel = $item->getProduct()->getPriceModel();
+        return $priceModel->getSelectionFinalTotalPrice(
             $item->getProduct(),
             $selectionProduct,
             $item->getQty() * 1,
@@ -126,18 +125,14 @@ class Configuration extends \Magento\Framework\App\Helper\AbstractHelper impleme
         $options = array();
         $product = $item->getProduct();
 
-        /**
-         * @var \Magento\Bundle\Model\Product\Type
-         */
+        /** @var \Magento\Bundle\Model\Product\Type $typeInstance */
         $typeInstance = $product->getTypeInstance();
 
         // get bundle options
         $optionsQuoteItemOption = $item->getOptionByCode('bundle_option_ids');
         $bundleOptionsIds = $optionsQuoteItemOption ? unserialize($optionsQuoteItemOption->getValue()) : array();
         if ($bundleOptionsIds) {
-            /**
-             * @var \Magento\Bundle\Model\Resource\Option\Collection
-             */
+            /** @var \Magento\Bundle\Model\Resource\Option\Collection $optionsCollection */
             $optionsCollection = $typeInstance->getOptionsByIds($bundleOptionsIds, $product);
 
             // get and add bundle selections collection
@@ -146,10 +141,7 @@ class Configuration extends \Magento\Framework\App\Helper\AbstractHelper impleme
             $bundleSelectionIds = unserialize($selectionsQuoteItemOption->getValue());
 
             if (!empty($bundleSelectionIds)) {
-                $selectionsCollection = $typeInstance->getSelectionsByIds(
-                    unserialize($selectionsQuoteItemOption->getValue()),
-                    $product
-                );
+                $selectionsCollection = $typeInstance->getSelectionsByIds($bundleSelectionIds, $product);
 
                 $bundleOptions = $optionsCollection->appendSelections($selectionsCollection, true);
                 foreach ($bundleOptions as $bundleOption) {
@@ -188,6 +180,9 @@ class Configuration extends \Magento\Framework\App\Helper\AbstractHelper impleme
      */
     public function getOptions(ItemInterface $item)
     {
-        return array_merge($this->getBundleOptions($item), $this->_ctlgProdConfigur->getCustomOptions($item));
+        return array_merge(
+            $this->getBundleOptions($item),
+            $this->productConfiguration->getCustomOptions($item)
+        );
     }
 }
diff --git a/app/code/Magento/Bundle/Model/Product/Type.php b/app/code/Magento/Bundle/Model/Product/Type.php
index fd7e030bd1ee2ab482cf3e92c71914cf539bac54..c920cd7b36be5c85295f89a9038f81e3d83f007b 100644
--- a/app/code/Magento/Bundle/Model/Product/Type.php
+++ b/app/code/Magento/Bundle/Model/Product/Type.php
@@ -27,10 +27,6 @@ namespace Magento\Bundle\Model\Product;
 
 /**
  * Bundle Type Model
- *
- * @category    Magento
- * @package     Magento_Bundle
- * @author      Magento Core Team <core@magentocommerce.com>
  */
 class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
 {
@@ -245,7 +241,7 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
     }
 
     /**
-     * Retrieve parent ids array by requered child
+     * Retrieve parent ids array by required child
      *
      * @param int|array $childId
      * @return array
@@ -369,17 +365,15 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
         if ($product->getCanSaveBundleSelections()) {
             $product->canAffectOptions(true);
             $selections = $product->getBundleSelectionsData();
-            if ($selections) {
-                if (!empty($selections)) {
-                    $options = $product->getBundleOptionsData();
-                    if ($options) {
-                        foreach ($options as $option) {
-                            if (empty($option['delete']) || 1 != (int)$option['delete']) {
-                                $product->setTypeHasOptions(true);
-                                if (1 == (int)$option['required']) {
-                                    $product->setTypeHasRequiredOptions(true);
-                                    break;
-                                }
+            if ($selections && !empty($selections)) {
+                $options = $product->getBundleOptionsData();
+                if ($options) {
+                    foreach ($options as $option) {
+                        if (empty($option['delete']) || 1 != (int) $option['delete']) {
+                            $product->setTypeHasOptions(true);
+                            if (1 == (int) $option['required']) {
+                                $product->setTypeHasRequiredOptions(true);
+                                break;
                             }
                         }
                     }
@@ -409,17 +403,13 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
                     unset($option['option_id']);
                 }
 
-                $optionModel = $this->_bundleOption->create()->setData(
-                    $option
-                )->setParentId(
-                    $product->getId()
-                )->setStoreId(
-                    $product->getStoreId()
-                );
+                $optionModel = $this->_bundleOption->create()
+                    ->setData($option)
+                    ->setParentId($product->getId())
+                    ->setStoreId($product->getStoreId());
 
-                $optionModel->isDeleted((bool)$option['delete']);
+                $optionModel->isDeleted((bool) $option['delete']);
                 $optionModel->save();
-
                 $options[$key]['option_id'] = $optionModel->getOptionId();
             }
 
@@ -429,7 +419,7 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
             $selections = $product->getBundleSelectionsData();
             if ($selections) {
                 foreach ($selections as $index => $group) {
-                    foreach ($group as $key => $selection) {
+                    foreach ($group as $selection) {
                         if (isset($selection['selection_id']) && $selection['selection_id'] == '') {
                             unset($selection['selection_id']);
                         }
@@ -438,17 +428,13 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
                             $selection['is_default'] = 0;
                         }
 
-                        $selectionModel = $this->_bundleModelSelection->create()->setData(
-                            $selection
-                        )->setOptionId(
-                            $options[$index]['option_id']
-                        )->setWebsiteId(
-                            $this->_storeManager->getStore($product->getStoreId())->getWebsiteId()
-                        )->setParentProductId(
-                            $product->getId()
-                        );
+                        $selectionModel = $this->_bundleModelSelection->create()
+                            ->setData($selection)
+                            ->setOptionId($options[$index]['option_id'])
+                            ->setWebsiteId($this->_storeManager->getStore($product->getStoreId())->getWebsiteId())
+                            ->setParentProductId($product->getId());
 
-                        $selectionModel->isDeleted((bool)$selection['delete']);
+                        $selectionModel->isDeleted((bool) $selection['delete']);
                         $selectionModel->save();
 
                         $selection['selection_id'] = $selectionModel->getSelectionId();
@@ -503,10 +489,10 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
     public function getOptionsCollection($product)
     {
         if (!$product->hasData($this->_keyOptionsCollection)) {
-            $optionsCollection = $this->_bundleOption->create()->getResourceCollection()->setProductIdFilter(
-                $product->getId()
-            )->setPositionOrder();
-
+            $optionsCollection = $this->_bundleOption->create()
+                ->getResourceCollection()
+                ->setProductIdFilter($product->getId())
+                ->setPositionOrder();
             $storeId = $this->getStoreFilter($product);
             if ($storeId instanceof \Magento\Store\Model\Store) {
                 $storeId = $storeId->getId();
@@ -531,23 +517,16 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
         $key = $this->_keySelectionsCollection . $keyOptionIds;
         if (!$product->hasData($key)) {
             $storeId = $product->getStoreId();
-            $selectionsCollection = $this->_bundleCollection->create()->addAttributeToSelect(
-                $this->_config->getProductAttributes()
-            )->addAttributeToSelect(
-                'tax_class_id'  //used for calculation item taxes in Bundle with Dynamic Price
-            )->setFlag(
-                'require_stock_items',
-                true
-            )->setFlag(
-                'product_children',
-                true
-            )->setPositionOrder()->addStoreFilter(
-                $this->getStoreFilter($product)
-            )->setStoreId(
-                $storeId
-            )->addFilterByRequiredOptions()->setOptionIdsFilter(
-                $optionIds
-            );
+            $selectionsCollection = $this->_bundleCollection->create()
+                ->addAttributeToSelect($this->_config->getProductAttributes())
+                ->addAttributeToSelect('tax_class_id')   //used for calculation item taxes in Bundle with Dynamic Price
+                ->setFlag('require_stock_items', true)
+                ->setFlag('product_children', true)
+                ->setPositionOrder()
+                ->addStoreFilter($this->getStoreFilter($product))
+                ->setStoreId($storeId)
+                ->addFilterByRequiredOptions()
+                ->setOptionIdsFilter($optionIds);
 
             if (!$this->_catalogData->isPriceGlobal() && $storeId) {
                 $websiteId = $this->_storeManager->getStore($storeId)->getWebsiteId();
@@ -562,7 +541,7 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
     /**
      * Method is needed for specific actions to change given quote options values
      * according current product type logic
-     * Example: the cataloginventory validation of decimal qty can change qty to int,
+     * Example: the catalog inventory validation of decimal qty can change qty to int,
      * so need to change quote item qty option value too.
      *
      * @param   array           $options
@@ -672,7 +651,7 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
         $isStrictProcessMode = $this->_isStrictProcessMode($processMode);
 
         $skipSaleableCheck = $this->_catalogProduct->getSkipSaleableCheck();
-        $_appendAllSelections = (bool)$product->getSkipCheckRequiredOption() || $skipSaleableCheck;
+        $_appendAllSelections = (bool) $product->getSkipCheckRequiredOption() || $skipSaleableCheck;
 
         $options = $buyRequest->getBundleOption();
         if (is_array($options)) {
@@ -700,15 +679,15 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
             }
             $selectionIds = array();
 
-            foreach ($options as $optionId => $selectionId) {
+            foreach ($options as $selectionId) {
                 if (!is_array($selectionId)) {
                     if ($selectionId != '') {
-                        $selectionIds[] = (int)$selectionId;
+                        $selectionIds[] = (int) $selectionId;
                     }
                 } else {
                     foreach ($selectionId as $id) {
                         if ($id != '') {
-                            $selectionIds[] = (int)$id;
+                            $selectionIds[] = (int) $id;
                         }
                     }
                 }
@@ -718,7 +697,7 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
                 $selections = $this->getSelectionsByIds($selectionIds, $product);
 
                 // Check if added selections are still on sale
-                foreach ($selections->getItems() as $key => $selection) {
+                foreach ($selections->getItems() as $selection) {
                     if (!$selection->isSalable() && !$skipSaleableCheck) {
                         $_option = $optionsCollection->getItemById($selection->getOptionId());
                         if (is_array($options[$_option->getId()]) && count($options[$_option->getId()]) > 1) {
@@ -745,12 +724,8 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
             $product->getTypeInstance()->setStoreFilter($product->getStoreId(), $product);
 
             $optionCollection = $product->getTypeInstance()->getOptionsCollection($product);
-
             $optionIds = $product->getTypeInstance()->getOptionsIds($product);
-            $selectionIds = array();
-
             $selectionCollection = $product->getTypeInstance()->getSelectionsCollection($optionIds, $product);
-
             $options = $optionCollection->appendSelections($selectionCollection, false, $_appendAllSelections);
 
             foreach ($options as $option) {
@@ -771,11 +746,11 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
 
             foreach ($selections as $selection) {
                 if ($selection->getSelectionCanChangeQty() && isset($qtys[$selection->getOptionId()])) {
-                    $qty = (double)$qtys[$selection->getOptionId()] > 0 ? $qtys[$selection->getOptionId()] : 1;
+                    $qty = (float) $qtys[$selection->getOptionId()] > 0 ? $qtys[$selection->getOptionId()] : 1;
                 } else {
-                    $qty = (double)$selection->getSelectionQty() ? $selection->getSelectionQty() : 1;
+                    $qty = (float) $selection->getSelectionQty() ? $selection->getSelectionQty() : 1;
                 }
-                $qty = (double)$qty;
+                $qty = (float) $qty;
 
                 $product->addCustomOption('selection_qty_' . $selection->getSelectionId(), $qty, $selection);
                 $selection->addCustomOption('selection_id', $selection->getSelectionId());
@@ -783,7 +758,7 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
                 $beforeQty = 0;
                 $customOption = $product->getCustomOption('product_qty_' . $selection->getId());
                 if ($customOption && $customOption->getProduct()->getId() == $selection->getId()) {
-                    $beforeQty = (double)$customOption->getValue();
+                    $beforeQty = (float) $customOption->getValue();
                 }
                 $product->addCustomOption('product_qty_' . $selection->getId(), $qty + $beforeQty, $selection);
 
@@ -808,15 +783,9 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
                     return __('We cannot add this item to your shopping cart.');
                 }
 
-                $result[] = $_result[0]->setParentProductId(
-                    $product->getId()
-                )->addCustomOption(
-                    'bundle_option_ids',
-                    serialize(array_map('intval', $optionIds))
-                )->addCustomOption(
-                    'bundle_selection_attributes',
-                    serialize($attributes)
-                );
+                $result[] = $_result[0]->setParentProductId($product->getId())
+                    ->addCustomOption('bundle_option_ids', serialize(array_map('intval', $optionIds)))
+                    ->addCustomOption('bundle_selection_attributes', serialize($attributes));
 
                 if ($isStrictProcessMode) {
                     $_result[0]->setCartQty($qty);
@@ -867,21 +836,16 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
 
         if (!$usedSelections || serialize($usedSelectionsIds) != serialize($selectionIds)) {
             $storeId = $product->getStoreId();
-            $usedSelections = $this->_bundleCollection->create()->addAttributeToSelect(
-                '*'
-            )->setFlag(
-                'require_stock_items',
-                true
-            )->setFlag(
-                'product_children',
-                true
-            )->addStoreFilter(
-                $this->getStoreFilter($product)
-            )->setStoreId(
-                $storeId
-            )->setPositionOrder()->addFilterByRequiredOptions()->setSelectionIdsFilter(
-                $selectionIds
-            );
+            $usedSelections = $this->_bundleCollection
+                ->create()
+                ->addAttributeToSelect('*')
+                ->setFlag('require_stock_items', true)
+                ->setFlag('product_children', true)
+                ->addStoreFilter($this->getStoreFilter($product))
+                ->setStoreId($storeId)
+                ->setPositionOrder()
+                ->addFilterByRequiredOptions()
+                ->setSelectionIdsFilter($selectionIds);
 
             if (!$this->_catalogData->isPriceGlobal() && $storeId) {
                 $websiteId = $this->_storeManager->getStore($storeId)->getWebsiteId();
@@ -908,13 +872,13 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
         $usedOptionsIds = $product->getData($this->_keyUsedOptionsIds);
 
         if (!$usedOptions || serialize($usedOptionsIds) != serialize($optionIds)) {
-            $usedOptions = $this->_bundleOption->create()->getResourceCollection()->setProductIdFilter(
-                $product->getId()
-            )->setPositionOrder()->joinValues(
-                $this->_storeManager->getStore()->getId()
-            )->setIdFilter(
-                $optionIds
-            );
+            $usedOptions = $this->_bundleOption
+                ->create()
+                ->getResourceCollection()
+                ->setProductIdFilter($product->getId())
+                ->setPositionOrder()
+                ->joinValues($this->_storeManager->getStore()->getId())
+                ->setIdFilter($optionIds);
             $product->setData($this->_keyUsedOptions, $usedOptions);
             $product->setData($this->_keyUsedOptionsIds, $optionIds);
         }
@@ -990,14 +954,24 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
      * Sort selections method for usort function
      * Sort selections by option position, selection position and selection id
      *
-     * @param  \Magento\Catalog\Model\Product $a
-     * @param  \Magento\Catalog\Model\Product $b
+     * @param  \Magento\Catalog\Model\Product $firstItem
+     * @param  \Magento\Catalog\Model\Product $secondItem
      * @return int
      */
-    public function shakeSelections($a, $b)
+    public function shakeSelections($firstItem, $secondItem)
     {
-        $aPosition = array($a->getOption()->getPosition(), $a->getOptionId(), $a->getPosition(), $a->getSelectionId());
-        $bPosition = array($b->getOption()->getPosition(), $b->getOptionId(), $b->getPosition(), $b->getSelectionId());
+        $aPosition = array(
+            $firstItem->getOption()->getPosition(),
+            $firstItem->getOptionId(),
+            $firstItem->getPosition(),
+            $firstItem->getSelectionId()
+        );
+        $bPosition = array(
+            $secondItem->getOption()->getPosition(),
+            $secondItem->getOptionId(),
+            $secondItem->getPosition(),
+            $secondItem->getSelectionId()
+        );
         if ($aPosition == $bPosition) {
             return 0;
         } else {
@@ -1025,7 +999,7 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
     }
 
     /**
-     * Allow for updates of chidren qty's
+     * Allow for updates of children qty's
      *
      * @param \Magento\Catalog\Model\Product $product
      * @return boolean true
diff --git a/app/code/Magento/Bundle/Model/Resource/Option/Collection.php b/app/code/Magento/Bundle/Model/Resource/Option/Collection.php
index ce0c4a11240dde27f1174ee6b4ee85c05947ff53..05637f454e8320de7da45fd6ca8cc9fe92c2aa60 100644
--- a/app/code/Magento/Bundle/Model/Resource/Option/Collection.php
+++ b/app/code/Magento/Bundle/Model/Resource/Option/Collection.php
@@ -171,7 +171,7 @@ class Collection extends \Magento\Framework\Model\Resource\Db\Collection\Abstrac
     {
         if (is_array($ids)) {
             $this->addFieldToFilter('main_table.option_id', array('in' => $ids));
-        } else if ($ids != '') {
+        } elseif ($ids != '') {
             $this->addFieldToFilter('main_table.option_id', $ids);
         }
         return $this;
diff --git a/app/code/Magento/Bundle/Pricing/Adjustment/BundleCalculatorInterface.php b/app/code/Magento/Bundle/Pricing/Adjustment/BundleCalculatorInterface.php
index 9e9923493f5dfb9c7dce6df67683327d749e77bf..0c24bb0aee716af757fbb51a237be22c622f61b7 100644
--- a/app/code/Magento/Bundle/Pricing/Adjustment/BundleCalculatorInterface.php
+++ b/app/code/Magento/Bundle/Pricing/Adjustment/BundleCalculatorInterface.php
@@ -24,7 +24,7 @@
 
 namespace Magento\Bundle\Pricing\Adjustment;
 
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Catalog\Model\Product;
 use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
 
 /**
@@ -34,9 +34,55 @@ interface BundleCalculatorInterface extends CalculatorInterface
 {
     /**
      * @param float|string $amount
-     * @param SaleableInterface $saleableItem
+     * @param Product $saleableItem
      * @param null|bool $exclude
      * @return \Magento\Framework\Pricing\Amount\AmountInterface
      */
-    public function getMaxAmount($amount, SaleableInterface $saleableItem, $exclude = null);
+    public function getMaxAmount($amount, Product $saleableItem, $exclude = null);
+
+    /**
+     * Option amount calculation for saleable item
+     *
+     * @param Product $saleableItem
+     * @param null|string $exclude
+     * @param bool $searchMin
+     * @param \Magento\Framework\Pricing\Amount\AmountInterface|null $bundleProductAmount
+     * @return \Magento\Framework\Pricing\Amount\AmountInterface
+     */
+    public function getOptionsAmount(
+        Product $saleableItem,
+        $exclude = null,
+        $searchMin = true,
+        $bundleProductAmount = null
+    );
+
+    /**
+     * Calculate amount for bundle product with all selection prices
+     *
+     * @param float $basePriceValue
+     * @param Product $bundleProduct
+     * @param \Magento\Bundle\Pricing\Price\BundleSelectionPrice[] $selectionPriceList
+     * @param null|string $exclude code of adjustment that has to be excluded
+     * @return \Magento\Framework\Pricing\Amount\AmountInterface
+     */
+    public function calculateBundleAmount($basePriceValue, $bundleProduct, $selectionPriceList, $exclude = null);
+
+    /**
+     * Create selection price list for the retrieved options
+     *
+     * @param \Magento\Bundle\Model\Option $option
+     * @param Product $bundleProduct
+     * @return \Magento\Bundle\Pricing\Price\BundleSelectionPrice[]
+     */
+    public function createSelectionPriceList($option, $bundleProduct);
+
+    /**
+     * Find minimal or maximal price for existing options
+     *
+     * @param \Magento\Bundle\Model\Option $option
+     * @param \Magento\Bundle\Pricing\Price\BundleSelectionPrice[] $selectionPriceList
+     * @param bool $searchMin
+     * @return \Magento\Bundle\Pricing\Price\BundleSelectionPrice[]
+     */
+    public function processOptions($option, $selectionPriceList, $searchMin = true);
 }
diff --git a/app/code/Magento/Bundle/Pricing/Adjustment/Calculator.php b/app/code/Magento/Bundle/Pricing/Adjustment/Calculator.php
index a018f1a33d2e9d7f8033af867291dec527d9462c..0c32a23043f7aabb6ff8d2e971ade43e57ccf0c3 100644
--- a/app/code/Magento/Bundle/Pricing/Adjustment/Calculator.php
+++ b/app/code/Magento/Bundle/Pricing/Adjustment/Calculator.php
@@ -24,12 +24,12 @@
 
 namespace Magento\Bundle\Pricing\Adjustment;
 
+use Magento\Catalog\Model\Product;
 use Magento\Framework\Pricing\Object\SaleableInterface;
 use Magento\Framework\Pricing\Amount\AmountFactory;
+use Magento\Bundle\Pricing\Price\BundleSelectionFactory;
 use Magento\Framework\Pricing\Adjustment\Calculator as CalculatorBase;
 use Magento\Bundle\Model\Product\Price;
-use Magento\Bundle\Pricing\Price\BundleOptionPriceInterface;
-use Magento\Bundle\Pricing\Price\BundleSelectionFactory;
 use Magento\Bundle\Pricing\Price\BundleOptionPrice;
 
 /**
@@ -56,6 +56,7 @@ class Calculator implements BundleCalculatorInterface
      * @param CalculatorBase $calculator
      * @param AmountFactory $amountFactory
      * @param BundleSelectionFactory $bundleSelectionFactory
+     * @return Calculator
      */
     public function __construct(
         CalculatorBase $calculator,
@@ -77,147 +78,243 @@ class Calculator implements BundleCalculatorInterface
      */
     public function getAmount($amount, SaleableInterface $saleableItem, $exclude = null)
     {
-        return $this->getOptionsAmount($amount, $saleableItem, $exclude, true);
+        return $this->getOptionsAmount($saleableItem, $exclude, true, $amount);
     }
 
     /**
      * Get amount for current product which is included price of existing options with maximal price
      *
      * @param float $amount
-     * @param SaleableInterface $saleableItem
-     * @param null $exclude
+     * @param Product $saleableItem
+     * @param null|string $exclude
      * @return \Magento\Framework\Pricing\Amount\AmountInterface
      */
-    public function getMaxAmount($amount, SaleableInterface $saleableItem, $exclude = null)
+    public function getMaxAmount($amount, Product $saleableItem, $exclude = null)
     {
-        return $this->getOptionsAmount($amount, $saleableItem, $exclude, false);
+        return $this->getOptionsAmount($saleableItem, $exclude, false, $amount);
     }
 
     /**
-     * Base calculation of amount for saleable item
+     * Option amount calculation for bundle product
      *
-     * @param float $amount
-     * @param SaleableInterface $saleableItem
+     * @param Product $saleableItem
      * @param null|string $exclude
      * @param bool $searchMin
+     * @param float $baseAmount
      * @return \Magento\Framework\Pricing\Amount\AmountInterface
      */
-    protected function getOptionsAmount($amount, SaleableInterface $saleableItem, $exclude = null, $searchMin = true)
+    public function getOptionsAmount(
+        Product $saleableItem,
+        $exclude = null,
+        $searchMin = true,
+        $baseAmount = 0.
+    ) {
+        return $this->calculateBundleAmount(
+            $baseAmount,
+            $saleableItem,
+            $this->getSelectionAmounts($saleableItem, $searchMin),
+            $exclude
+        );
+    }
+
+    /**
+     * Filter all options for bundle product
+     *
+     * @param Product $bundleProduct
+     * @param bool $searchMin
+     * @return array
+     */
+    protected function getSelectionAmounts(Product $bundleProduct, $searchMin)
     {
-        $fullAmount = 0.;
-        $adjustments = [];
-        // Get amount for bundle product
-        $amountList[] = $this->calculator->getAmount($amount, $saleableItem);
+        // Flag shows - is it necessary to find minimal option amount in case if all options are not required
+        $shouldFindMinOption = false;
+        if ($searchMin
+            && $bundleProduct->getPriceType() == Price::PRICE_TYPE_DYNAMIC
+            && !$this->hasRequiredOption($bundleProduct)
+        ) {
+            $shouldFindMinOption = true;
+        }
+        $canSkipRequiredOptions = $searchMin && !$shouldFindMinOption;
 
-        $minOptionAmount = null;
-        /* @var $option \Magento\Bundle\Model\Option */
-        foreach ($this->getBundleOptionPrice($saleableItem)->getOptions() as $option) {
-            if (!$option->getSelections()) {
+        $currentPrice = false;
+        $priceList = [];
+        foreach ($this->getBundleOptions($bundleProduct) as $option) {
+            if ($this->canSkipOption($option, $canSkipRequiredOptions)) {
                 continue;
             }
-            // Add amounts for custom options
-            $optionsAmounts = $this->processOptions($option, $saleableItem, $searchMin);
-            if ($searchMin
-                && ($minOptionAmount === null || end($optionsAmounts)->getValue() < $minOptionAmount->getValue())
+            $selectionPriceList = $this->createSelectionPriceList($option, $bundleProduct);
+            $selectionPriceList = $this->processOptions($option, $selectionPriceList, $searchMin);
+
+            $lastValue = end($selectionPriceList)->getAmount()->getValue();
+            if ($shouldFindMinOption
+                && (!$currentPrice || $lastValue < $currentPrice->getAmount()->getValue())
             ) {
-                $minOptionAmount = end($optionsAmounts);
-            } elseif (!$searchMin) {
-                $amountList = array_merge($amountList, $optionsAmounts);
+                $currentPrice = end($selectionPriceList);
+            } elseif (!$shouldFindMinOption) {
+                $priceList = array_merge($priceList, $selectionPriceList);
             }
         }
+        return $shouldFindMinOption ? [$currentPrice] : $priceList;
+    }
 
-        if ($searchMin && $minOptionAmount) {
-            $amountList[] = $minOptionAmount;
-        }
+    /**
+     * Check this option if it should be skipped
+     *
+     * @param \Magento\Bundle\Model\Option $option
+     * @param bool $canSkipRequiredOption
+     * @return bool
+     */
+    protected function canSkipOption($option, $canSkipRequiredOption)
+    {
+        return !$option->getSelections() || ($canSkipRequiredOption && !$option->getRequired());
+    }
 
-        /** @var \Magento\Framework\Pricing\Amount\AmountInterface $itemAmount */
-        foreach ($amountList as $itemAmount) {
-            $fullAmount += $itemAmount->getValue();
-            foreach ($itemAmount->getAdjustmentAmounts() as $code => $adjustment) {
-                if ($exclude === null || $exclude !== $code) {
-                    $adjustments[$code] = isset($adjustments[$code]) ? $adjustments[$code] + $adjustment : $adjustment;
-                }
+    /**
+     * Check the bundle product for availability of required options
+     *
+     * @param Product $bundleProduct
+     * @return bool
+     */
+    protected function hasRequiredOption($bundleProduct)
+    {
+        $options = array_filter(
+            $this->getBundleOptions($bundleProduct),
+            function ($item) {
+                return $item->getRequired();
             }
-        }
-        return $this->amountFactory->create($fullAmount, $adjustments);
+        );
+        return !empty($options);
     }
 
     /**
-     * @param SaleableInterface $saleableItem
-     * @return BundleOptionPrice
+     * Get bundle options
+     *
+     * @param Product $saleableItem
+     * @return \Magento\Bundle\Model\Resource\Option\Collection
      */
-    protected function getBundleOptionPrice(SaleableInterface $saleableItem)
+    protected function getBundleOptions(Product $saleableItem)
     {
-        return $saleableItem->getPriceInfo()->getPrice(BundleOptionPriceInterface::PRICE_TYPE_BUNDLE_OPTION);
+        /** @var BundleOptionPrice $bundlePrice */
+        $bundlePrice = $saleableItem->getPriceInfo()->getPrice(BundleOptionPrice::PRICE_CODE);
+        return $bundlePrice->getOptions();
     }
 
     /**
-     * @param \Magento\Bundle\Model\Option $option
-     * @param SaleableInterface $saleableItem
-     * @param bool $searchMin
-     * @return \Magento\Framework\Pricing\Amount\AmountInterface[]
+     * Calculate amount for bundle product with all selection prices
+     *
+     * @param float $basePriceValue
+     * @param Product $bundleProduct
+     * @param \Magento\Bundle\Pricing\Price\BundleSelectionPrice[] $selectionPriceList
+     * @param null|string $exclude
+     * @return \Magento\Framework\Pricing\Amount\AmountInterface
      */
-    protected function processOptions($option, $saleableItem, $searchMin = true)
+    public function calculateBundleAmount($basePriceValue, $bundleProduct, $selectionPriceList, $exclude = null)
     {
-        $result = [];
-        foreach ($option->getSelections() as $selection) {
-            /* @var $selection \Magento\Bundle\Model\Selection|\Magento\Catalog\Model\Product */
-            if (!$selection->isSalable()/* || ($searchMin && !$option->getRequired())*/) {
-                // @todo CatalogInventory Show out of stock Products
-                continue;
-            }
-            $current = $this->getSelection($selection, $saleableItem);
-            if (empty($result)) {
-                $result = [$current];
-                continue;
-            }
-            if ($searchMin && end($result)->getValue() > $current->getValue()) {
-                $result = [$current];
-            } elseif (!$searchMin && $option->isMultiSelection()) {
-                $result[] = $current;
-            } elseif (!$searchMin && !$option->isMultiSelection() && end($result)->getValue() < $current->getValue()) {
-                $result = [$current];
-            }
+        if ($bundleProduct->getPriceType() == Price::PRICE_TYPE_FIXED) {
+            return $this->calculateFixedBundleAmount($basePriceValue, $bundleProduct, $selectionPriceList, $exclude);
+        } else {
+            return $this->calculateDynamicBundleAmount($basePriceValue, $bundleProduct, $selectionPriceList, $exclude);
         }
-        return $result;
     }
 
     /**
-     * @param \Magento\Bundle\Model\Selection $selection
-     * @param SaleableInterface $saleableItem
+     * Calculate amount for fixed bundle product
+     *
+     * @param float $basePriceValue
+     * @param Product $bundleProduct
+     * @param \Magento\Bundle\Pricing\Price\BundleSelectionPrice[] $selectionPriceList
+     * @param null|string $exclude
      * @return \Magento\Framework\Pricing\Amount\AmountInterface
      */
-    protected function getSelection($selection, $saleableItem)
+    protected function calculateFixedBundleAmount($basePriceValue, $bundleProduct, $selectionPriceList, $exclude)
     {
-        if ($saleableItem->getPriceType() == Price::PRICE_TYPE_FIXED) {
-            return $this->createFixedAmount($selection, $saleableItem);
-        } else {
-            return $this->createDynamicAmount($selection, $saleableItem);
+        $fullAmount = $basePriceValue;
+        /** @var $option \Magento\Bundle\Model\Option */
+        foreach ($selectionPriceList as $selectionPrice) {
+            $fullAmount += $selectionPrice->getValue();
         }
+        return $this->calculator->getAmount($fullAmount, $bundleProduct, $exclude);
     }
 
     /**
-     * @param \Magento\Bundle\Model\Selection $selection
-     * @param SaleableInterface $saleableItem
+     * Calculate amount for dynamic bundle product
+     *
+     * @param float $basePriceValue
+     * @param Product $bundleProduct
+     * @param \Magento\Bundle\Pricing\Price\BundleSelectionPrice[] $selectionPriceList
+     * @param null|string $exclude
      * @return \Magento\Framework\Pricing\Amount\AmountInterface
      */
-    protected function createDynamicAmount($selection, $saleableItem)
+    protected function calculateDynamicBundleAmount($basePriceValue, $bundleProduct, $selectionPriceList, $exclude)
     {
-        /** @var \Magento\Bundle\Pricing\Price\BundleSelectionPrice $price */
-        $price = $this->selectionFactory->create($saleableItem, $selection, $selection->getSelectionQty());
-        return $price->getAmount();
+        $fullAmount = 0.;
+        $adjustments = [];
+        $amountList = [$this->calculator->getAmount($basePriceValue, $bundleProduct, $exclude)];
+        /** @var $option \Magento\Bundle\Model\Option */
+        foreach ($selectionPriceList as $selectionPrice) {
+            $amountList[] = $selectionPrice->getAmount();
+        }
+        /** @var \Magento\Framework\Pricing\Amount\AmountInterface $itemAmount */
+        foreach ($amountList as $itemAmount) {
+            $fullAmount += $itemAmount->getValue();
+            foreach ($itemAmount->getAdjustmentAmounts() as $code => $adjustment) {
+                $adjustments[$code] = isset($adjustments[$code]) ? $adjustments[$code] + $adjustment : $adjustment;
+            }
+        }
+        if ($exclude && isset($adjustments[$exclude])) {
+            $fullAmount -= $adjustments[$exclude];
+            unset($adjustments[$exclude]);
+        }
+        return $this->amountFactory->create($fullAmount, $adjustments);
     }
 
     /**
-     * @param \Magento\Bundle\Model\Selection $selection
-     * @param SaleableInterface $saleableItem
-     * @return \Magento\Framework\Pricing\Amount\AmountInterface
+     * Create selection price list for the retrieved options
+     *
+     * @param \Magento\Bundle\Model\Option $option
+     * @param Product $bundleProduct
+     * @return \Magento\Bundle\Pricing\Price\BundleSelectionPrice[]
+     */
+    public function createSelectionPriceList($option, $bundleProduct)
+    {
+        $priceList = [];
+        /* @var $selection \Magento\Bundle\Model\Selection|\Magento\Catalog\Model\Product */
+        foreach ($option->getSelections() as $selection) {
+            if (!$selection->isSalable()) {
+                // @todo CatalogInventory Show out of stock Products
+                continue;
+            }
+            $priceList[] = $this->selectionFactory->create($bundleProduct, $selection, $selection->getSelectionQty());
+        }
+        return $priceList;
+    }
+
+    /**
+     * Find minimal or maximal price for existing options
+     *
+     * @param \Magento\Bundle\Model\Option $option
+     * @param \Magento\Bundle\Pricing\Price\BundleSelectionPrice[] $selectionPriceList
+     * @param bool $searchMin
+     * @return \Magento\Bundle\Pricing\Price\BundleSelectionPrice[]
      */
-    protected function createFixedAmount($selection, $saleableItem)
+    public function processOptions($option, $selectionPriceList, $searchMin = true)
     {
-        $selectionPrice = $this->selectionFactory
-            ->create($saleableItem, $selection, $selection->getSelectionQty())
-            ->getValue();
-        return $this->calculator->getAmount($selectionPrice, $saleableItem);
+        $result = [];
+        foreach ($selectionPriceList as $current) {
+            $currentValue = $current->getAmount()->getValue();
+            if (empty($result)) {
+                $result = [$current];
+            } elseif ($searchMin && end($result)->getAmount()->getValue() > $currentValue) {
+                $result = [$current];
+            } elseif (!$searchMin && $option->isMultiSelection()) {
+                $result[] = $current;
+            } elseif (!$searchMin
+                && !$option->isMultiSelection()
+                && end($result)->getAmount()->getValue() < $currentValue
+            ) {
+                $result = [$current];
+            }
+        }
+        return $result;
     }
 }
diff --git a/app/code/Magento/Bundle/Pricing/Price/BasePrice.php b/app/code/Magento/Bundle/Pricing/Price/BasePrice.php
index bcef83dff1f1344936291b9cd11028f9422b70da..28df06a393d01d27f943c6ce0c4936c3a9e7f97b 100644
--- a/app/code/Magento/Bundle/Pricing/Price/BasePrice.php
+++ b/app/code/Magento/Bundle/Pricing/Price/BasePrice.php
@@ -29,7 +29,7 @@ use Magento\Catalog\Pricing\Price as CatalogPrice;
 /**
  * Bundle Base Price model
  */
-class BasePrice extends CatalogPrice\BasePrice
+class BasePrice extends CatalogPrice\BasePrice implements BasePriceInterface
 {
     /**
      * Get Base Price Value
@@ -39,30 +39,24 @@ class BasePrice extends CatalogPrice\BasePrice
     public function getValue()
     {
         if ($this->value === null) {
-            $this->value = $this->applyDiscount(parent::getValue());
+            $this->value = $this->calculateBaseValue(parent::getValue());
         }
         return $this->value;
     }
 
     /**
-     * Apply discount type prices
+     * Calculate base price for passed regular one
      *
      * @param float $price
      * @return float
      */
-    public function applyDiscount($price)
+    public function calculateBaseValue($price)
     {
         $discount = [
             0,
-            $this->priceInfo
-                ->getPrice(CatalogPrice\TierPriceInterface::PRICE_TYPE_TIER, $this->quantity)
-                ->getValue(),
-            $this->priceInfo
-                ->getPrice(CatalogPrice\GroupPriceInterface::PRICE_TYPE_GROUP, $this->quantity)
-                ->getValue(),
-            $this->priceInfo
-                ->getPrice(CatalogPrice\SpecialPriceInterface::PRICE_TYPE_SPECIAL, $this->quantity)
-                ->getValue()
+            $this->priceInfo->getPrice(CatalogPrice\TierPrice::PRICE_CODE, $this->quantity)->getValue(),
+            $this->priceInfo->getPrice(CatalogPrice\GroupPrice::PRICE_CODE, $this->quantity)->getValue(),
+            $this->priceInfo->getPrice(CatalogPrice\SpecialPrice::PRICE_CODE, $this->quantity)->getValue()
         ];
         $discount = max($discount);
         if ($discount) {
diff --git a/app/code/Magento/Bundle/Pricing/Price/BundleSelectionPriceInterface.php b/app/code/Magento/Bundle/Pricing/Price/BasePriceInterface.php
similarity index 82%
rename from app/code/Magento/Bundle/Pricing/Price/BundleSelectionPriceInterface.php
rename to app/code/Magento/Bundle/Pricing/Price/BasePriceInterface.php
index 020f94061f210202d2f6924f15f895a5aa201811..0ba4fa0f70bcced0c1269919b4e82ed0ac8f4f36 100644
--- a/app/code/Magento/Bundle/Pricing/Price/BundleSelectionPriceInterface.php
+++ b/app/code/Magento/Bundle/Pricing/Price/BasePriceInterface.php
@@ -21,15 +21,19 @@
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
+
 namespace Magento\Bundle\Pricing\Price;
 
 /**
- * Bundle selection price interface
+ * Bundle base price interface
  */
-interface BundleSelectionPriceInterface
+interface BasePriceInterface
 {
     /**
-     * Price model code
+     * Calculate base price for passed regular one
+     *
+     * @param float $price
+     * @return float
      */
-    const PRICE_TYPE_BUNDLE_SELECTION = 'bundle_selection';
+    public function calculateBaseValue($price);
 }
diff --git a/app/code/Magento/Bundle/Pricing/Price/BundleOptionPrice.php b/app/code/Magento/Bundle/Pricing/Price/BundleOptionPrice.php
index 9c77ef6aaf90589bdc59a58b8d0b2f7486b8df15..5cecd761e8c9a6d18bab8c8eda85aa988c56fe91 100644
--- a/app/code/Magento/Bundle/Pricing/Price/BundleOptionPrice.php
+++ b/app/code/Magento/Bundle/Pricing/Price/BundleOptionPrice.php
@@ -23,24 +23,24 @@
  */
 namespace Magento\Bundle\Pricing\Price;
 
-use Magento\Catalog\Pricing\Price\RegularPrice;
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Framework\Pricing\Price\AbstractPrice;
 use Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface;
+use Magento\Catalog\Model\Product;
 
 /**
  * Bundle option price model
  */
-class BundleOptionPrice extends RegularPrice implements BundleOptionPriceInterface
+class BundleOptionPrice extends AbstractPrice implements BundleOptionPriceInterface
 {
     /**
-     * @var string
+     * Price model code
      */
-    protected $priceType = self::PRICE_TYPE_BUNDLE_OPTION;
+    const PRICE_CODE = 'bundle_option';
 
     /**
-     * @var array
+     * @var BundleCalculatorInterface
      */
-    protected $priceOptions;
+    protected $calculator;
 
     /**
      * @var BundleSelectionFactory
@@ -53,20 +53,20 @@ class BundleOptionPrice extends RegularPrice implements BundleOptionPriceInterfa
     protected $maximalPrice;
 
     /**
-     * @param SaleableInterface $salableItem
+     * @param Product $saleableItem
      * @param float $quantity
      * @param BundleCalculatorInterface $calculator
      * @param BundleSelectionFactory $bundleSelectionFactory
      */
     public function __construct(
-        SaleableInterface $salableItem,
+        Product $saleableItem,
         $quantity,
         BundleCalculatorInterface $calculator,
         BundleSelectionFactory $bundleSelectionFactory
     ) {
         $this->selectionFactory = $bundleSelectionFactory;
-        parent::__construct($salableItem, $quantity, $calculator);
-        $this->salableItem->setQty($this->quantity);
+        parent::__construct($saleableItem, $quantity, $calculator);
+        $this->product->setQty($this->quantity);
     }
 
     /**
@@ -80,6 +80,19 @@ class BundleOptionPrice extends RegularPrice implements BundleOptionPriceInterfa
         return $this->value;
     }
 
+    /**
+     * Getter for maximal price of options
+     *
+     * @return bool|float
+     */
+    public function getMaxValue()
+    {
+        if (null === $this->maximalPrice) {
+            $this->maximalPrice = $this->calculateOptions(false);
+        }
+        return $this->maximalPrice;
+    }
+
     /**
      * Get Options with attached Selections collection
      *
@@ -87,112 +100,64 @@ class BundleOptionPrice extends RegularPrice implements BundleOptionPriceInterfa
      */
     public function getOptions()
     {
-        if (null !== $this->priceOptions) {
-            return $this->priceOptions;
-        }
-        $this->salableItem->getTypeInstance()->setStoreFilter($this->salableItem->getStoreId(), $this->salableItem);
+        $bundleProduct = $this->product;
+        /** @var \Magento\Bundle\Model\Product\Type $typeInstance */
+        $typeInstance = $bundleProduct->getTypeInstance();
+        $typeInstance->setStoreFilter($bundleProduct->getStoreId(), $bundleProduct);
 
-        $optionCollection = $this->salableItem->getTypeInstance()->getOptionsCollection($this->salableItem);
+        /** @var \Magento\Bundle\Model\Resource\Option\Collection $optionCollection */
+        $optionCollection = $typeInstance->getOptionsCollection($bundleProduct);
 
-        $selectionCollection = $this->salableItem->getTypeInstance()->getSelectionsCollection(
-            $this->salableItem->getTypeInstance()->getOptionsIds($this->salableItem),
-            $this->salableItem
+        $selectionCollection = $typeInstance->getSelectionsCollection(
+            $typeInstance->getOptionsIds($bundleProduct),
+            $bundleProduct
         );
 
-        $this->priceOptions = $optionCollection->appendSelections($selectionCollection, false, false);
-        return $this->priceOptions;
+        $priceOptions = $optionCollection->appendSelections($selectionCollection, false, false);
+        return $priceOptions;
     }
 
     /**
+     * Get selection amount
+     *
      * @param \Magento\Bundle\Model\Selection $selection
      * @return \Magento\Framework\Pricing\Amount\AmountInterface
      */
     public function getOptionSelectionAmount($selection)
     {
-        return $this->createSelection($selection)->getAmount();
-    }
-
-    /**
-     * @param \Magento\Bundle\Model\Selection $selection
-     * @return \Magento\Bundle\Pricing\Price\BundleSelectionPriceInterface
-     */
-    protected function createSelection($selection)
-    {
-        return $this->selectionFactory->create($this->salableItem, $selection, $selection->getSelectionQty());
+        $selectionPrice = $this->selectionFactory->create($this->product, $selection, $selection->getSelectionQty());
+        return $selectionPrice->getAmount();
     }
 
     /**
+     * Calculate maximal or minimal options value
+     *
      * @param bool $searchMin
      * @return bool|float
      */
     protected function calculateOptions($searchMin = true)
     {
-        $price = false;
-        $amountList = [];
+        $priceList = [];
         /* @var $option \Magento\Bundle\Model\Option */
         foreach ($this->getOptions() as $option) {
-            if (!$option->getSelections()) {
-                continue;
-            }
-            $amountList = array_merge($amountList, $this->processOptions($option, $searchMin));
-        }
-        if (!empty($amountList)) {
-            $price = 0.;
-            foreach ($amountList as $itemAmount) {
-                $price += $itemAmount->getValue();
-            }
-        }
-        return $price;
-    }
-
-    /**
-     * @param \Magento\Bundle\Model\Option $option
-     * @param bool $searchMin
-     * @return \Magento\Framework\Pricing\Amount\AmountInterface[]
-     */
-    protected function processOptions($option, $searchMin = true)
-    {
-        $result = [];
-        foreach ($option->getSelections() as $selection) {
-            /* @var $selection \Magento\Bundle\Model\Selection */
-            if (!$selection->isSalable() || ($searchMin && !$option->getRequired())) {
-                // @todo CatalogInventory Show out of stock Products
+            if ($searchMin && !$option->getRequired()) {
                 continue;
             }
-            $current = $this->createSelection($selection);
-            if (empty($result)) {
-                $result = [$current];
-                continue;
-            }
-            if ($searchMin && end($result)->getValue() > $current->getValue()) {
-                $result = [$current];
-            } elseif (!$searchMin && $option->isMultiSelection()) {
-                $result[] = $current;
-            } elseif (!$searchMin && !$option->isMultiSelection() && end($result)->getValue() < $current->getValue()) {
-                $result = [$current];
-            }
+            $selectionPriceList = $this->calculator->createSelectionPriceList($option, $this->product);
+            $selectionPriceList = $this->calculator->processOptions($option, $selectionPriceList, $searchMin);
+            $priceList = array_merge($priceList, $selectionPriceList);
         }
-        return $result;
+        $amount = $this->calculator->calculateBundleAmount(0., $this->product, $priceList);
+        return $amount->getValue();
     }
 
     /**
-     * Getter for maximal price of options
+     * Get minimal amount of bundle price with options
      *
-     * @return bool|float
-     */
-    public function getMaxValue()
-    {
-        if (null === $this->maximalPrice) {
-            $this->maximalPrice = $this->calculateOptions(false);
-        }
-        return $this->maximalPrice;
-    }
-
-    /**
      * @return \Magento\Framework\Pricing\Amount\AmountInterface
      */
     public function getAmount()
     {
-        return $this->calculator->getAmount(0, $this->salableItem);
+        return $this->calculator->getOptionsAmount($this->product);
     }
 }
diff --git a/app/code/Magento/Bundle/Pricing/Price/BundleOptionPriceInterface.php b/app/code/Magento/Bundle/Pricing/Price/BundleOptionPriceInterface.php
index 735d2a5345b526670e4f5e9f9f7ad1bbea2734ba..1ebfaf97606577919f9b761c6a880bea7ef3725e 100644
--- a/app/code/Magento/Bundle/Pricing/Price/BundleOptionPriceInterface.php
+++ b/app/code/Magento/Bundle/Pricing/Price/BundleOptionPriceInterface.php
@@ -28,11 +28,6 @@ namespace Magento\Bundle\Pricing\Price;
  */
 interface BundleOptionPriceInterface
 {
-    /**
-     * Price model code
-     */
-    const PRICE_TYPE_BUNDLE_OPTION = 'bundle_option';
-
     /**
      * Return calculated options
      *
diff --git a/app/code/Magento/Bundle/Pricing/Price/BundleSelectionFactory.php b/app/code/Magento/Bundle/Pricing/Price/BundleSelectionFactory.php
index 34312009cc27bade0c925ee84f089220afeb680a..473cd58d3cf94a61c4b76ec7518435d49d89756c 100644
--- a/app/code/Magento/Bundle/Pricing/Price/BundleSelectionFactory.php
+++ b/app/code/Magento/Bundle/Pricing/Price/BundleSelectionFactory.php
@@ -24,7 +24,7 @@
 
 namespace Magento\Bundle\Pricing\Price;
 
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Catalog\Model\Product;
 
 /**
  * Bundle selection price factory
@@ -34,7 +34,7 @@ class BundleSelectionFactory
     /**
      * Default selection class
      */
-    const SELECTION_CLASS_DEFAULT = 'Magento\Bundle\Pricing\Price\BundleSelectionPriceInterface';
+    const SELECTION_CLASS_DEFAULT = 'Magento\Bundle\Pricing\Price\BundleSelectionPrice';
 
     /**
      * Object Manager
@@ -56,26 +56,26 @@ class BundleSelectionFactory
     /**
      * Create Price object for particular product
      *
-     * @param SaleableInterface $bundleProduct
-     * @param SaleableInterface $selection
+     * @param Product $bundleProduct
+     * @param Product $selection
      * @param float $quantity
      * @param array $arguments
      * @throws \InvalidArgumentException
-     * @return BundleSelectionPriceInterface
+     * @return BundleSelectionPrice
      */
     public function create(
-        SaleableInterface $bundleProduct,
-        SaleableInterface $selection,
+        Product $bundleProduct,
+        Product $selection,
         $quantity,
         array $arguments = []
     ) {
         $arguments['bundleProduct'] = $bundleProduct;
-        $arguments['salableItem'] = $selection;
+        $arguments['saleableItem'] = $selection;
         $arguments['quantity'] = $quantity ? floatval($quantity) : 1.;
         $selectionPrice = $this->objectManager->create(self::SELECTION_CLASS_DEFAULT, $arguments);
-        if (!$selectionPrice instanceof BundleSelectionPriceInterface) {
+        if (!$selectionPrice instanceof BundleSelectionPrice) {
             throw new \InvalidArgumentException(
-                get_class($selectionPrice) . ' doesn\'t implement BundleSelectionPriceInterface'
+                get_class($selectionPrice) . ' doesn\'t extend BundleSelectionPrice'
             );
         }
         return $selectionPrice;
diff --git a/app/code/Magento/Bundle/Pricing/Price/BundleSelectionPrice.php b/app/code/Magento/Bundle/Pricing/Price/BundleSelectionPrice.php
index 465eee99417d421724729738c0de07acec63697d..80e089c3366c98e376175bbc30ea739c560fb518 100644
--- a/app/code/Magento/Bundle/Pricing/Price/BundleSelectionPrice.php
+++ b/app/code/Magento/Bundle/Pricing/Price/BundleSelectionPrice.php
@@ -26,26 +26,33 @@
 namespace Magento\Bundle\Pricing\Price;
 
 use Magento\Catalog\Pricing\Price as CatalogPrice;
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Catalog\Model\Product;
 use Magento\Bundle\Model\Product\Price;
-use Magento\Catalog\Pricing\Price\FinalPriceInterface;
 use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
+use Magento\Framework\Event\ManagerInterface;
+use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Framework\Pricing\Price\AbstractPrice;
 
 /**
  * Bundle option price
  */
-class BundleSelectionPrice extends CatalogPrice\RegularPrice implements BundleSelectionPriceInterface
+class BundleSelectionPrice extends AbstractPrice
 {
     /**
-     * @var string
+     * Price model code
      */
-    protected $priceType = self::PRICE_TYPE_BUNDLE_SELECTION;
+    const PRICE_CODE = 'bundle_selection';
 
     /**
      * @var \Magento\Catalog\Model\Product
      */
     protected $bundleProduct;
 
+    /**
+     * @var BasePrice
+     */
+    protected $bundleBasePrice;
+
     /**
      * Event manager
      *
@@ -54,25 +61,29 @@ class BundleSelectionPrice extends CatalogPrice\RegularPrice implements BundleSe
     protected $eventManager;
 
     /**
-     * @param SaleableInterface $salableItem
+     * @param Product $saleableItem
      * @param float $quantity
      * @param CalculatorInterface $calculator
-     * @param \Magento\Catalog\Model\Product $bundleProduct
-     * @param \Magento\Framework\Event\ManagerInterface $eventManager
+     * @param SaleableInterface $bundleProduct
+     * @param ManagerInterface $eventManager
      */
     public function __construct(
-        SaleableInterface $salableItem,
+        Product $saleableItem,
         $quantity,
         CalculatorInterface $calculator,
-        \Magento\Catalog\Model\Product $bundleProduct,
-        \Magento\Framework\Event\ManagerInterface $eventManager
+        SaleableInterface $bundleProduct,
+        ManagerInterface $eventManager
     ) {
+        parent::__construct($saleableItem, $quantity, $calculator);
         $this->bundleProduct = $bundleProduct;
+        $this->bundleBasePrice = $this->bundleProduct->getPriceInfo()
+            ->getPrice(CatalogPrice\BasePrice::PRICE_CODE, $this->quantity);
         $this->eventManager = $eventManager;
-        parent::__construct($salableItem, $quantity, $calculator);
     }
 
     /**
+     * Get the price value for one of selection product
+     *
      * @return bool|float
      */
     public function getValue()
@@ -83,30 +94,27 @@ class BundleSelectionPrice extends CatalogPrice\RegularPrice implements BundleSe
 
         if ($this->bundleProduct->getPriceType() == Price::PRICE_TYPE_DYNAMIC) {
             $value = $this->priceInfo
-                ->getPrice(FinalPriceInterface::PRICE_TYPE_FINAL, $this->quantity)
+                ->getPrice(FinalPrice::PRICE_CODE, $this->quantity)
                 ->getValue();
         } else {
-            if ($this->salableItem->getSelectionPriceType()) {
+            if ($this->product->getSelectionPriceType()) {
                 // calculate price for selection type percent
-                // @todo get rid of final price data manipulation that should fire event to apply catalog rules
                 $product = clone $this->bundleProduct;
                 $price = $product->getPriceInfo()
-                    ->getPrice(CatalogPrice\RegularPrice::PRICE_TYPE_PRICE_DEFAULT, $this->quantity)
+                    ->getPrice(CatalogPrice\RegularPrice::PRICE_CODE, $this->quantity)
                     ->getValue();
                 $product->setFinalPrice($price);
                 $this->eventManager->dispatch(
                     'catalog_product_get_final_price',
                     array('product' => $product, 'qty' => $this->bundleProduct->getQty())
                 );
-                $value = $product->getData('final_price') * ($this->salableItem->getSelectionPriceValue() / 100);
+                $value = $product->getData('final_price') * ($this->product->getSelectionPriceValue() / 100);
             } else {
                 // calculate price for selection type fixed
-                $value = $this->salableItem->getSelectionPriceValue() * $this->quantity;
+                $value = $this->product->getSelectionPriceValue() * $this->quantity;
             }
         }
-        $this->value = $this->bundleProduct->getPriceInfo()
-            ->getPrice(CatalogPrice\BasePrice::PRICE_TYPE_BASE_PRICE, $this->quantity)
-            ->applyDiscount($value);
+        $this->value = $this->bundleBasePrice->calculateBaseValue($value);
         return $this->value;
     }
 }
diff --git a/app/code/Magento/Bundle/Pricing/Price/ConfiguredPrice.php b/app/code/Magento/Bundle/Pricing/Price/ConfiguredPrice.php
new file mode 100644
index 0000000000000000000000000000000000000000..63cff4f22b96a508472d9e76c3583eb5c4ee7f7d
--- /dev/null
+++ b/app/code/Magento/Bundle/Pricing/Price/ConfiguredPrice.php
@@ -0,0 +1,156 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Catalog
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Bundle\Pricing\Price;
+
+use Magento\Catalog\Model\Product;
+use Magento\Catalog\Pricing\Price as CatalogPrice;
+use Magento\Catalog\Model\Product\Configuration\Item\ItemInterface;
+use Magento\Catalog\Pricing\Price\ConfiguredPriceInterface;
+use Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface;
+
+/**
+ * Configured price model
+ */
+class ConfiguredPrice extends CatalogPrice\FinalPrice implements ConfiguredPriceInterface
+{
+    /**
+     * Price type configured
+     */
+    const PRICE_CODE = self::CONFIGURED_PRICE_CODE;
+
+    /**
+     * @var BundleCalculatorInterface
+     */
+    protected $calculator;
+
+    /**
+     * @var null|ItemInterface
+     */
+    protected $item;
+
+    /**
+     * @param Product $saleableItem
+     * @param float $quantity
+     * @param BundleCalculatorInterface $calculator
+     * @param ItemInterface $item
+     */
+    public function __construct(
+        Product $saleableItem,
+        $quantity,
+        BundleCalculatorInterface $calculator,
+        ItemInterface $item = null
+    ) {
+        $this->item = $item;
+        parent::__construct($saleableItem, $quantity, $calculator);
+    }
+
+    /**
+     * @param ItemInterface $item
+     * @return $this
+     */
+    public function setItem(ItemInterface $item)
+    {
+        $this->item = $item;
+        return $this;
+    }
+
+    /**
+     * Get Options with attached Selections collection
+     *
+     * @return array|\Magento\Bundle\Model\Resource\Option\Collection
+     */
+    public function getOptions()
+    {
+        $bundleProduct = $this->product;
+        $bundleOptions = [];
+        /** @var \Magento\Bundle\Model\Product\Type $typeInstance */
+        $typeInstance = $bundleProduct->getTypeInstance();
+
+        // get bundle options
+        $optionsQuoteItemOption = $this->item->getOptionByCode('bundle_option_ids');
+        $bundleOptionsIds = $optionsQuoteItemOption ? unserialize($optionsQuoteItemOption->getValue()) : array();
+        if ($bundleOptionsIds) {
+            /** @var \Magento\Bundle\Model\Resource\Option\Collection $optionsCollection */
+            $optionsCollection = $typeInstance->getOptionsByIds($bundleOptionsIds, $bundleProduct);
+            // get and add bundle selections collection
+            $selectionsQuoteItemOption = $this->item->getOptionByCode('bundle_selection_ids');
+            $bundleSelectionIds = unserialize($selectionsQuoteItemOption->getValue());
+            if ($bundleSelectionIds) {
+                $selectionsCollection = $typeInstance->getSelectionsByIds($bundleSelectionIds, $bundleProduct);
+                $bundleOptions = $optionsCollection->appendSelections($selectionsCollection, true);
+            }
+        }
+        return $bundleOptions;
+    }
+
+    /**
+     * Option amount calculation for bundle product
+     *
+     * @param float $baseValue
+     * @return \Magento\Framework\Pricing\Amount\AmountInterface
+     */
+    public function getConfiguredAmount($baseValue = 0.)
+    {
+        $selectionPriceList = [];
+        foreach ($this->getOptions() as $option) {
+            $selectionPriceList = array_merge(
+                $selectionPriceList,
+                $this->calculator->createSelectionPriceList($option, $this->product)
+            );
+        }
+        return $this->calculator->calculateBundleAmount(
+            $baseValue,
+            $this->product,
+            $selectionPriceList
+        );
+    }
+
+    /**
+     * Get price value
+     *
+     * @return float
+     */
+    public function getValue()
+    {
+        if ($this->item) {
+            $configuredOptionsAmount = $this->getConfiguredAmount()->getBaseAmount();
+            return parent::getValue() + $this->basePrice->calculateBaseValue($configuredOptionsAmount);
+        } else {
+            return parent::getValue();
+        }
+    }
+
+    /**
+     * Get Amount for configured price which is included amount for all selected options
+     *
+     * @return \Magento\Framework\Pricing\Amount\AmountInterface
+     */
+    public function getAmount()
+    {
+        return $this->item ? $this->getConfiguredAmount($this->basePrice->getValue()) : parent::getAmount();
+    }
+}
diff --git a/app/code/Magento/Bundle/Pricing/Price/FinalPrice.php b/app/code/Magento/Bundle/Pricing/Price/FinalPrice.php
index 459bdca89097d7544df928188491617d0e0623a8..d56223f591812cd7b6ea5651153ec17cf7b49b98 100644
--- a/app/code/Magento/Bundle/Pricing/Price/FinalPrice.php
+++ b/app/code/Magento/Bundle/Pricing/Price/FinalPrice.php
@@ -26,7 +26,7 @@
 
 namespace Magento\Bundle\Pricing\Price;
 
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Catalog\Model\Product;
 use Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface;
 
 /**
@@ -34,30 +34,27 @@ use Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface;
  */
 class FinalPrice extends \Magento\Catalog\Pricing\Price\FinalPrice
 {
+    /**
+     * Price type final
+     */
+    const PRICE_CODE = 'final_price';
+
     /**
      * @var BundleCalculatorInterface
      */
     protected $calculator;
 
     /**
-     * @param SaleableInterface $salableItem
-     * @param float $quantity
-     * @param BundleCalculatorInterface $calculator
+     * @var BasePrice
      */
-    public function __construct(
-        SaleableInterface $salableItem,
-        $quantity,
-        BundleCalculatorInterface $calculator
-    ) {
-        parent::__construct($salableItem, $quantity, $calculator);
-    }
+    protected $basePrice;
 
     /**
      * @return float
      */
     public function getValue()
     {
-        return parent::getValue() + $this->basePrice->applyDiscount($this->getBundleOptionPrice()->getValue());
+        return parent::getValue() + $this->basePrice->calculateBaseValue($this->getBundleOptionPrice()->getValue());
     }
 
     /**
@@ -65,7 +62,7 @@ class FinalPrice extends \Magento\Catalog\Pricing\Price\FinalPrice
      */
     public function getMaximalPrice()
     {
-        return $this->calculator->getMaxAmount($this->basePrice->getValue(), $this->salableItem);
+        return $this->calculator->getMaxAmount($this->basePrice->getValue(), $this->product);
     }
 
     /**
@@ -76,13 +73,12 @@ class FinalPrice extends \Magento\Catalog\Pricing\Price\FinalPrice
         return $this->getAmount();
     }
 
-
     /**
      * @return \Magento\Framework\Pricing\Amount\AmountInterface
      */
     public function getAmount()
     {
-        return $this->calculator->getAmount(parent::getValue(), $this->salableItem);
+        return $this->calculator->getAmount(parent::getValue(), $this->product);
     }
 
     /**
@@ -90,6 +86,6 @@ class FinalPrice extends \Magento\Catalog\Pricing\Price\FinalPrice
      */
     protected function getBundleOptionPrice()
     {
-        return $this->priceInfo->getPrice(BundleOptionPriceInterface::PRICE_TYPE_BUNDLE_OPTION, $this->quantity);
+        return $this->priceInfo->getPrice(BundleOptionPrice::PRICE_CODE, $this->quantity);
     }
 }
diff --git a/app/code/Magento/Bundle/Pricing/Price/GroupPrice.php b/app/code/Magento/Bundle/Pricing/Price/GroupPrice.php
index 5ea82cde8ceb3511c003b491e6db9306089f72d2..4ad01eb76498f8b0e39ed390f4af7377b02efbf7 100644
--- a/app/code/Magento/Bundle/Pricing/Price/GroupPrice.php
+++ b/app/code/Magento/Bundle/Pricing/Price/GroupPrice.php
@@ -33,6 +33,11 @@ use Magento\Customer\Model\Session;
  */
 class GroupPrice extends \Magento\Catalog\Pricing\Price\GroupPrice
 {
+    /**
+     * Price type group
+     */
+    const PRICE_CODE = 'group_price';
+
     /**
      * @return float|bool
      */
@@ -59,7 +64,7 @@ class GroupPrice extends \Magento\Catalog\Pricing\Price\GroupPrice
     protected function getBasePrice($qty = null)
     {
         return $this->priceInfo
-            ->getPrice(\Magento\Catalog\Pricing\Price\BasePrice::PRICE_TYPE_BASE_PRICE, $qty)
+            ->getPrice(\Magento\Catalog\Pricing\Price\BasePrice::PRICE_CODE)
             ->getValue();
     }
 }
diff --git a/app/code/Magento/Bundle/Pricing/Price/SpecialPrice.php b/app/code/Magento/Bundle/Pricing/Price/SpecialPrice.php
index 71632bc0a7eed2f827d21dea6944a96ecf63c153..91f7077ed2b606373c464525b9c4cdce599342fe 100644
--- a/app/code/Magento/Bundle/Pricing/Price/SpecialPrice.php
+++ b/app/code/Magento/Bundle/Pricing/Price/SpecialPrice.php
@@ -26,11 +26,18 @@
 
 namespace Magento\Bundle\Pricing\Price;
 
+use Magento\Catalog\Pricing\Price\BasePrice as CatalogBasePrice;
+
 /**
  * Special price model
  */
 class SpecialPrice extends \Magento\Catalog\Pricing\Price\SpecialPrice
 {
+    /**
+     * Price type special
+     */
+    const PRICE_CODE = 'special_price';
+
     /**
      * @return bool|float
      */
@@ -51,13 +58,12 @@ class SpecialPrice extends \Magento\Catalog\Pricing\Price\SpecialPrice
     }
 
     /**
-     * @param null|float $qty
      * @return bool|float
      */
-    protected function getBasePrice($qty = null)
+    protected function getBasePrice()
     {
         return $this->priceInfo
-            ->getPrice(\Magento\Catalog\Pricing\Price\BasePrice::PRICE_TYPE_BASE_PRICE, $qty)
+            ->getPrice(CatalogBasePrice::PRICE_CODE)
             ->getValue();
     }
 }
diff --git a/app/code/Magento/Bundle/Pricing/Price/TierPrice.php b/app/code/Magento/Bundle/Pricing/Price/TierPrice.php
index 28b3bca19e310e3aff96d79b92fe2e7adc9e41bd..da2b8654b4000caf1b80d5a8cd45ef3601c6cfdb 100644
--- a/app/code/Magento/Bundle/Pricing/Price/TierPrice.php
+++ b/app/code/Magento/Bundle/Pricing/Price/TierPrice.php
@@ -29,6 +29,11 @@ namespace Magento\Bundle\Pricing\Price;
  */
 class TierPrice extends \Magento\Catalog\Pricing\Price\TierPrice
 {
+    /**
+     * Price type tier
+     */
+    const PRICE_CODE = 'tier_price';
+
     /**
      * @var bool
      */
diff --git a/app/code/Magento/Bundle/Pricing/Render/FinalPriceBox.php b/app/code/Magento/Bundle/Pricing/Render/FinalPriceBox.php
index 3cfe54abfd80423d65d57347edc5320f01b8d322..56204fd682ebeaf68b446fc7ae8aa87de214c6a3 100644
--- a/app/code/Magento/Bundle/Pricing/Render/FinalPriceBox.php
+++ b/app/code/Magento/Bundle/Pricing/Render/FinalPriceBox.php
@@ -41,7 +41,7 @@ class FinalPriceBox extends CatalogRender\FinalPriceBox
     public function showRangePrice()
     {
         /** @var Price\BundleOptionPrice $optionPrice */
-        $optionPrice = $this->getPriceType(Price\BundleOptionPriceInterface::PRICE_TYPE_BUNDLE_OPTION);
+        $optionPrice = $this->getPriceType(Price\BundleOptionPrice::PRICE_CODE);
         return $optionPrice->getValue() !== $optionPrice->getMaxValue();
     }
 }
diff --git a/app/code/Magento/Bundle/etc/di.xml b/app/code/Magento/Bundle/etc/di.xml
index fc5df0b8e6c7ab7d2750188d1c15a6b29dfb96f4..2fb137e4cdfcb7fa8f311d7f7bb4f00ba991d4fa 100644
--- a/app/code/Magento/Bundle/etc/di.xml
+++ b/app/code/Magento/Bundle/etc/di.xml
@@ -48,69 +48,53 @@
             </argument>
         </arguments>
     </type>
-    <type name="Magento\Framework\Pricing\PriceInfo\Factory">
+    <virtualType name="Magento\Bundle\Pricing\Adjustment\Collection" type="Magento\Framework\Pricing\Adjustment\Collection">
         <arguments>
-            <argument name="types" xsi:type="array">
-                <item name="bundle" xsi:type="string">Magento\Bundle\Pricing\PriceInfo</item>
+            <argument name="adjustments" xsi:type="array">
+                <item name="tax" xsi:type="const">Magento\Tax\Pricing\Adjustment::ADJUSTMENT_CODE</item>
+                <item name="weee" xsi:type="const">Magento\Weee\Pricing\Adjustment::ADJUSTMENT_CODE</item>
             </argument>
         </arguments>
-    </type>
+    </virtualType>
+    <preference for="Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface" type="Magento\Bundle\Pricing\Adjustment\Calculator" />
     <virtualType name="Magento\Bundle\Pricing\PriceInfo" type="Magento\Framework\Pricing\PriceInfo\Base">
         <arguments>
-            <argument name="prices" xsi:type="object">Magento\Bundle\Pricing\PriceComposite</argument>
             <argument name="adjustmentCollection" xsi:type="object">Magento\Bundle\Pricing\Adjustment\Collection</argument>
         </arguments>
     </virtualType>
-    <virtualType name="Magento\Bundle\Pricing\PriceComposite" type="Magento\Framework\Pricing\PriceComposite">
+    <virtualType name="Magento\Bundle\Pricing\Price\Pool" type="Magento\Framework\Pricing\Price\Pool">
         <arguments>
-            <argument name="metadata" xsi:type="array">
-                <item name="regular_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\RegularPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">true</item>
-                </item>
-                <item name="final_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Bundle\Pricing\Price\FinalPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-                <item name="tier_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Bundle\Pricing\Price\TierPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-                <item name="group_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\GroupPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-                <item name="special_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\SpecialPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-                <item name="msrp_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\MsrpPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-                <item name="base_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Bundle\Pricing\Price\BasePrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-                <item name="custom_option" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\OptionPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-                <item name="bundle_option" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Bundle\Pricing\Price\BundleOptionPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
+            <argument name="prices" xsi:type="array">
+                <item name="regular_price" xsi:type="string">Magento\Catalog\Pricing\Price\RegularPrice</item>
+                <item name="final_price" xsi:type="string">Magento\Bundle\Pricing\Price\FinalPrice</item>
+                <item name="tier_price" xsi:type="string">Magento\Bundle\Pricing\Price\TierPrice</item>
+                <item name="group_price" xsi:type="string">Magento\Catalog\Pricing\Price\GroupPrice</item>
+                <item name="special_price" xsi:type="string">Magento\Catalog\Pricing\Price\SpecialPrice</item>
+                <item name="msrp_price" xsi:type="string">Magento\Catalog\Pricing\Price\MsrpPrice</item>
+                <item name="base_price" xsi:type="string">Magento\Bundle\Pricing\Price\BasePrice</item>
+                <item name="configured_price" xsi:type="string">Magento\Bundle\Pricing\Price\ConfiguredPrice</item>
+                <item name="bundle_option" xsi:type="string">Magento\Bundle\Pricing\Price\BundleOptionPrice</item>
             </argument>
         </arguments>
     </virtualType>
-    <virtualType name="Magento\Bundle\Pricing\Adjustment\Collection" type="Magento\Framework\Pricing\Adjustment\Collection">
+    <virtualType name="Magento\Bundle\Pricing\Price\Collection" type="Magento\Framework\Pricing\Price\Collection">
         <arguments>
-            <argument name="adjustments" xsi:type="array">
-                <item name="tax" xsi:type="const">Magento\Tax\Pricing\Adjustment::CODE</item>
-                <item name="weee" xsi:type="const">Magento\Weee\Pricing\Adjustment::CODE</item>
-            </argument>
+            <argument name="pool" xsi:type="object">Magento\Bundle\Pricing\Price\Pool</argument>
         </arguments>
     </virtualType>
-    <preference for="Magento\Bundle\Pricing\Price\BundleSelectionPriceInterface" type="Magento\Bundle\Pricing\Price\BundleSelectionPrice" />
-    <preference for="Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface" type="Magento\Bundle\Pricing\Adjustment\Calculator" />
+    <type name="Magento\Framework\Pricing\PriceInfo\Factory">
+        <arguments>
+            <argument name="types" xsi:type="array">
+                <item name="bundle" xsi:type="array">
+                    <item name="infoClass" xsi:type="string">Magento\Bundle\Pricing\PriceInfo</item>
+                    <item name="prices" xsi:type="string">Magento\Bundle\Pricing\Price\Collection</item>
+                </item>
+            </argument>
+        </arguments>
+    </type>
+    <type name="Magento\Bundle\Pricing\Price\FinalPrice">
+        <arguments>
+            <argument name="calculator" xsi:type="object">Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface</argument>
+        </arguments>
+    </type>
 </config>
diff --git a/app/code/Magento/Bundle/view/adminhtml/product/edit/bundle.phtml b/app/code/Magento/Bundle/view/adminhtml/product/edit/bundle.phtml
index 13f1ba425c402c3446929be9746beb2799a7f1c0..d49c257189422e884c3b77d2315c5a6a098aeea5 100644
--- a/app/code/Magento/Bundle/view/adminhtml/product/edit/bundle.phtml
+++ b/app/code/Magento/Bundle/view/adminhtml/product/edit/bundle.phtml
@@ -81,10 +81,10 @@
         '<?php echo $this->getViewFileUrl('Magento_Bundle::product/validation-rules.js'); ?>');
 
     jQuery(function($) {
-        head.js("<?php echo $this->getViewFileUrl('Magento_Bundle::js/bundle-product.js') ?>", function () {
+        head.js("<?php echo $this->getViewFileUrl('Magento_Bundle::js/bundle-product.js') ?>", head.ready(function () {
             $('#bundle_product_container').mage('bundleProduct');
             $('#product_bundle_container .collapse').collapse('hide');
-        });
+        }));
     });
 </script>
 
diff --git a/app/code/Magento/Bundle/view/adminhtml/product/stock/disabler.phtml b/app/code/Magento/Bundle/view/adminhtml/product/stock/disabler.phtml
index cf245c03770fe6fbb373febc889c9076f6c74ff6..611221f650a83203409b578e9f1732a509ea9617 100644
--- a/app/code/Magento/Bundle/view/adminhtml/product/stock/disabler.phtml
+++ b/app/code/Magento/Bundle/view/adminhtml/product/stock/disabler.phtml
@@ -24,7 +24,7 @@
 ?>
 <script type="text/javascript">
 (function($) {
-    $('#product_info_tabs_product-details_content').on('stockbeforedisable', function(e) {
+    $('[data-tab-panel=product-details]').on('stockbeforedisable', function(e) {
         if (e.productType === 'bundle') {
             return false;
         }
diff --git a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_prices.xml b/app/code/Magento/Bundle/view/base/layout/catalog_product_prices.xml
similarity index 100%
rename from app/code/Magento/Bundle/view/frontend/layout/catalog_product_prices.xml
rename to app/code/Magento/Bundle/view/base/layout/catalog_product_prices.xml
diff --git a/app/code/Magento/Bundle/view/frontend/product/price/final_price.phtml b/app/code/Magento/Bundle/view/base/product/price/final_price.phtml
similarity index 73%
rename from app/code/Magento/Bundle/view/frontend/product/price/final_price.phtml
rename to app/code/Magento/Bundle/view/base/product/price/final_price.phtml
index cf1c4291df141a672d54aff9141bcb177f39795c..f507874bae10c3b1ec5f5be7a1432b25c5bbae5d 100644
--- a/app/code/Magento/Bundle/view/frontend/product/price/final_price.phtml
+++ b/app/code/Magento/Bundle/view/base/product/price/final_price.phtml
@@ -31,21 +31,9 @@ $productId = $this->getSaleableItem()->getId();
 /** @var \Magento\Bundle\Pricing\Price\FinalPrice $finalPriceModel */
 $finalPriceModel = $this->getPrice();
 ?>
-<?php
-if (isset($_GET['showmeprice'])) {
-    echo 'Regular Price :' . $this->getPriceType('regular_price')->getValue() . "<br />";
-    echo 'Special Price :' . $this->getPriceType('special_price')->getValue(). "<br />";
-    echo 'Group Price :' . $this->getPriceType('group_price')->getValue(). "<br />";
-    echo 'Catalog Rule Price :' . $this->getPriceType('catalog_rule_price')->getValue(). "<br />";
-    echo 'Tier Price :' . $this->getPriceType('tier_price')->getValue(). "<br />";
-    echo 'Base Price :' . $this->getPriceType('base_price')->getValue(). "<br />";
-    echo 'Final Price :' . $finalPriceModel->getValue(). "<br />";
-    echo  "<br />";
-}
-?>
 <?php if ($this->getSaleableItem()->getPriceView()): ?>
     <p class="minimal-price">
-        <?php echo $this->renderAmount($finalPriceModel->getAmount(), [
+        <?php echo $this->renderAmount($finalPriceModel->getMinimalPrice(), [
             'display_label'     => __('As low as'),
             'price_id'          => $this->getPriceId('from-'),
             'include_container' => true
@@ -54,7 +42,7 @@ if (isset($_GET['showmeprice'])) {
 <?php else: ?>
     <?php if ($this->showRangePrice()): ?>
         <p class="price-from">
-            <?php echo $this->renderAmount($finalPriceModel->getAmount(), [
+            <?php echo $this->renderAmount($finalPriceModel->getMinimalPrice(), [
                 'display_label'     => __('From:'),
                 'price_id'          => $this->getPriceId('from-'),
                 'include_container' => true
@@ -68,7 +56,7 @@ if (isset($_GET['showmeprice'])) {
             ]); ?>
         </p>
     <?php else: ?>
-        <?php echo $this->renderAmount($finalPriceModel->getAmount(), [
+        <?php echo $this->renderAmount($finalPriceModel->getMinimalPrice(), [
             'price_id'          => $this->getPriceId('product-price-'),
             'include_container' => true
         ]); ?>
diff --git a/app/code/Magento/Bundle/view/frontend/product/price/selection/amount.phtml b/app/code/Magento/Bundle/view/base/product/price/selection/amount.phtml
similarity index 100%
rename from app/code/Magento/Bundle/view/frontend/product/price/selection/amount.phtml
rename to app/code/Magento/Bundle/view/base/product/price/selection/amount.phtml
diff --git a/app/code/Magento/Bundle/view/frontend/product/price/tier_prices.phtml b/app/code/Magento/Bundle/view/base/product/price/tier_prices.phtml
similarity index 100%
rename from app/code/Magento/Bundle/view/frontend/product/price/tier_prices.phtml
rename to app/code/Magento/Bundle/view/base/product/price/tier_prices.phtml
diff --git a/app/code/Magento/Bundle/view/frontend/bundle.js b/app/code/Magento/Bundle/view/frontend/bundle.js
index 7c061ff6b16d210fcb4344c258121ad9f990d6f3..e5b6ae3ccd6291cce94d3f4890bd91e8c2d9cd59 100644
--- a/app/code/Magento/Bundle/view/frontend/bundle.js
+++ b/app/code/Magento/Bundle/view/frontend/bundle.js
@@ -85,11 +85,12 @@
                                     var parts = _qty.attr('id').split('-'),
                                         value = _elem.val(),
                                         quantity = parseInt(_qty.val(), 10);
-                                    if (quantity > 0 && _this.options.bundleConfig.options[parts[2]] &&
+                                    if (quantity > 0 &&
+                                        _this.options.bundleConfig.options[parts[2]] &&
                                         _this.options.bundleConfig.options[parts[2]].selections[value] &&
                                         _this.options.optionConfig.options[parts[2]].selections[_elem.val()] &&
                                         _this.options.optionConfig.options[parts[2]]
-                                        ) {
+                                    ) {
                                         _this.options.bundleConfig.options[parts[2]].selections[value].qty = parseInt(quantity, 10);
                                         _this.options.optionConfig.options[parts[2]].selections[_elem.val()].qty = parseInt(quantity, 10);
                                     }
diff --git a/app/code/Magento/Bundle/view/frontend/catalog/product/price.phtml b/app/code/Magento/Bundle/view/frontend/catalog/product/price.phtml
deleted file mode 100644
index 49234a35756de0b9243760b43c3dfd7506a501af..0000000000000000000000000000000000000000
--- a/app/code/Magento/Bundle/view/frontend/catalog/product/price.phtml
+++ /dev/null
@@ -1,265 +0,0 @@
-<?php
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-?>
-<?php $_product     = $this->getProduct() ?>
-<?php $_priceModel  = $_product->getPriceModel() ?>
-<?php list($_minimalPriceTax, $_maximalPriceTax) = $_priceModel->getTotalPrices($_product, null, null, false) ?>
-<?php list($_minimalPriceInclTax, $_maximalPriceInclTax) = $_priceModel->getTotalPrices($_product, null, true, false) ?>
-<?php $_id = $_product->getId() ?>
-
-<?php $_weeeTaxAmount = 0; ?>
-<?php /** @var $weeeHelper \Magento\Weee\Helper\Data */ ?>
-<?php $weeeHelper = $this->helper('Magento\Weee\Helper\Data'); ?>
-
-<?php
-$isFixed = $_product->getPriceType() == \Magento\Bundle\Model\Product\Price::PRICE_TYPE_FIXED;
-if ($_product->getPriceType() == \Magento\Bundle\Model\Product\Price::PRICE_TYPE_FIXED) {
-    $_weeeTaxAmount = $weeeHelper->getAmount($_product);
-    $_weeeTaxAmountInclTaxes = $_weeeTaxAmount;
-    if ($weeeHelper->isTaxable()) {
-        $_attributes = $weeeHelper->getProductWeeeAttributesForRenderer($_product, null, null, null, true);
-        $_weeeTaxAmountInclTaxes = $weeeHelper->getAmountInclTaxes($_attributes);
-    }
-    if ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(array(0, 1, 4))) {
-        $_minimalPriceTax += $_weeeTaxAmount;
-        $_minimalPriceInclTax += $_weeeTaxAmountInclTaxes;
-    }
-    if ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(2)) {
-        $_minimalPriceInclTax += $_weeeTaxAmountInclTaxes;
-    }
-
-    if ($weeeHelper->typeOfDisplay(array(1, 2, 4))) {
-        $_weeeTaxAttributes = $weeeHelper->getProductWeeeAttributesForDisplay($_product);
-    }
-}
-?>
-
-<div class="price-box">
-    <?php if ($_product->getPriceView()): ?>
-        <p class="minimal-price">
-            <span class="price-label"><?php echo __('As low as') ?>:</span>
-            <?php if ($this->displayBothPrices()): ?>
-                <span class="price-excluding-tax">
-                    <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceTax) ?>
-                </span>
-                <?php if ($_weeeTaxAmount && $isFixed && $weeeHelper->typeOfDisplay(array(2, 1, 4))): ?>
-                    <span class="weee">(<small>
-                        <?php $_weeeSeparator = ''; foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                            <?php if ($weeeHelper->typeOfDisplay(array(2, 4))): ?>
-                                <?php $amount = $_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(); ?>
-                            <?php else: ?>
-                                <?php $amount = $_weeeTaxAttribute->getAmount(); ?>
-                            <?php endif; ?>
-
-                            <?php echo $_weeeSeparator; ?>
-                            <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($amount, true, true); ?>
-                            <?php $_weeeSeparator = ' + '; ?>
-                        <?php endforeach; ?>
-                    </small>)</span>
-                <?php endif; ?>
-                <span class="price-including-tax">
-                    <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceInclTax) ?>
-                </span>
-        <?php else: ?>
-            <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceTax) ?>
-            <?php if ($_weeeTaxAmount && $isFixed && $weeeHelper->typeOfDisplay(array(2, 1, 4))): ?>
-                <span class="weee">(<small>
-                    <?php $_weeeSeparator = ''; foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                        <?php if ($weeeHelper->typeOfDisplay(array(2, 4))): ?>
-                            <?php $amount = $_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(); ?>
-                        <?php else: ?>
-                            <?php $amount = $_weeeTaxAttribute->getAmount(); ?>
-                        <?php endif; ?>
-
-                        <?php echo $_weeeSeparator; ?>
-                        <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($amount, true, true); ?>
-                        <?php $_weeeSeparator = ' + '; ?>
-                    <?php endforeach; ?>
-                </small>)</span>
-            <?php endif; ?>
-            <?php if ($weeeHelper->typeOfDisplay(2) && $_weeeTaxAmount): ?>
-                <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceInclTax) ?>
-            <?php endif; ?>
-        <?php endif; ?>
-        </p>
-    <?php else: ?>
-        <?php if ($_minimalPriceTax <> $_maximalPriceTax): ?>
-        <p class="price-from">
-            <span class="price-label"><?php echo __('From') ?>:</span>
-            <?php if ($this->displayBothPrices()): ?>
-                <span class="price-excluding-tax">
-                    <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceTax) ?>
-                </span>
-                <?php if ($_weeeTaxAmount && $isFixed && $weeeHelper->typeOfDisplay(array(2, 1, 4))): ?>
-                    <span class="weee">(<small>
-                        <?php $_weeeSeparator = ''; foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                            <?php if ($weeeHelper->typeOfDisplay(array(2, 4))): ?>
-                                <?php $amount = $_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(); ?>
-                            <?php else: ?>
-                                <?php $amount = $_weeeTaxAttribute->getAmount(); ?>
-                            <?php endif; ?>
-
-                            <?php echo $_weeeSeparator; ?>
-                            <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($amount, true, true); ?>
-                            <?php $_weeeSeparator = ' + '; ?>
-                        <?php endforeach; ?>
-                    </small>)</span>
-                <?php endif; ?>
-                <span class="price-including-tax">
-                    <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceInclTax) ?>
-                </span>
-            <?php else: ?>
-                <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceTax) ?>
-                <?php if ($_weeeTaxAmount && $isFixed && $weeeHelper->typeOfDisplay(array(2, 1, 4))): ?>
-                    <span class="weee">(<small>
-                        <?php $_weeeSeparator = ''; foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                            <?php if ($weeeHelper->typeOfDisplay(array(2, 4))): ?>
-                                <?php $amount = $_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(); ?>
-                            <?php else: ?>
-                                <?php $amount = $_weeeTaxAttribute->getAmount(); ?>
-                            <?php endif; ?>
-
-                            <?php echo $_weeeSeparator; ?>
-                            <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($amount, true, true); ?>
-                            <?php $_weeeSeparator = ' + '; ?>
-                        <?php endforeach; ?>
-                    </small>)</span>
-                <?php endif; ?>
-                <?php if ($weeeHelper->typeOfDisplay(2) && $_weeeTaxAmount): ?>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceInclTax) ?>
-                <?php endif; ?>
-            <?php endif; ?>
-        </p>
-            <?php
-                if ($isFixed) {
-                    if ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(array(0, 1, 4))) {
-                        $_maximalPriceTax += $_weeeTaxAmount;
-                        $_maximalPriceInclTax += $_weeeTaxAmountInclTaxes;
-                    }
-                    if ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(2)) {
-                        $_maximalPriceInclTax += $_weeeTaxAmountInclTaxes;
-                    }
-                }
-            ?>
-            <p class="price-to">
-                <span class="price-label"><?php echo __('To') ?>:</span>
-                <?php if ($this->displayBothPrices()): ?>
-                    <span class="price-excluding-tax">
-                        <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                        <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_maximalPriceTax) ?>
-                    </span>
-                    <?php if ($_weeeTaxAmount && $isFixed && $weeeHelper->typeOfDisplay(array(2, 1, 4))): ?>
-                        <span class="weee">(<small>
-                            <?php $_weeeSeparator = ''; foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                                <?php if ($weeeHelper->typeOfDisplay(array(2, 4))): ?>
-                                    <?php $amount = $_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(); ?>
-                                <?php else: ?>
-                                    <?php $amount = $_weeeTaxAttribute->getAmount(); ?>
-                                <?php endif; ?>
-
-                                <?php echo $_weeeSeparator; ?>
-                                <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($amount, true, true); ?>
-                                <?php $_weeeSeparator = ' + '; ?>
-                            <?php endforeach; ?>
-                        </small>)</span>
-                    <?php endif; ?>
-                    <span class="price-including-tax">
-                        <span class="label"><?php echo __('Incl. Tax') ?></span>
-                        <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_maximalPriceInclTax) ?>
-                    </span>
-                <?php else: ?>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_maximalPriceTax) ?>
-                    <?php if ($_weeeTaxAmount && $isFixed && $weeeHelper->typeOfDisplay(array(2, 1, 4))): ?>
-                        <span class="weee">(<small>
-                            <?php $_weeeSeparator = ''; foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                                <?php if ($weeeHelper->typeOfDisplay(array(2, 4))): ?>
-                                    <?php $amount = $_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(); ?>
-                                <?php else: ?>
-                                    <?php $amount = $_weeeTaxAttribute->getAmount(); ?>
-                                <?php endif; ?>
-
-                                <?php echo $_weeeSeparator; ?>
-                                <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($amount, true, true); ?>
-                                <?php $_weeeSeparator = ' + '; ?>
-                            <?php endforeach; ?>
-                        </small>)</span>
-                    <?php endif; ?>
-                    <?php if ($weeeHelper->typeOfDisplay(2) && $_weeeTaxAmount): ?>
-                        <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_maximalPriceInclTax) ?>
-                    <?php endif; ?>
-                <?php endif; ?>
-            </p>
-        <?php else: ?>
-            <?php if ($this->displayBothPrices()): ?>
-                <span class="price-excluding-tax">
-                    <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceTax) ?>
-                </span>
-                <?php if ($_weeeTaxAmount && $isFixed && $weeeHelper->typeOfDisplay(array(2, 1, 4))): ?>
-                    <span class="weee">(<small>
-                        <?php $_weeeSeparator = ''; foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                            <?php if ($weeeHelper->typeOfDisplay(array(2, 4))): ?>
-                                <?php $amount = $_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(); ?>
-                            <?php else: ?>
-                                <?php $amount = $_weeeTaxAttribute->getAmount(); ?>
-                            <?php endif; ?>
-
-                            <?php echo $_weeeSeparator; ?>
-                            <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($amount, true, true); ?>
-                            <?php $_weeeSeparator = ' + '; ?>
-                        <?php endforeach; ?>
-                    </small>)</span>
-                <?php endif; ?>
-                <span class="price-including-tax">
-                    <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceInclTax) ?>
-                </span>
-            <?php else: ?>
-                <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceTax) ?>
-                <?php if ($_weeeTaxAmount && $isFixed && $weeeHelper->typeOfDisplay(array(2, 1, 4))): ?>
-                    <span class="weee">(<small>
-                        <?php $_weeeSeparator = ''; foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                            <?php if ($weeeHelper->typeOfDisplay(array(2, 4))): ?>
-                                <?php $amount = $_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(); ?>
-                            <?php else: ?>
-                                <?php $amount = $_weeeTaxAttribute->getAmount(); ?>
-                            <?php endif; ?>
-
-                            <?php echo $_weeeSeparator; ?>
-                            <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($amount, true, true); ?>
-                            <?php $_weeeSeparator = ' + '; ?>
-                        <?php endforeach; ?>
-                    </small>)</span>
-                <?php endif; ?>
-                <?php if ($weeeHelper->typeOfDisplay(2) && $_weeeTaxAmount): ?>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_minimalPriceInclTax) ?>
-                <?php endif; ?>
-            <?php endif; ?>
-        <?php endif; ?>
-    <?php endif; ?>
-</div>
diff --git a/app/code/Magento/Bundle/view/frontend/catalog/product/view/price.phtml b/app/code/Magento/Bundle/view/frontend/catalog/product/view/price.phtml
deleted file mode 100644
index f06db442949de8f674e6a4d73184e904f4d7901d..0000000000000000000000000000000000000000
--- a/app/code/Magento/Bundle/view/frontend/catalog/product/view/price.phtml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-?>
-<?php $_product = $this->getProduct() ?>
-<?php $_finalPrice = $_product->getFinalPrice() ?>
-<?php $_finalPriceInclTax = $_product->getFinalPrice() ?>
-<?php $_weeeTaxAmount = 0; ?>
-<?php
-if ($_product->getPriceType() == 1) {
-    $_weeeTaxAmount = $this->helper('Magento\Weee\Helper\Data')->getAmount($_product);
-    if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1,2,4))) {
-        $_weeeTaxAttributes = $this->helper('Magento\Weee\Helper\Data')->getProductWeeeAttributesForDisplay($_product);
-    }
-}
-$isMAPTypeOnGesture = $this->helper('Magento\Catalog\Helper\Data')->isShowPriceOnGesture($_product);
-$canApplyMAP  = $this->helper('Magento\Catalog\Helper\Data')->canApplyMsrp($_product);
-?>
-<?php if ($_product->getCanShowPrice() !== false):?>
-<div class="price-box">
-    <p class="price-as-configured">
-        <span class="price-label"><?php echo __('Price as configured') ?>:</span>
-        <?php if (!$this->getWithoutPrice()): ?>
-        <span<?php if (!$isMAPTypeOnGesture && $canApplyMAP): ?> style="display:none"<?php endif ?> class="full-product-price">
-        <?php if ($this->helper('Magento\Tax\Helper\Data')->displayBothPrices()): ?>
-        <span class="price-tax">
-            <span class="price-excluding-tax">
-                <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                <span class="price" id="price-excluding-tax-<?php echo $_product->getId() ?><?php echo $this->getIdSuffix() ?>">
-                <?php if (!$canApplyMAP): ?>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_finalPrice,true,false) ?>
-                <?php endif ?>
-                </span>
-            </span>
-            <?php if ($_weeeTaxAmount && $_product->getPriceType() == 1 && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(2, 1, 4))): ?>
-                <span class="weee">(<small>
-                    <?php $_weeeSeparator = ''; foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                        <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(2, 4))): ?>
-                            <?php $amount = $_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(); ?>
-                        <?php else: ?>
-                            <?php $amount = $_weeeTaxAttribute->getAmount(); ?>
-                        <?php endif; ?>
-
-                        <?php echo $_weeeSeparator; ?>
-                        <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($amount, true, true); ?>
-                        <?php $_weeeSeparator = ' + '; ?>
-                    <?php endforeach; ?>
-                </small>)</span>
-            <?php endif; ?>
-            <span class="price-including-tax">
-                <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                <span class="price" id="price-including-tax-<?php echo $_product->getId() ?><?php echo $this->getIdSuffix() ?>">
-                <?php if (!$canApplyMAP): ?>
-                    <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_finalPriceInclTax,true,false) ?>
-                <?php endif ?>
-                </span>
-            </span>
-        </span>
-        <?php else: ?>
-        <span class="price" id="product-price-<?php echo $_product->getId() ?><?php echo $this->getIdSuffix() ?>">
-            <?php if (!$canApplyMAP): ?>
-                <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_finalPrice,true,false) ?>
-            <?php endif ?>
-        </span>
-        <?php if ($_weeeTaxAmount && $_product->getPriceType() == 1 && $this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(2, 1, 4))): ?>
-            <span class="weee">(<small>
-                <?php $_weeeSeparator = ''; foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                    <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(2, 4))): ?>
-                        <?php $amount = $_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(); ?>
-                    <?php else: ?>
-                        <?php $amount = $_weeeTaxAttribute->getAmount(); ?>
-                    <?php endif; ?>
-
-                    <?php echo $_weeeSeparator; ?>
-                    <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($amount, true, true); ?>
-                    <?php $_weeeSeparator = ' + '; ?>
-                <?php endforeach; ?>
-            </small>)</span>
-        <?php endif; ?>
-    <?php endif; ?>
-    </span>
-    <?php endif ?>
-    </p>
-</div>
-<?php endif; ?>
diff --git a/app/code/Magento/Bundle/view/frontend/catalog/product/view/summary.phtml b/app/code/Magento/Bundle/view/frontend/catalog/product/view/summary.phtml
index aff43e4169d440e30dd6c1658b848296498dffaf..4767cd194dddef3650a07d2d9b98501f725b1271 100644
--- a/app/code/Magento/Bundle/view/frontend/catalog/product/view/summary.phtml
+++ b/app/code/Magento/Bundle/view/frontend/catalog/product/view/summary.phtml
@@ -27,7 +27,9 @@
     $_product = $this->getProduct();
 ?>
 <?php if ($_product->isSaleable() && $this->hasOptions()): ?>
-<div id="bundleSummary" class="block bundle summary">
+<div id="bundleSummary"
+     class="block bundle summary"
+     data-mage-init='{"sticky":{"container": ".product.add.form"}}'>
     <div class="title">
         <strong><?php echo __('Your Customization'); ?></strong>
     </div>
@@ -68,24 +70,15 @@
 <script>
     //<![CDATA[
     (function ($) {
-        head.js("<?php echo $this->getViewFileUrl('mage/sticky.js') ?>",function() {
-            $('#bundleSummary').sticky({
-                container: '.product.add.form'
-            });
-        });
-
-        head.js("<?php echo $this->getViewFileUrl('Magento_Bundle::js/slide.js')?>", function() {
-            $('.product.add.form').slide({
-                    slideSpeed: 1500,
-                    slideSelector: '#bundle-slide',
-                    slideBackSelector: '.action.customization.back',
-                    bundleProductSelector: '#bundleProduct',
-                    bundleOptionsContainer: '.product.add.form',
-                    <?php if ($this->isStartCustomization()): ?>
-                    autostart: true
-                    <?php endif;?>
-                }
-            );
+        $('.product.add.form').mage('slide', {
+            'slideSpeed': 1500,
+            'slideSelector': '#bundle-slide',
+            'slideBackSelector': '.action.customization.back',
+            'bundleProductSelector': '#bundleProduct',
+            'bundleOptionsContainer': '.product.add.form',
+            <?php if ($this->isStartCustomization()): ?>
+            'autostart': true
+            <?php endif;?>
         });
     })(jQuery);
     //]]>
diff --git a/app/code/Magento/Bundle/view/frontend/catalog/product/view/type/bundle.phtml b/app/code/Magento/Bundle/view/frontend/catalog/product/view/type/bundle.phtml
index 6e1f581c966e89ab5f13361e0b25cdd20d8849b9..8ade7b2e0e3e343974678f7fee342af3833f967a 100644
--- a/app/code/Magento/Bundle/view/frontend/catalog/product/view/type/bundle.phtml
+++ b/app/code/Magento/Bundle/view/frontend/catalog/product/view/type/bundle.phtml
@@ -29,12 +29,12 @@
     <script type="text/javascript">
         //<![CDATA[
         (function ($) {
-            head.js("<?php echo $this->getViewFileUrl('Magento_Bundle::/bundle.js') ?>", function() {
-                $('#product_addtocart_form').bundleOption({
-                    bundleConfig: <?php echo $this->getJsonConfig() ?>,
-                    bundleOptionQtyPrefix: "#bundle-option-",
-                    bundleOptionQtySuffix: "-qty-input",
-                    priceSelectors: {
+            $(document).ready(function() {
+                $('#product_addtocart_form').mage('bundleOption', {
+                    "bundleConfig": <?php echo $this->getJsonConfig() ?>,
+                    "bundleOptionQtyPrefix": "#bundle-option-",
+                    "bundleOptionQtySuffix": "-qty-input",
+                    "priceSelectors": {
                         "product-price": "#product-price-<?php echo $_product->getId()?>",
                         "bundle-price": "#bundle-price-<?php echo $_product->getId()?>",
                         "price-including-tax": "#price-including-tax-<?php echo $_product->getId()?>",
diff --git a/app/code/Magento/Bundle/view/frontend/catalog/product/view/type/bundle/options.phtml b/app/code/Magento/Bundle/view/frontend/catalog/product/view/type/bundle/options.phtml
index 0cdd508ba05f5caa52ee1cfd74e983ad4d71de37..96bf97550082e02d3a50626676a111b3a638b8aa 100644
--- a/app/code/Magento/Bundle/view/frontend/catalog/product/view/type/bundle/options.phtml
+++ b/app/code/Magento/Bundle/view/frontend/catalog/product/view/type/bundle/options.phtml
@@ -24,18 +24,18 @@
 ?>
 <?php /** @var $this Magento\Bundle\Block\Catalog\Product\View\Type\Bundle */ ?>
 <?php
-$_product = $this->getProduct();
-$_helper = $this->helper('Magento\Catalog\Helper\Output');
+$product = $this->getProduct();
+$helper = $this->helper('Magento\Catalog\Helper\Output');
 ?>
-<?php $_options = $this->decorateArray($this->getOptions()); ?>
-<?php if ($_product->isSaleable()):?>
-    <?php if (count($_options)): ?>
+<?php $options = $this->decorateArray($this->getOptions()); ?>
+<?php if ($product->isSaleable()):?>
+    <?php if (count($options)): ?>
         <script type="text/javascript">
             //<![CDATA[
             (function ($) {
-                head.js("<?php echo $this->getViewFileUrl('Magento_Bundle::bundle.js') ?>", function () {
-                    $('#product_addtocart_form')
-                        .bundleOption({'optionConfig':<?php echo $this->getJsonConfig()?>})
+                $(document).ready(function() {
+                    $('#product_addtocart_form').mage('bundleOption', {
+                        optionConfig:<?php echo $this->getJsonConfig()?>})
                         .trigger('changeSelection');
                 });
             })(jQuery);
@@ -43,13 +43,13 @@ $_helper = $this->helper('Magento\Catalog\Helper\Output');
         </script>
         <fieldset class="fieldset bundle options">
             <legend id="customizeTitle" class="legend title">
-                <span><?php echo __('Customize %1', $_helper->productAttribute($_product, $_product->getName(), 'name')) ?></span>
+                <span><?php echo __('Customize %1', $helper->productAttribute($product, $product->getName(), 'name')) ?></span>
             </legend><br />
-            <?php foreach ($_options as $_option): ?>
-                <?php if (!$_option->getSelections()): ?>
+            <?php foreach ($options as $option): ?>
+                <?php if (!$option->getSelections()): ?>
                     <?php continue; ?>
                 <?php endif; ?>
-                <?php echo $this->getOptionHtml($_option) ?>
+                <?php echo $this->getOptionHtml($option) ?>
             <?php endforeach; ?>
         </fieldset>
     <?php else: ?>
diff --git a/app/code/Magento/Bundle/view/frontend/js/components.phtml b/app/code/Magento/Bundle/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..290162c25349a9f8721c69a171c644eed0635900
--- /dev/null
+++ b/app/code/Magento/Bundle/view/frontend/js/components.phtml
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+    <script type="text/javascript">
+        (function($) {
+            "use strict";
+            /**
+             * Declaration of resources needed for defined components
+             */
+            $.mage.component({
+                sticky: [
+                    '<?php echo $this->getViewFileUrl('mage/sticky.js') ?>'
+                ],
+                bundleOption: [
+                    '<?php echo $this->getViewFileUrl('Magento_Bundle::bundle.js') ?>'
+                ],
+                slide: [
+                    '<?php echo $this->getViewFileUrl('Magento_Bundle::js/slide.js') ?>'
+                ]
+            });
+        })(jQuery);
+    </script>
+<?php echo $this->getChildHtml() ?>
\ No newline at end of file
diff --git a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_compare_index.xml b/app/code/Magento/Bundle/view/frontend/layout/catalog_product_compare_index.xml
deleted file mode 100644
index e552001556c1d054066ad93b1add5f08bc043272..0000000000000000000000000000000000000000
--- a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_compare_index.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <referenceBlock name="catalog.compare.list">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-        </action>
-    </referenceBlock>
-</layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view.xml b/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view.xml
deleted file mode 100644
index 6455858a3ef64192262d5bdda35ffaff3e91bd73..0000000000000000000000000000000000000000
--- a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <referenceBlock name="catalog.product.related">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-        </action>
-    </referenceBlock>
-</layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_bundle.xml b/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_bundle.xml
index 8066d67661cb63afa1f57e53dd56f8d9611b0be4..a477b2435679548ee27587965cab17755afc4a67 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_bundle.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_bundle.xml
@@ -25,11 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <referenceBlock name="head">
-        <block class="Magento\Theme\Block\Html\Head\Script" name="magento-bundle-bundle-js">
-            <arguments>
-                <argument name="file" xsi:type="string">Magento_Bundle::bundle.js</argument>
-            </arguments>
-        </block>
         <block class="Magento\Theme\Block\Html\Head\Script" name="magento-bundle-js-product-summary-js">
             <arguments>
                 <argument name="file" xsi:type="string">Magento_Bundle::js/product-summary.js</argument>
@@ -42,11 +37,13 @@
         </action>
     </referenceBlock>
     <referenceBlock name="product.info">
-        <block class="Magento\Bundle\Block\Catalog\Product\View" name="bundle.summary" as="form_top" template="catalog/product/view/summary.phtml">
-            <block class="Magento\Bundle\Block\Catalog\Product\Price" name="bundle.prices" as="bundle_prices" template="catalog/product/view/price.phtml">
-                <action method="setMAPTemplate">
-                    <argument name="tmpl" xsi:type="string">Magento_Catalog::product/price_msrp_item.phtml</argument>
-                </action>
+        <block class="Magento\Catalog\Block\Product\View" name="bundle.summary" as="form_top" template="Magento_Bundle::catalog/product/view/summary.phtml">
+            <block class="Magento\Catalog\Pricing\Render" name="product.price.render.bundle.customization">
+                <arguments>
+                    <argument name="price_render" xsi:type="string">product.price.render.default</argument>
+                    <argument name="price_type_code" xsi:type="string">configured_price</argument>
+                    <argument name="zone" xsi:type="string">item_view</argument>
+                </arguments>
             </block>
             <block class="Magento\Catalog\Block\Product\View" name="product.info.addtocart.bundle" as="addtocart" template="product/view/addtocart.phtml"/>
             <block class="Magento\Catalog\Block\Product\View" name="product.info.addto.bundle" as="addto" template="product/view/addto.phtml"/>
@@ -64,7 +61,7 @@
     <move element="product.price.tier" destination="product.info.options.wrapper.bottom" before="-" />
     <referenceBlock name="product.info.options.wrapper.bottom">
         <block class="Magento\CatalogInventory\Block\Qtyincrements" name="product.info.qtyincrements" before="-" template="qtyincrements.phtml"/>
-        <block class="Magento\Bundle\Block\Catalog\Product\View" name="bundle.back.button" as="backButton" after="-" template="catalog/product/view/backbutton.phtml"/>
+        <block class="Magento\Catalog\Block\Product\View" name="bundle.back.button" as="backButton" after="-" template="Magento_Bundle::catalog/product/view/backbutton.phtml"/>
         <action method="unsetChild">
             <argument name="block" xsi:type="string">product.info.addtocart</argument>
         </action>
@@ -80,21 +77,8 @@
         <move element="product.info" destination="bundle.options.container" before="-"/>
     </referenceContainer>
     <referenceContainer name="product.info.type">
-        <block class="Magento\Bundle\Block\Catalog\Product\View\Type\Bundle" name="product.info.bundle" as="product_type_data" template="catalog/product/view/type/bundle.phtml">
-            <action method="addPriceBlockType">
-                <argument name="type" xsi:type="string">bundle</argument>
-                <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-                <argument name="template" xsi:type="string">catalog/product/view/price.phtml</argument>
-            </action>
-        </block>
+        <block class="Magento\Bundle\Block\Catalog\Product\View\Type\Bundle" name="product.info.bundle" as="product_type_data" template="catalog/product/view/type/bundle.phtml"/>
         <container name="product.info.bundle.extra" after="product.info.bundle" as="product_type_data_extra" label="Product Extra Info"/>
-        <block class="Magento\Bundle\Block\Catalog\Product\View" name="customize.button" as="customize_button" template="catalog/product/view/customize.phtml"/>
+        <block class="Magento\Catalog\Block\Product\View" name="customize.button" as="customize_button" template="Magento_Bundle::catalog/product/view/customize.phtml"/>
     </referenceContainer>
-    <referenceBlock name="product.clone_prices">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/view/price.phtml</argument>
-        </action>
-    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_simple.xml b/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_simple.xml
index 75418ce963251685ee42a435b3f62b1db0ead6d1..de213eab989f0610fe866097016224c02b198f0c 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_simple.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_simple.xml
@@ -25,11 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <referenceBlock name="product.info.upsell">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-        </action>
         <action method="setItemLimit">
             <argument name="type" xsi:type="string">bundle</argument>
             <argument name="limit" xsi:type="string">4</argument>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/catalogsearch_advanced_result.xml b/app/code/Magento/Bundle/view/frontend/layout/catalogsearch_advanced_result.xml
deleted file mode 100644
index 403b2e3b52a6ca1e3cae284fc38f9bd4295bbf5a..0000000000000000000000000000000000000000
--- a/app/code/Magento/Bundle/view/frontend/layout/catalogsearch_advanced_result.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <referenceBlock name="search_result_list">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-        </action>
-    </referenceBlock>
-</layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_configure_type_bundle.xml b/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_configure_type_bundle.xml
index a96747e5482926828668350240b6e7427af5985b..d1c5bffba06a610b9a61bbdabe069549c893f895 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_configure_type_bundle.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_configure_type_bundle.xml
@@ -25,6 +25,9 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <update handle="catalog_product_view_type_bundle"/>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="bundle_cart_configure_head_components" template="Magento_Checkout::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="product.info.addtocart.bundle">
         <action method="setTemplate">
             <argument name="template" xsi:type="string">Magento_Checkout::cart/item/configure/updatecart.phtml</argument>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_index.xml b/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_index.xml
deleted file mode 100644
index 6970987b0d2f247135115a710d9065f87dc6bcb9..0000000000000000000000000000000000000000
--- a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_index.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <referenceBlock name="checkout.cart.crosssell">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-        </action>
-    </referenceBlock>
-</layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/default.xml b/app/code/Magento/Bundle/view/frontend/layout/default.xml
index 795e85e565d3798140a6eef4c6298a3dd040dc19..b7ad9b861ed00fc1ef75b15cdf706b64b022a6f8 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/default.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/default.xml
@@ -24,18 +24,7 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <referenceBlock name="wishlist_sidebar">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-        </action>
-    </referenceBlock>
-    <referenceBlock name="catalog_product_price_template">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-        </action>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="bundle_checkout_page_head_components" template="Magento_Bundle::js/components.phtml"/>
     </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/tag_product_list.xml b/app/code/Magento/Bundle/view/frontend/layout/tag_product_list.xml
deleted file mode 100644
index 403b2e3b52a6ca1e3cae284fc38f9bd4295bbf5a..0000000000000000000000000000000000000000
--- a/app/code/Magento/Bundle/view/frontend/layout/tag_product_list.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <referenceBlock name="search_result_list">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-        </action>
-    </referenceBlock>
-</layout>
diff --git a/app/code/Magento/Captcha/view/frontend/default.phtml b/app/code/Magento/Captcha/view/frontend/default.phtml
index c7fcca18f0816eb3e1228863490bb0514d044157..04d94e068da3bd1aeb3d263ca21d0d026fbac699 100644
--- a/app/code/Magento/Captcha/view/frontend/default.phtml
+++ b/app/code/Magento/Captcha/view/frontend/default.phtml
@@ -31,26 +31,20 @@
     <div class="control captcha">
         <input name="<?php echo \Magento\Captcha\Helper\Data::INPUT_NAME_FIELD_VALUE ?>[<?php echo $this->getFormId()?>]" type="text" class="input-text required-entry" data-validate="{required:true}" id="captcha_<?php echo $this->getFormId() ?>" />
         <div class="nested">
-            <div class="field captcha no-label" data-captcha="<?php echo $this->getFormId()?>" id="captcha-container-<?php echo $this->getFormId()?>">
+            <div class="field captcha no-label"
+                 data-captcha="<?php echo $this->getFormId()?>"
+                 id="captcha-container-<?php echo $this->getFormId()?>"
+                 data-mage-init='{"captcha":{"url": "<?php echo $this->getRefreshUrl()?>",
+                                             "type": "<?php echo $this->getFormId() ?>"}}'>
                 <div class="control captcha-image">
                     <button type="button" class="action reload captcha-reload" title="<?php echo __('Reload captcha') ?>"><span><?php echo __('Reload captcha') ?></span></button>
                     <img alt="<?php echo __('Please type the letters below')?>" class="captcha-img" height="<?php echo $this->getImgHeight() ?>" src="<?php echo $captcha->getImgSrc() ?>"/>
                     <?php if ($captcha->isCaseSensitive()) :?>
-                    <div class="captcha-note note">
-                        <?php echo __('<strong>Attention</strong>: Captcha is case sensitive.') ?>
-                    </div>
+                        <div class="captcha-note note">
+                            <?php echo __('<strong>Attention</strong>: Captcha is case sensitive.') ?>
+                        </div>
                     <?php endif; ?>
                 </div>
-                <script type="text/javascript">//<![CDATA[
-                (function ($) {
-                    head.js("<?php echo $this->getViewFileUrl('Magento_Captcha::captcha.js') ?>",function() {
-                        $('#captcha-container-<?php echo $this->getFormId()?>').captcha({
-                            url: '<?php echo $this->getRefreshUrl()?>',
-                            type: '<?php echo $this->getFormId() ?>'
-                        });
-                    });
-                })(jQuery);
-                //]]></script>
             </div>
         </div>
     </div>
diff --git a/app/code/Magento/Catalog/view/frontend/product/view/price.phtml b/app/code/Magento/Captcha/view/frontend/js/components.phtml
similarity index 69%
rename from app/code/Magento/Catalog/view/frontend/product/view/price.phtml
rename to app/code/Magento/Captcha/view/frontend/js/components.phtml
index 82ddae66f4a111592e63ff6b418e28d8dab9a416..637c92eb747c43841acb557b9dd2f57532949c11 100644
--- a/app/code/Magento/Catalog/view/frontend/product/view/price.phtml
+++ b/app/code/Magento/Captcha/view/frontend/js/components.phtml
@@ -19,9 +19,22 @@
  * needs please refer to http://www.magentocommerce.com for more information.
  *
  * @category    design
+ * @package     base_default
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
 ?>
-<?php $_product = $this->getProduct() ?>
-<?php echo $this->getPriceHtml($_product) ?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            captcha: [
+                '<?php echo $this->getViewFileUrl('Magento_Captcha::captcha.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Captcha/view/frontend/layout/checkout_onepage_index.xml b/app/code/Magento/Captcha/view/frontend/layout/checkout_onepage_index.xml
index c81985c1bc3d14aaa80379f58d124a76b88b32aa..5d61af923cc9233f1bf18273a210c8ac69b6e8e5 100644
--- a/app/code/Magento/Captcha/view/frontend/layout/checkout_onepage_index.xml
+++ b/app/code/Magento/Captcha/view/frontend/layout/checkout_onepage_index.xml
@@ -68,4 +68,7 @@
             </action>
         </block>
     </referenceContainer>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="captcha_page_head_components" template="Magento_Captcha::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Captcha/view/frontend/layout/contacts_index_index.xml b/app/code/Magento/Captcha/view/frontend/layout/contacts_index_index.xml
index 4a4996ea5f89b4cb3ae08fa71eab0b06d1511b16..affbbb616da3d851a77f8030a60ed8458ed3d436 100644
--- a/app/code/Magento/Captcha/view/frontend/layout/contacts_index_index.xml
+++ b/app/code/Magento/Captcha/view/frontend/layout/contacts_index_index.xml
@@ -37,4 +37,7 @@
             </action>
         </block>
     </referenceContainer>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="captcha_page_head_components" template="Magento_Captcha::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Captcha/view/frontend/layout/customer_account_create.xml b/app/code/Magento/Captcha/view/frontend/layout/customer_account_create.xml
index 6f2c7772e4f8490885ae5783369f77c7682c9de3..67cc574af8ca50ad37cd9b79a59d511d42d1014d 100644
--- a/app/code/Magento/Captcha/view/frontend/layout/customer_account_create.xml
+++ b/app/code/Magento/Captcha/view/frontend/layout/customer_account_create.xml
@@ -37,4 +37,7 @@
             </action>
         </block>
     </referenceContainer>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="captcha_page_head_components" template="Magento_Captcha::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Captcha/view/frontend/layout/customer_account_forgotpassword.xml b/app/code/Magento/Captcha/view/frontend/layout/customer_account_forgotpassword.xml
index 208286eb72480370df282ba0ef53007ccf0de135..5ce7ad5e5541adf7accb0ce42b5321f7cdadc684 100644
--- a/app/code/Magento/Captcha/view/frontend/layout/customer_account_forgotpassword.xml
+++ b/app/code/Magento/Captcha/view/frontend/layout/customer_account_forgotpassword.xml
@@ -37,4 +37,7 @@
             </action>
         </block>
     </referenceContainer>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="captcha_page_head_components" template="Magento_Captcha::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Captcha/view/frontend/layout/customer_account_login.xml b/app/code/Magento/Captcha/view/frontend/layout/customer_account_login.xml
index c345dae694fcdb04c62bb6e8a4a3354b09d28df3..f458c779d69ed904dc261228c0a061bb700b7fec 100644
--- a/app/code/Magento/Captcha/view/frontend/layout/customer_account_login.xml
+++ b/app/code/Magento/Captcha/view/frontend/layout/customer_account_login.xml
@@ -37,4 +37,7 @@
             </action>
         </block>
     </referenceContainer>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="captcha_page_head_components" template="Magento_Captcha::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Catalog/Block/Product/AbstractProduct.php b/app/code/Magento/Catalog/Block/Product/AbstractProduct.php
index 08c0ac7bf0e123b663eafae010f7ce9a4f5b63cd..283a717867c7282eadebd69b5fee9d1cec19904b 100644
--- a/app/code/Magento/Catalog/Block/Product/AbstractProduct.php
+++ b/app/code/Magento/Catalog/Block/Product/AbstractProduct.php
@@ -34,8 +34,6 @@
  */
 namespace Magento\Catalog\Block\Product;
 
-use Magento\Framework\View\Element\BlockInterface;
-
 /**
  * Class AbstractProduct
  */
@@ -58,16 +56,6 @@ abstract class AbstractProduct extends \Magento\Framework\View\Element\Template
      */
     protected $_priceBlockDefaultTemplate = 'product/price.phtml';
 
-    /**
-     * @var string
-     */
-    protected $_tierPriceDefaultTemplate = 'product/view/tierprices.phtml';
-
-    /**
-     * @var array
-     */
-    protected $_priceBlockTypes = array();
-
     /**
      * Flag which allow/disallow to use link for as low as price
      *
@@ -162,12 +150,10 @@ abstract class AbstractProduct extends \Magento\Framework\View\Element\Template
     /**
      * @param Context $context
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_imageHelper = $context->getImageHelper();
         $this->_layoutHelper = $context->getLayoutHelper();
@@ -179,7 +165,6 @@ abstract class AbstractProduct extends \Magento\Framework\View\Element\Template
         $this->_taxData = $context->getTaxData();
         $this->_catalogData = $context->getCatalogHelper();
         $this->_mathRandom = $context->getMathRandom();
-        $this->_priceBlockTypes = $priceBlockTypes;
         $this->reviewRenderer = $context->getReviewRenderer();
         parent::__construct($context, $data);
     }
@@ -267,51 +252,6 @@ abstract class AbstractProduct extends \Magento\Framework\View\Element\Template
         return null;
     }
 
-    /**
-     * @param string $productTypeId
-     * @return BlockInterface
-     */
-    protected function _getPriceBlock($productTypeId)
-    {
-        if (!isset($this->_priceBlock[$productTypeId])) {
-            $block = $this->_block;
-            if (isset($this->_priceBlockTypes[$productTypeId])) {
-                if ($this->_priceBlockTypes[$productTypeId]['block'] != '') {
-                    $block = $this->_priceBlockTypes[$productTypeId]['block'];
-                }
-            }
-            $this->_priceBlock[$productTypeId] = $this->getLayout()->createBlock($block);
-        }
-        return $this->_priceBlock[$productTypeId];
-    }
-
-    /**
-     * @param string $productTypeId
-     * @return string
-     */
-    protected function _getPriceBlockTemplate($productTypeId)
-    {
-        if (isset($this->_priceBlockTypes[$productTypeId])) {
-            if ($this->_priceBlockTypes[$productTypeId]['template'] != '') {
-                return $this->_priceBlockTypes[$productTypeId]['template'];
-            }
-        }
-        return $this->_priceBlockDefaultTemplate;
-    }
-
-    /**
-     * Prepares and returns block to render some product type
-     *
-     * @param string $productType
-     * @return \Magento\Framework\View\Element\Template
-     */
-    public function _preparePriceRenderer($productType)
-    {
-        return $this->_getPriceBlock($productType)
-            ->setTemplate($this->_getPriceBlockTemplate($productType))
-            ->setUseLinkForAsLowAs($this->_useLinkForAsLowAs);
-    }
-
     /**
      * Returns product price block html
      *
@@ -342,21 +282,6 @@ abstract class AbstractProduct extends \Magento\Framework\View\Element\Template
             ->toHtml();
     }
 
-    /**
-     * Adding customized price template for product type
-     *
-     * @param string $type
-     * @param string $block
-     * @param string $template
-     * @return void
-     */
-    public function addPriceBlockType($type, $block = '', $template = '')
-    {
-        if ($type) {
-            $this->_priceBlockTypes[$type] = array('block' => $block, 'template' => $template);
-        }
-    }
-
     /**
      * Get product reviews summary
      *
@@ -386,102 +311,6 @@ abstract class AbstractProduct extends \Magento\Framework\View\Element\Template
         return $this->getData('product');
     }
 
-    /**
-     * Retrieve tier price template
-     *
-     * @return string
-     */
-    public function getTierPriceTemplate()
-    {
-        if (!$this->hasData('tier_price_template')) {
-            return $this->_tierPriceDefaultTemplate;
-        }
-
-        return $this->getData('tier_price_template');
-    }
-
-    /**
-     * Returns product tier price block html
-     *
-     * @param \Magento\Catalog\Model\Product $product
-     * @return string
-     */
-    public function getTierPriceHtml($product = null)
-    {
-        if (is_null($product)) {
-            $product = $this->getProduct();
-        }
-        return $this->_getPriceBlock($product->getTypeId())
-            ->setTemplate($this->getTierPriceTemplate())
-            ->setProduct($product)
-            ->toHtml();
-    }
-
-    /**
-     * Get tier prices (formatted)
-     *
-     * @param \Magento\Catalog\Model\Product $product
-     * @return array
-     *
-     * @deprecated see \Magento\Catalog\Pricing\Price\TierPrice
-     */
-    public function getTierPrices($product = null)
-    {
-        if (is_null($product)) {
-            $product = $this->getProduct();
-        }
-        $prices = $product->getFormatedTierPrice();
-
-        $res = array();
-        if (is_array($prices)) {
-            foreach ($prices as $price) {
-                $price['price_qty'] = $price['price_qty'] * 1;
-
-                $productPrice = $product->getPrice();
-                if ($productPrice != $product->getFinalPrice()) {
-                    $productPrice = $product->getFinalPrice();
-                }
-
-                // Group price must be used for percent calculation if it is lower
-                $groupPrice = $product->getGroupPrice();
-                if ($productPrice > $groupPrice) {
-                    $productPrice = $groupPrice;
-                }
-
-                if ($price['price'] < $productPrice) {
-                    $price['savePercent'] = ceil(100 - ((100 / $productPrice) * $price['price']));
-
-                    $tierPrice = $this->_storeManager->getStore()->convertPrice(
-                        $this->_taxData->getPrice($product, $price['website_price'])
-                    );
-                    $price['formated_price'] = $this->_storeManager->getStore()->formatPrice($tierPrice);
-                    $price['formated_price_incl_tax'] = $this->_storeManager->getStore()->formatPrice(
-                        $this->_storeManager->getStore()->convertPrice(
-                            $this->_taxData->getPrice($product, $price['website_price'], true)
-                        )
-                    );
-
-                    if ($this->_catalogData->canApplyMsrp($product)) {
-                        $oldPrice = $product->getFinalPrice();
-                        $product->setPriceCalculation(false);
-                        $product->setPrice($tierPrice);
-                        $product->setFinalPrice($tierPrice);
-
-                        $this->getPriceHtml($product);
-                        $product->setPriceCalculation(true);
-
-                        $price['real_price_html'] = $product->getRealPriceHtml();
-                        $product->setFinalPrice($oldPrice);
-                    }
-
-                    $res[] = $price;
-                }
-            }
-        }
-
-        return $res;
-    }
-
     /**
      * Add all attributes and apply pricing logic to products collection
      * to get correct values in different products lists.
@@ -656,26 +485,6 @@ abstract class AbstractProduct extends \Magento\Framework\View\Element\Template
         return (bool) $statusInfo->getDisplayStatus();
     }
 
-    /**
-     * If exists price template block, retrieve price blocks from it
-     *
-     * @return \Magento\Catalog\Block\Product\AbstractProduct
-     */
-    protected function _prepareLayout()
-    {
-        parent::_prepareLayout();
-
-        /* @var $block \Magento\Catalog\Block\Product\Price\Template */
-        $block = $this->getLayout()->getBlock('catalog_product_price_template');
-        if ($block) {
-            foreach ($block->getPriceBlockTypes() as $type => $priceBlock) {
-                $this->addPriceBlockType($type, $priceBlock['block'], $priceBlock['template']);
-            }
-        }
-
-        return $this;
-    }
-
     /**
      * Product thumbnail image url getter
      *
@@ -830,7 +639,7 @@ abstract class AbstractProduct extends \Magento\Framework\View\Element\Template
     {
         return $this->getProductPriceHtml(
             $product,
-            \Magento\Catalog\Pricing\Price\FinalPriceInterface::PRICE_TYPE_FINAL,
+            \Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE,
             \Magento\Framework\Pricing\Render::ZONE_ITEM_LIST
         );
     }
diff --git a/app/code/Magento/Catalog/Block/Product/Compare/ListCompare.php b/app/code/Magento/Catalog/Block/Product/Compare/ListCompare.php
index 0c7420b732372d6065ee63a173be9de65ed576b7..21f2196a89fb82519626d91fcfc4ea0cfa666c7b 100644
--- a/app/code/Magento/Catalog/Block/Product/Compare/ListCompare.php
+++ b/app/code/Magento/Catalog/Block/Product/Compare/ListCompare.php
@@ -114,7 +114,6 @@ class ListCompare extends \Magento\Catalog\Block\Product\Compare\AbstractCompare
      * @param \Magento\Framework\App\Http\Context $httpContext
      * @param \Magento\Customer\Service\V1\CustomerCurrentService $currentCustomer
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
@@ -124,8 +123,7 @@ class ListCompare extends \Magento\Catalog\Block\Product\Compare\AbstractCompare
         \Magento\Log\Model\Visitor $logVisitor,
         \Magento\Framework\App\Http\Context $httpContext,
         \Magento\Customer\Service\V1\CustomerCurrentService $currentCustomer,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_coreData = $coreData;
         $this->_itemCollectionFactory = $itemCollectionFactory;
@@ -135,8 +133,7 @@ class ListCompare extends \Magento\Catalog\Block\Product\Compare\AbstractCompare
         $this->currentCustomer = $currentCustomer;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
         $this->_isScopePrivate = true;
     }
@@ -279,7 +276,7 @@ class ListCompare extends \Magento\Catalog\Block\Product\Compare\AbstractCompare
         $price = '';
         if ($priceRender) {
             $price = $priceRender->render(
-                \Magento\Catalog\Pricing\Price\FinalPriceInterface::PRICE_TYPE_FINAL,
+                \Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE,
                 $product,
                 [
                     'price_id' => 'product-price-' . $product->getId() . $idSuffix,
diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php
index 8db2d9d61e81c680e1fc13e2dc44f4c415450374..58ccf88a6ca11fa823d08ec26148e9a4db66d166 100644
--- a/app/code/Magento/Catalog/Block/Product/ListProduct.php
+++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php
@@ -73,23 +73,20 @@ class ListProduct extends AbstractProduct implements IdentityInterface
      * @param \Magento\Catalog\Model\CategoryFactory $categoryFactory
      * @param \Magento\Catalog\Model\Layer $catalogLayer
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Core\Helper\PostData $postDataHelper,
         \Magento\Catalog\Model\CategoryFactory $categoryFactory,
         \Magento\Catalog\Model\Layer $catalogLayer,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_categoryFactory = $categoryFactory;
         $this->_catalogLayer = $catalogLayer;
         $this->_postDataHelper = $postDataHelper;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
@@ -359,7 +356,7 @@ class ListProduct extends AbstractProduct implements IdentityInterface
         $price = '';
         if ($priceRender) {
             $price = $priceRender->render(
-                \Magento\Catalog\Pricing\Price\FinalPriceInterface::PRICE_TYPE_FINAL,
+                \Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE,
                 $product,
                 [
                     'include_container' => true,
diff --git a/app/code/Magento/Catalog/Block/Product/NewProduct.php b/app/code/Magento/Catalog/Block/Product/NewProduct.php
index 4c30c076853c6495a8997984e1f09c92077d34ca..61583653839f9c6e2813687465381483c328002b 100644
--- a/app/code/Magento/Catalog/Block/Product/NewProduct.php
+++ b/app/code/Magento/Catalog/Block/Product/NewProduct.php
@@ -70,23 +70,20 @@ class NewProduct extends \Magento\Catalog\Block\Product\AbstractProduct implemen
      * @param \Magento\Catalog\Model\Product\Visibility $catalogProductVisibility
      * @param \Magento\Framework\App\Http\Context $httpContext
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Catalog\Model\Resource\Product\CollectionFactory $productCollectionFactory,
         \Magento\Catalog\Model\Product\Visibility $catalogProductVisibility,
         \Magento\Framework\App\Http\Context $httpContext,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_productCollectionFactory = $productCollectionFactory;
         $this->_catalogProductVisibility = $catalogProductVisibility;
         $this->httpContext = $httpContext;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
         $this->_isScopePrivate = true;
     }
diff --git a/app/code/Magento/Catalog/Block/Product/Price.php b/app/code/Magento/Catalog/Block/Product/Price.php
index 01915db11b21dc90a2566055d55c4f21dcc05924..41c937600354e26bcea7790c23bb7b1366189f49 100644
--- a/app/code/Magento/Catalog/Block/Product/Price.php
+++ b/app/code/Magento/Catalog/Block/Product/Price.php
@@ -24,15 +24,11 @@
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 
+namespace Magento\Catalog\Block\Product;
 
 /**
  * Product price block
- *
- * @category   Magento
- * @package    Magento_Catalog
  */
-namespace Magento\Catalog\Block\Product;
-
 class Price extends \Magento\Framework\View\Element\Template implements \Magento\Framework\View\Block\IdentityInterface
 {
     /**
@@ -158,70 +154,6 @@ class Price extends \Magento\Framework\View\Element\Template implements \Magento
         return $this->_idSuffix;
     }
 
-    /**
-     * Get tier prices (formatted)
-     *
-     * @param \Magento\Catalog\Model\Product $product
-     * @return array
-     * @deprecated
-     */
-    public function getTierPrices($product = null)
-    {
-        if (is_null($product)) {
-            $product = $this->getProduct();
-        }
-        $prices = $product->getFormatedTierPrice();
-
-        $res = array();
-        if (is_array($prices)) {
-            foreach ($prices as $price) {
-                $price['price_qty'] = $price['price_qty'] * 1;
-
-                $productPrice = $product->getPrice();
-                if ($product->getPrice() != $product->getFinalPrice()) {
-                    $productPrice = $product->getFinalPrice();
-                }
-
-                // Group price must be used for percent calculation if it is lower
-                $groupPrice = $product->getGroupPrice();
-                if ($productPrice > $groupPrice) {
-                    $productPrice = $groupPrice;
-                }
-
-                if ($price['price'] < $productPrice) {
-                    $price['savePercent'] = ceil(100 - 100 / $productPrice * $price['price']);
-
-                    $tierPrice = $this->_storeManager->getStore()->convertPrice(
-                        $this->_taxData->getPrice($product, $price['website_price'])
-                    );
-                    $price['formated_price'] = $this->_storeManager->getStore()->formatPrice($tierPrice);
-                    $price['formated_price_incl_tax'] = $this->_storeManager->getStore()->formatPrice(
-                        $this->_storeManager->getStore()->convertPrice(
-                            $this->_taxData->getPrice($product, $price['website_price'], true)
-                        )
-                    );
-
-                    if ($this->_catalogData->canApplyMsrp($product)) {
-                        $oldPrice = $product->getFinalPrice();
-                        $product->setPriceCalculation(false);
-                        $product->setPrice($tierPrice);
-                        $product->setFinalPrice($tierPrice);
-
-                        $this->getLayout()->getBlock('product.info')->getPriceHtml($product);
-                        $product->setPriceCalculation(true);
-
-                        $price['real_price_html'] = $product->getRealPriceHtml();
-                        $product->setFinalPrice($oldPrice);
-                    }
-
-                    $res[] = $price;
-                }
-            }
-        }
-
-        return $res;
-    }
-
     /**
      * Retrieve url for direct adding product to cart
      *
diff --git a/app/code/Magento/Catalog/Block/Product/Price/Template.php b/app/code/Magento/Catalog/Block/Product/Price/Template.php
deleted file mode 100644
index 9155725e6bf09e82c59c2073f6eb0551e66599b6..0000000000000000000000000000000000000000
--- a/app/code/Magento/Catalog/Block/Product/Price/Template.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @category    Magento
- * @package     Magento_Catalog
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
- */
-
-
-/**
- * Catalog Product Price Template Block
- *
- * @category    Magento
- * @package     Magento_Catalog
- * @author      Magento Core Team <core@magentocommerce.com>
- */
-namespace Magento\Catalog\Block\Product\Price;
-
-class Template extends \Magento\Framework\View\Element\AbstractBlock
-{
-    /**
-     * Product Price block types cache
-     *
-     * @var array
-     */
-    protected $_priceBlockTypes = array();
-
-    /**
-     * @param \Magento\Framework\View\Element\Context $context
-     * @param array $priceBlockTypes
-     * @param array $data
-     */
-    public function __construct(
-        \Magento\Framework\View\Element\Context $context,
-        array $priceBlockTypes = array(),
-        array $data = array()
-    ) {
-        $this->_priceBlockTypes = $priceBlockTypes;
-        parent::__construct($context, $data);
-    }
-
-    /**
-     * Retrieve array of Price Block Types
-     *
-     * Key is price block type name and value is array of
-     * template and block strings
-     *
-     * @return array
-     */
-    public function getPriceBlockTypes()
-    {
-        return $this->_priceBlockTypes;
-    }
-
-    /**
-     * Adding customized price template for product type
-     *
-     * @param string $type
-     * @param string $block
-     * @param string $template
-     * @return \Magento\Catalog\Block\Product\Price\Template
-     */
-    public function addPriceBlockType($type, $block = '', $template = '')
-    {
-        if ($type) {
-            $this->_priceBlockTypes[$type] = array('block' => $block, 'template' => $template);
-        }
-
-        return $this;
-    }
-}
diff --git a/app/code/Magento/Catalog/Block/Product/ProductList/Promotion.php b/app/code/Magento/Catalog/Block/Product/ProductList/Promotion.php
index 72b6d870be9337710ce438f62f235553f0bda14f..cb74b0418b2979f9f92756ce888227c6b3ea1989 100644
--- a/app/code/Magento/Catalog/Block/Product/ProductList/Promotion.php
+++ b/app/code/Magento/Catalog/Block/Product/ProductList/Promotion.php
@@ -52,7 +52,6 @@ class Promotion extends \Magento\Catalog\Block\Product\ListProduct
      * @param \Magento\Catalog\Model\LayerFactory $layerFactory
      * @param CollectionFactory $productCollectionFactory
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
@@ -61,8 +60,7 @@ class Promotion extends \Magento\Catalog\Block\Product\ListProduct
         \Magento\Catalog\Model\Layer\Category $catalogLayer,
         \Magento\Catalog\Model\LayerFactory $layerFactory,
         CollectionFactory $productCollectionFactory,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_layerFactory = $layerFactory;
         $this->_productCollectionFactory = $productCollectionFactory;
@@ -71,8 +69,7 @@ class Promotion extends \Magento\Catalog\Block\Product\ListProduct
             $postDataHelper,
             $categoryFactory,
             $catalogLayer,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/Catalog/Block/Product/ProductList/Random.php b/app/code/Magento/Catalog/Block/Product/ProductList/Random.php
index 0f953016224d9b8732bb4aea83c642ceaa129593..b17024a08151bf9a6f1fc6b0231bc6722de61b03 100644
--- a/app/code/Magento/Catalog/Block/Product/ProductList/Random.php
+++ b/app/code/Magento/Catalog/Block/Product/ProductList/Random.php
@@ -54,7 +54,6 @@ class Random extends \Magento\Catalog\Block\Product\ListProduct
      * @param \Magento\Catalog\Model\LayerFactory $layerFactory
      * @param \Magento\Catalog\Model\Resource\Product\CollectionFactory $productCollectionFactory
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
@@ -63,8 +62,7 @@ class Random extends \Magento\Catalog\Block\Product\ListProduct
         \Magento\Catalog\Model\Layer\Category $catalogLayer,
         \Magento\Catalog\Model\LayerFactory $layerFactory,
         \Magento\Catalog\Model\Resource\Product\CollectionFactory $productCollectionFactory,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_layerFactory = $layerFactory;
         $this->_productCollectionFactory = $productCollectionFactory;
@@ -73,8 +71,7 @@ class Random extends \Magento\Catalog\Block\Product\ListProduct
             $postDataHelper,
             $categoryFactory,
             $catalogLayer,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/Catalog/Block/Product/ProductList/Related.php b/app/code/Magento/Catalog/Block/Product/ProductList/Related.php
index 4dc7f58cd592d165e0b89080d8ae26490d1db2aa..8ef064d5a0d36f3cfbb4528ad3f8bb3c2fb66ba1 100644
--- a/app/code/Magento/Catalog/Block/Product/ProductList/Related.php
+++ b/app/code/Magento/Catalog/Block/Product/ProductList/Related.php
@@ -74,23 +74,20 @@ class Related extends \Magento\Catalog\Block\Product\AbstractProduct implements
      * @param \Magento\Catalog\Model\Product\Visibility $catalogProductVisibility
      * @param \Magento\Checkout\Model\Session $checkoutSession
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Checkout\Model\Resource\Cart $checkoutCart,
         \Magento\Catalog\Model\Product\Visibility $catalogProductVisibility,
         \Magento\Checkout\Model\Session $checkoutSession,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_checkoutCart = $checkoutCart;
         $this->_catalogProductVisibility = $catalogProductVisibility;
         $this->_checkoutSession = $checkoutSession;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/Catalog/Block/Product/ProductList/Upsell.php b/app/code/Magento/Catalog/Block/Product/ProductList/Upsell.php
index 842461a1ddffb174fe640ee4748a9ef6e5650d4b..5b5fcf88e9aa370a63264706e4b08032ae45938d 100644
--- a/app/code/Magento/Catalog/Block/Product/ProductList/Upsell.php
+++ b/app/code/Magento/Catalog/Block/Product/ProductList/Upsell.php
@@ -89,23 +89,20 @@ class Upsell extends \Magento\Catalog\Block\Product\AbstractProduct implements \
      * @param \Magento\Catalog\Model\Product\Visibility $catalogProductVisibility
      * @param \Magento\Checkout\Model\Session $checkoutSession
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Checkout\Model\Resource\Cart $checkoutCart,
         \Magento\Catalog\Model\Product\Visibility $catalogProductVisibility,
         \Magento\Checkout\Model\Session $checkoutSession,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_checkoutCart = $checkoutCart;
         $this->_catalogProductVisibility = $catalogProductVisibility;
         $this->_checkoutSession = $checkoutSession;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/Catalog/Block/Product/Send.php b/app/code/Magento/Catalog/Block/Product/Send.php
index 6c7858e98aadfe8ca97aeba406c135221219d0cf..0d5cd90478307b6f69b9548dcd73498415211187 100644
--- a/app/code/Magento/Catalog/Block/Product/Send.php
+++ b/app/code/Magento/Catalog/Block/Product/Send.php
@@ -47,21 +47,18 @@ class Send extends \Magento\Catalog\Block\Product\AbstractProduct
      * @param \Magento\Customer\Model\Session $customerSession
      * @param \Magento\Customer\Helper\View $customerView
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Customer\Model\Session $customerSession,
         \Magento\Customer\Helper\View $customerView,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_customerSession = $customerSession;
         $this->_customerView = $customerView;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
         $this->_isScopePrivate = true;
     }
diff --git a/app/code/Magento/Catalog/Block/Product/View.php b/app/code/Magento/Catalog/Block/Product/View.php
index fcd14d4429e25c105a3aafdab456df091b5154e8..f51dfd2f76b24aaf5c2a5fc7d6293a28da508e90 100644
--- a/app/code/Magento/Catalog/Block/Product/View.php
+++ b/app/code/Magento/Catalog/Block/Product/View.php
@@ -95,7 +95,6 @@ class View extends AbstractProduct implements \Magento\Framework\View\Block\Iden
      * @param \Magento\Catalog\Model\ProductTypes\ConfigInterface $productTypeConfig
      * @param \Magento\Framework\Locale\FormatInterface $localeFormat
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
@@ -107,8 +106,7 @@ class View extends AbstractProduct implements \Magento\Framework\View\Block\Iden
         \Magento\Catalog\Helper\Product $productHelper,
         \Magento\Catalog\Model\ProductTypes\ConfigInterface $productTypeConfig,
         \Magento\Framework\Locale\FormatInterface $localeFormat,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_productHelper = $productHelper;
         $this->_coreData = $coreData;
@@ -120,8 +118,7 @@ class View extends AbstractProduct implements \Magento\Framework\View\Block\Iden
         $this->_localeFormat = $localeFormat;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
@@ -249,15 +246,12 @@ class View extends AbstractProduct implements \Magento\Framework\View\Block\Iden
         $_request->setProductClassId($product->getTaxClassId());
         $currentTax = $this->_taxCalculation->getRate($_request);
 
-        $_tierPrices = array();
-        $_tierPricesInclTax = array();
-        foreach ($product->getTierPrice() as $tierPrice) {
-            $_tierPrices[] = $this->_coreData->currency($tierPrice['website_price'], false, false);
-            $_tierPricesInclTax[] = $this->_coreData->currency(
-                $this->_taxData->getPrice($product, (int)$tierPrice['website_price'], true),
-                false,
-                false
-            );
+        $tierPrices = array();
+
+        $tierPricesList = $product->getPriceInfo()->getPrice('tier_price')->getTierPriceList();
+
+        foreach ($tierPricesList as $tierPrice) {
+            $tierPrices[] = $this->_coreData->currency($tierPrice['price']->getValue(), false, false);
         }
         $config = array(
             'productId' => $product->getId(),
@@ -271,7 +265,7 @@ class View extends AbstractProduct implements \Magento\Framework\View\Block\Iden
                 false
             ),
             'productOldPrice' => $this->_coreData->currency(
-                $product->getPriceInfo()->getPrice('regular_price')->getAmount()->getBaseAmount(),
+                $product->getPriceInfo()->getPrice('regular_price')->getAmount()->getValue(),
                 false,
                 false
             ),
@@ -293,8 +287,7 @@ class View extends AbstractProduct implements \Magento\Framework\View\Block\Iden
             'plusDispositionTax' => 0,
             'oldMinusDisposition' => 0,
             'minusDisposition' => 0,
-            'tierPrices' => $_tierPrices,
-            'tierPricesInclTax' => $_tierPricesInclTax
+            'tierPrices' => $tierPrices
         );
 
         $responseObject = new \Magento\Framework\Object();
diff --git a/app/code/Magento/Catalog/Block/Product/View/AbstractView.php b/app/code/Magento/Catalog/Block/Product/View/AbstractView.php
index e2a7ac5995ff0290e6c77be8a4a68e08821d9d8e..c3eb8063b61aa13e01cd390274fe549ef7c3369e 100644
--- a/app/code/Magento/Catalog/Block/Product/View/AbstractView.php
+++ b/app/code/Magento/Catalog/Block/Product/View/AbstractView.php
@@ -44,19 +44,16 @@ abstract class AbstractView extends \Magento\Catalog\Block\Product\AbstractProdu
      * @param \Magento\Catalog\Block\Product\Context $context
      * @param \Magento\Framework\Stdlib\ArrayUtils $arrayUtils
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Framework\Stdlib\ArrayUtils $arrayUtils,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->arrayUtils = $arrayUtils;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/Catalog/Block/Product/Widget/NewWidget.php b/app/code/Magento/Catalog/Block/Product/Widget/NewWidget.php
index f1be592cd57d2521a191d3468612975fa823f1d3..64d70288af15c8fb48f44cd8279dff391410cce0 100644
--- a/app/code/Magento/Catalog/Block/Product/Widget/NewWidget.php
+++ b/app/code/Magento/Catalog/Block/Product/Widget/NewWidget.php
@@ -62,21 +62,6 @@ class NewWidget extends \Magento\Catalog\Block\Product\NewProduct implements \Ma
      */
     protected $_pager;
 
-    /**
-     * Initialize block's cache and template settings
-     *
-     * @return void
-     */
-    protected function _construct()
-    {
-        parent::_construct();
-        $this->addPriceBlockType(
-            'bundle',
-            'Magento\Bundle\Block\Catalog\Product\Price',
-            'bundle/catalog/product/price.phtml'
-        );
-    }
-
     /**
      * Product collection initialize process
      *
@@ -249,7 +234,7 @@ class NewWidget extends \Magento\Catalog\Block\Product\NewProduct implements \Ma
         $price = '';
         if ($priceRender) {
             $price = $priceRender->render(
-                \Magento\Catalog\Pricing\Price\FinalPriceInterface::PRICE_TYPE_FINAL,
+                \Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE,
                 $product,
                 $arguments
             );
diff --git a/app/code/Magento/Catalog/Helper/Product/Configuration.php b/app/code/Magento/Catalog/Helper/Product/Configuration.php
index 02f33832346e7c5f639a780a5bc15c4455cfc1fe..89f7204d47bbc562b6cdf8f3b1b399ac3fca6685 100644
--- a/app/code/Magento/Catalog/Helper/Product/Configuration.php
+++ b/app/code/Magento/Catalog/Helper/Product/Configuration.php
@@ -25,13 +25,15 @@
  */
 namespace Magento\Catalog\Helper\Product;
 
+use Magento\Catalog\Helper\Product\Configuration\ConfigurationInterface;
+use Magento\Framework\App\Helper\AbstractHelper;
+
 /**
  * Helper for fetching properties by product configurational item
  *
  * @SuppressWarnings(PHPMD.LongVariable)
  */
-class Configuration extends \Magento\Framework\App\Helper\AbstractHelper implements
-    \Magento\Catalog\Helper\Product\Configuration\ConfigurationInterface
+class Configuration extends AbstractHelper implements ConfigurationInterface
 {
     /**
      * Filter manager
@@ -89,15 +91,11 @@ class Configuration extends \Magento\Framework\App\Helper\AbstractHelper impleme
                 $option = $product->getOptionById($optionId);
                 if ($option) {
                     $itemOption = $item->getOptionByCode('option_' . $option->getId());
-                    $group = $option->groupFactory(
-                        $option->getType()
-                    )->setOption(
-                        $option
-                    )->setConfigurationItem(
-                        $item
-                    )->setConfigurationItemOption(
-                        $itemOption
-                    );
+                    /** @var $group \Magento\Catalog\Model\Product\Option\Type\DefaultType */
+                    $group = $option->groupFactory($option->getType())
+                        ->setOption($option)
+                        ->setConfigurationItem($item)
+                        ->setConfigurationItemOption($itemOption);
 
                     if ('file' == $option->getType()) {
                         $downloadParams = $item->getFileDownloadParams();
diff --git a/app/code/Magento/Catalog/Helper/Product/Configuration/ConfigurationInterface.php b/app/code/Magento/Catalog/Helper/Product/Configuration/ConfigurationInterface.php
index b72ccb67b63520fab371ac55fc064360538f3e19..2ac6d335ecc65d89264b61ed4d249244b32613ef 100644
--- a/app/code/Magento/Catalog/Helper/Product/Configuration/ConfigurationInterface.php
+++ b/app/code/Magento/Catalog/Helper/Product/Configuration/ConfigurationInterface.php
@@ -24,15 +24,11 @@
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 
+namespace Magento\Catalog\Helper\Product\Configuration;
+
 /**
  * Interface for product configuration helpers
- *
- * @category   Magento
- * @package    Magento_Catalog
- * @author     Magento Core Team <core@magentocommerce.com>
  */
-namespace Magento\Catalog\Helper\Product\Configuration;
-
 interface ConfigurationInterface
 {
     /**
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/AbstractAction.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/AbstractAction.php
index 70fe542c8282720fa12bb2e3e708620f9592df4c..298f793a5e99f138a05e2e8f206aed7ee1289093 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/AbstractAction.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/AbstractAction.php
@@ -32,16 +32,6 @@ namespace Magento\Catalog\Model\Indexer\Product\Flat;
  */
 abstract class AbstractAction
 {
-    /**
-     * Path to maximum available amount of indexes for flat indexer
-     */
-    const XML_NODE_MAX_INDEX_COUNT = 'catalog/product/flat/max_index_count';
-
-    /**
-     * Maximum size of attributes chunk
-     */
-    const ATTRIBUTES_CHUNK_SIZE = 59;
-
     /**
      * Suffix for value field on composite attributes
      *
@@ -50,50 +40,22 @@ abstract class AbstractAction
     protected $_valueFieldSuffix = '_value';
 
     /**
-     * Resource instance
+     * Suffix for drop table (uses on flat table rename)
      *
-     * @var \Magento\Framework\App\Resource
+     * @var string
      */
-    protected $_resource;
+    protected $_tableDropSuffix = '_drop_indexer';
 
     /**
      * @var \Magento\Store\Model\StoreManagerInterface
      */
     protected $_storeManager;
 
-    /**
-     * Catalog resource helper
-     *
-     * @var \Magento\Catalog\Model\Resource\Helper
-     */
-    protected $_resourceHelper;
-
-    /**
-     * Core store config
-     *
-     * @var \Magento\Framework\App\Config\ScopeConfigInterface
-     */
-    protected $_scopeConfig;
-
-    /**
-     * Suffix for drop table (uses on flat table rename)
-     *
-     * @var string
-     */
-    protected $_tableDropSuffix = '_drop_indexer';
-
     /**
      * @var \Magento\Catalog\Helper\Product\Flat\Indexer
      */
     protected $_productIndexerHelper;
 
-    /**
-     * Core data
-     *
-     * @var \Magento\Core\Helper\Data
-     */
-    protected $_coreData;
-
     /**
      * @var \Magento\Framework\DB\Adapter\AdapterInterface
      */
@@ -118,11 +80,6 @@ abstract class AbstractAction
      */
     protected $_productTypes = array();
 
-    /**
-     * @var \Magento\Catalog\Model\Indexer\Product\Flat\Processor
-     */
-    protected $_flatProductProcessor;
-
     /**
      * @var TableBuilder
      */
@@ -136,33 +93,23 @@ abstract class AbstractAction
     /**
      * @param \Magento\Framework\App\Resource $resource
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
-     * @param \Magento\Catalog\Model\Resource\Helper $resourceHelper
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
      * @param \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper
      * @param \Magento\Catalog\Model\Product\Type $productType
-     * @param Processor $flatProductProcessor
      * @param TableBuilder $tableBuilder
      * @param FlatTableBuilder $flatTableBuilder
      */
     public function __construct(
         \Magento\Framework\App\Resource $resource,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
-        \Magento\Catalog\Model\Resource\Helper $resourceHelper,
-        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
         \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper,
         \Magento\Catalog\Model\Product\Type $productType,
-        \Magento\Catalog\Model\Indexer\Product\Flat\Processor $flatProductProcessor,
-        \Magento\Catalog\Model\Indexer\Product\Flat\TableBuilder $tableBuilder,
-        \Magento\Catalog\Model\Indexer\Product\Flat\FlatTableBuilder $flatTableBuilder
+        TableBuilder $tableBuilder,
+        FlatTableBuilder $flatTableBuilder
     ) {
-        $this->_resource = $resource;
         $this->_storeManager = $storeManager;
-        $this->_resourceHelper = $resourceHelper;
-        $this->_scopeConfig = $scopeConfig;
         $this->_productIndexerHelper = $productHelper;
         $this->_productType = $productType;
         $this->_connection = $resource->getConnection('default');
-        $this->_flatProductProcessor = $flatProductProcessor;
         $this->_tableBuilder = $tableBuilder;
         $this->_flatTableBuilder = $flatTableBuilder;
     }
@@ -175,17 +122,6 @@ abstract class AbstractAction
      */
     abstract public function execute($ids);
 
-    /**
-     * Retrieve Catalog Product Flat Table name
-     *
-     * @param int $storeId
-     * @return string
-     */
-    public function getFlatTableName($storeId)
-    {
-        return sprintf('%s_%s', $this->_connection->getTableName('catalog_product_flat'), $storeId);
-    }
-
     /**
      * Return temporary table name by regular table name
      *
@@ -243,34 +179,6 @@ abstract class AbstractAction
         }
     }
 
-    /**
-     * Remove products from flat that are not exist
-     *
-     * @param array $ids
-     * @param int $storeId
-     * @return void
-     */
-    protected function _removeDeletedProducts(array &$ids, $storeId)
-    {
-        $select = $this->_connection->select()->from(
-            $this->_productIndexerHelper->getTable('catalog_product_entity')
-        )->where(
-            'entity_id IN(?)',
-            $ids
-        );
-        $result = $this->_connection->query($select);
-
-        $existentProducts = array();
-        foreach ($result->fetchAll() as $product) {
-            $existentProducts[] = $product['entity_id'];
-        }
-
-        $productsToDelete = array_diff($ids, $existentProducts);
-        $ids = $existentProducts;
-
-        $this->deleteProductsFromStore($productsToDelete, $storeId);
-    }
-
     /**
      * Retrieve Product Type Instances
      * as key - type code, value - instance model
@@ -406,172 +314,6 @@ abstract class AbstractAction
         return $this;
     }
 
-    /**
-     * Reindex single product into flat product table
-     *
-     * @param int $storeId
-     * @param int $productId
-     * @return \Magento\Catalog\Model\Indexer\Product\Flat
-     */
-    protected function _reindexSingleProduct($storeId, $productId)
-    {
-        $flatTable = $this->_productIndexerHelper->getFlatTableName($storeId);
-
-        if (!$this->_connection->isTableExists($flatTable)) {
-            $this->_flatTableBuilder->build(
-                $storeId,
-                array($productId),
-                $this->_valueFieldSuffix,
-                $this->_tableDropSuffix,
-                false
-            );
-        }
-
-        $attributes = $this->_productIndexerHelper->getAttributes();
-        $eavAttributes = $this->_productIndexerHelper->getTablesStructure($attributes);
-        $updateData = array();
-        $describe = $this->_connection->describeTable($flatTable);
-
-        foreach ($eavAttributes as $tableName => $tableColumns) {
-            $columnsChunks = array_chunk($tableColumns, self::ATTRIBUTES_CHUNK_SIZE, true);
-
-            foreach ($columnsChunks as $columns) {
-                $select = $this->_connection->select();
-                $selectValue = $this->_connection->select();
-                $keyColumns = array(
-                    'entity_id' => 'e.entity_id',
-                    'attribute_id' => 't.attribute_id',
-                    'value' => $this->_connection->getIfNullSql('`t2`.`value`', '`t`.`value`')
-                );
-
-                if ($tableName != $this->_productIndexerHelper->getTable('catalog_product_entity')) {
-                    $valueColumns = array();
-                    $ids = array();
-                    $select->from(
-                        array('e' => $this->_productIndexerHelper->getTable('catalog_product_entity')),
-                        $keyColumns
-                    );
-
-                    $selectValue->from(
-                        array('e' => $this->_productIndexerHelper->getTable('catalog_product_entity')),
-                        $keyColumns
-                    );
-
-                    /** @var $attribute \Magento\Catalog\Model\Resource\Eav\Attribute */
-                    foreach ($columns as $columnName => $attribute) {
-                        if (isset($describe[$columnName])) {
-                            $ids[$attribute->getId()] = $columnName;
-                        }
-                    }
-
-                    $select->joinLeft(
-                        array('t' => $tableName),
-                        'e.entity_id = t.entity_id ' . $this->_connection->quoteInto(
-                            ' AND t.attribute_id IN (?)',
-                            array_keys($ids)
-                        ) . ' AND t.store_id = 0',
-                        array()
-                    )->joinLeft(
-                        array('t2' => $tableName),
-                        't.entity_id = t2.entity_id ' .
-                        ' AND t.attribute_id = t2.attribute_id  ' .
-                        $this->_connection->quoteInto(
-                            ' AND t2.store_id = ?',
-                            $storeId
-                        ),
-                        array()
-                    )->where(
-                        'e.entity_id = ' . $productId
-                    )->where(
-                        't.attribute_id IS NOT NULL'
-                    );
-                    $cursor = $this->_connection->query($select);
-                    while ($row = $cursor->fetch(\Zend_Db::FETCH_ASSOC)) {
-                        $updateData[$ids[$row['attribute_id']]] = $row['value'];
-                        $valueColumnName = $ids[$row['attribute_id']] . $this->_valueFieldSuffix;
-                        if (isset($describe[$valueColumnName])) {
-                            $valueColumns[$row['value']] = $valueColumnName;
-                        }
-                    }
-
-                    //Update not simple attributes (eg. dropdown)
-                    if (!empty($valueColumns)) {
-                        $valueIds = array_keys($valueColumns);
-
-                        $select = $this->_connection->select()->from(
-                            array('t' => $this->_productIndexerHelper->getTable('eav_attribute_option_value')),
-                            array('t.option_id', 't.value')
-                        )->where(
-                            $this->_connection->quoteInto('t.option_id IN (?)', $valueIds)
-                        );
-                        $cursor = $this->_connection->query($select);
-                        while ($row = $cursor->fetch(\Zend_Db::FETCH_ASSOC)) {
-                            $valueColumnName = $valueColumns[$row['option_id']];
-                            if (isset($describe[$valueColumnName])) {
-                                $updateData[$valueColumnName] = $row['value'];
-                            }
-                        }
-                    }
-                } else {
-                    $columnNames = array_keys($columns);
-                    $columnNames[] = 'attribute_set_id';
-                    $columnNames[] = 'type_id';
-                    $select->from(
-                        array('e' => $this->_productIndexerHelper->getTable('catalog_product_entity')),
-                        $columnNames
-                    )->where(
-                        'e.entity_id = ' . $productId
-                    );
-                    $cursor = $this->_connection->query($select);
-                    $row = $cursor->fetch(\Zend_Db::FETCH_ASSOC);
-                    if (!empty($row)) {
-                        foreach ($row as $columnName => $value) {
-                            $updateData[$columnName] = $value;
-                        }
-                    }
-                }
-            }
-        }
-
-        if (!empty($updateData)) {
-            $updateData += array('entity_id' => $productId);
-            $updateFields = array();
-            foreach ($updateData as $key => $value) {
-                $updateFields[$key] = $key;
-            }
-            $this->_connection->insertOnDuplicate($flatTable, $updateData, $updateFields);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Delete products from flat table(s)
-     *
-     * @param int|array $productId
-     * @param null|int $storeId
-     * @return void
-     */
-    public function deleteProductsFromStore($productId, $storeId = null)
-    {
-        if (!is_array($productId)) {
-            $productId = array($productId);
-        }
-        if (null === $storeId) {
-            foreach ($this->_storeManager->getStores() as $store) {
-                $this->_connection->delete(
-                    $this->_productIndexerHelper->getFlatTableName($store->getId()),
-                    array('entity_id IN(?)' => $productId)
-                );
-            }
-        } else {
-            $this->_connection->delete(
-                $this->_productIndexerHelper->getFlatTableName((int)$storeId),
-                array('entity_id IN(?)' => $productId)
-            );
-        }
-    }
-
     /**
      * Check is flat table for store exists
      *
@@ -581,7 +323,7 @@ abstract class AbstractAction
     protected function _isFlatTableExists($storeId)
     {
         if (!isset($this->_flatTablesExist[$storeId])) {
-            $tableName = $this->getFlatTableName($storeId);
+            $tableName = $this->_productIndexerHelper->getFlatTableName($storeId);
             $isTableExists = $this->_connection->isTableExists($tableName);
 
             $this->_flatTablesExist[$storeId] = $isTableExists ? true : false;
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Eraser.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Eraser.php
new file mode 100644
index 0000000000000000000000000000000000000000..8829c244647cd88a73db125f93f4146a0ee63489
--- /dev/null
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Eraser.php
@@ -0,0 +1,114 @@
+<?php
+/**
+ * Flat item ereaser. Used to clear items from flat table
+ *
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+namespace Magento\Catalog\Model\Indexer\Product\Flat\Action;
+
+class Eraser
+{
+    /**
+     * @var \Magento\Catalog\Helper\Product\Flat\Indexer
+     */
+    protected $productIndexerHelper;
+
+    /**
+     * @var \Magento\Framework\DB\Adapter\AdapterInterface
+     */
+    protected $connection;
+
+    /**
+     * @var \Magento\Store\Model\StoreManagerInterface
+     */
+    protected $storeManager;
+
+    /**
+     * @param \Magento\Framework\App\Resource $resource
+     * @param \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper
+     * @param \Magento\Store\Model\StoreManagerInterface $storeManager
+     */
+    public function __construct(
+        \Magento\Framework\App\Resource $resource,
+        \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper,
+        \Magento\Store\Model\StoreManagerInterface $storeManager
+    ) {
+        $this->productIndexerHelper = $productHelper;
+        $this->connection = $resource->getConnection('default');
+        $this->storeManager = $storeManager;
+    }
+
+    /**
+     * Remove products from flat that are not exist
+     *
+     * @param array $ids
+     * @param int $storeId
+     * @return void
+     */
+    public function removeDeletedProducts(array &$ids, $storeId)
+    {
+        $select = $this->connection->select()->from(
+            $this->productIndexerHelper->getTable('catalog_product_entity')
+        )->where(
+            'entity_id IN(?)',
+            $ids
+        );
+        $result = $this->connection->query($select);
+
+        $existentProducts = array();
+        foreach ($result->fetchAll() as $product) {
+            $existentProducts[] = $product['entity_id'];
+        }
+
+        $productsToDelete = array_diff($ids, $existentProducts);
+        $ids = $existentProducts;
+
+        $this->deleteProductsFromStore($productsToDelete, $storeId);
+    }
+
+    /**
+     * Delete products from flat table(s)
+     *
+     * @param int|array $productId
+     * @param null|int $storeId
+     * @return void
+     */
+    public function deleteProductsFromStore($productId, $storeId = null)
+    {
+        if (!is_array($productId)) {
+            $productId = array($productId);
+        }
+        if (null === $storeId) {
+            foreach ($this->storeManager->getStores() as $store) {
+                $this->connection->delete(
+                    $this->productIndexerHelper->getFlatTableName($store->getId()),
+                    array('entity_id IN(?)' => $productId)
+                );
+            }
+        } else {
+            $this->connection->delete(
+                $this->productIndexerHelper->getFlatTableName((int)$storeId),
+                array('entity_id IN(?)' => $productId)
+            );
+        }
+    }
+}
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Indexer.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Indexer.php
new file mode 100644
index 0000000000000000000000000000000000000000..9ddc75f04dd7767504ab300a5950f1da653219d1
--- /dev/null
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Indexer.php
@@ -0,0 +1,184 @@
+<?php
+/**
+ *
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+namespace Magento\Catalog\Model\Indexer\Product\Flat\Action;
+
+class Indexer
+{
+    /**
+     * Maximum size of attributes chunk
+     */
+    const ATTRIBUTES_CHUNK_SIZE = 59;
+
+    /**
+     * @var \Magento\Catalog\Helper\Product\Flat\Indexer
+     */
+    protected $_productIndexerHelper;
+
+    /**
+     * @var \Magento\Framework\DB\Adapter\AdapterInterface
+     */
+    protected $_connection;
+    /**
+     * @param \Magento\Framework\App\Resource $resource
+     * @param \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper
+     */
+    public function __construct(
+        \Magento\Framework\App\Resource $resource,
+        \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper
+    ) {
+        $this->_productIndexerHelper = $productHelper;
+        $this->_connection = $resource->getConnection('default');
+    }
+
+    /**
+     * Write single product into flat product table
+     *
+     * @param int $storeId
+     * @param int $productId
+     * @param string $valueFieldSuffix
+     * @return \Magento\Catalog\Model\Indexer\Product\Flat
+     */
+    public function write($storeId, $productId, $valueFieldSuffix = '')
+    {
+        $flatTable = $this->_productIndexerHelper->getFlatTableName($storeId);
+
+        $attributes = $this->_productIndexerHelper->getAttributes();
+        $eavAttributes = $this->_productIndexerHelper->getTablesStructure($attributes);
+        $updateData = array();
+        $describe = $this->_connection->describeTable($flatTable);
+
+        foreach ($eavAttributes as $tableName => $tableColumns) {
+            $columnsChunks = array_chunk($tableColumns, self::ATTRIBUTES_CHUNK_SIZE, true);
+
+            foreach ($columnsChunks as $columns) {
+                $select = $this->_connection->select();
+                $selectValue = $this->_connection->select();
+                $keyColumns = array(
+                    'entity_id' => 'e.entity_id',
+                    'attribute_id' => 't.attribute_id',
+                    'value' => $this->_connection->getIfNullSql('`t2`.`value`', '`t`.`value`')
+                );
+
+                if ($tableName != $this->_productIndexerHelper->getTable('catalog_product_entity')) {
+                    $valueColumns = array();
+                    $ids = array();
+                    $select->from(
+                        array('e' => $this->_productIndexerHelper->getTable('catalog_product_entity')),
+                        $keyColumns
+                    );
+
+                    $selectValue->from(
+                        array('e' => $this->_productIndexerHelper->getTable('catalog_product_entity')),
+                        $keyColumns
+                    );
+
+                    /** @var $attribute \Magento\Catalog\Model\Resource\Eav\Attribute */
+                    foreach ($columns as $columnName => $attribute) {
+                        if (isset($describe[$columnName])) {
+                            $ids[$attribute->getId()] = $columnName;
+                        }
+                    }
+
+                    $select->joinLeft(
+                        array('t' => $tableName),
+                        'e.entity_id = t.entity_id ' . $this->_connection->quoteInto(
+                            ' AND t.attribute_id IN (?)',
+                            array_keys($ids)
+                        ) . ' AND t.store_id = 0',
+                        array()
+                    )->joinLeft(
+                        array('t2' => $tableName),
+                        't.entity_id = t2.entity_id ' .
+                        ' AND t.attribute_id = t2.attribute_id  ' .
+                        $this->_connection->quoteInto(
+                            ' AND t2.store_id = ?',
+                            $storeId
+                        ),
+                        array()
+                    )->where(
+                        'e.entity_id = ' . $productId
+                    )->where(
+                        't.attribute_id IS NOT NULL'
+                    );
+                    $cursor = $this->_connection->query($select);
+                    while ($row = $cursor->fetch(\Zend_Db::FETCH_ASSOC)) {
+                        $updateData[$ids[$row['attribute_id']]] = $row['value'];
+                        $valueColumnName = $ids[$row['attribute_id']] . $valueFieldSuffix;
+                        if (isset($describe[$valueColumnName])) {
+                            $valueColumns[$row['value']] = $valueColumnName;
+                        }
+                    }
+
+                    //Update not simple attributes (eg. dropdown)
+                    if (!empty($valueColumns)) {
+                        $valueIds = array_keys($valueColumns);
+
+                        $select = $this->_connection->select()->from(
+                            array('t' => $this->_productIndexerHelper->getTable('eav_attribute_option_value')),
+                            array('t.option_id', 't.value')
+                        )->where(
+                            $this->_connection->quoteInto('t.option_id IN (?)', $valueIds)
+                        );
+                        $cursor = $this->_connection->query($select);
+                        while ($row = $cursor->fetch(\Zend_Db::FETCH_ASSOC)) {
+                            $valueColumnName = $valueColumns[$row['option_id']];
+                            if (isset($describe[$valueColumnName])) {
+                                $updateData[$valueColumnName] = $row['value'];
+                            }
+                        }
+                    }
+                } else {
+                    $columnNames = array_keys($columns);
+                    $columnNames[] = 'attribute_set_id';
+                    $columnNames[] = 'type_id';
+                    $select->from(
+                        array('e' => $this->_productIndexerHelper->getTable('catalog_product_entity')),
+                        $columnNames
+                    )->where(
+                        'e.entity_id = ' . $productId
+                    );
+                    $cursor = $this->_connection->query($select);
+                    $row = $cursor->fetch(\Zend_Db::FETCH_ASSOC);
+                    if (!empty($row)) {
+                        foreach ($row as $columnName => $value) {
+                            $updateData[$columnName] = $value;
+                        }
+                    }
+                }
+            }
+        }
+
+        if (!empty($updateData)) {
+            $updateData += array('entity_id' => $productId);
+            $updateFields = array();
+            foreach ($updateData as $key => $value) {
+                $updateFields[$key] = $key;
+            }
+            $this->_connection->insertOnDuplicate($flatTable, $updateData, $updateFields);
+        }
+
+        return $this;
+    }
+}
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Row.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Row.php
index 0aea1d535fddfd9d33ded822e225638394706c05..c5c9491dd29305a83810677b82802fd0471207df 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Row.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Row.php
@@ -25,12 +25,58 @@
  */
 namespace Magento\Catalog\Model\Indexer\Product\Flat\Action;
 
+use Magento\Catalog\Model\Indexer\Product\Flat\Processor;
+use Magento\Catalog\Model\Indexer\Product\Flat\TableBuilder;
+use Magento\Catalog\Model\Indexer\Product\Flat\FlatTableBuilder;
+
 /**
  * Class Row reindex action
  * @package Magento\Catalog\Model\Indexer\Product\Flat\Action
  */
 class Row extends \Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction
 {
+    /**
+     * @var \Magento\Catalog\Model\Indexer\Product\Flat\Action\Indexer
+     */
+    protected $flatItemWriter;
+
+    /**
+     * @var Eraser
+     */
+    protected $flatItemEraser;
+
+    /**
+     * @param \Magento\Framework\App\Resource $resource
+     * @param \Magento\Store\Model\StoreManagerInterface $storeManager
+     * @param \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper
+     * @param \Magento\Catalog\Model\Product\Type $productType
+     * @param TableBuilder $tableBuilder
+     * @param FlatTableBuilder $flatTableBuilder
+     * @param Indexer $flatItemWriter
+     * @param Eraser $flatItemEraser
+     */
+    public function __construct(
+        \Magento\Framework\App\Resource $resource,
+        \Magento\Store\Model\StoreManagerInterface $storeManager,
+        \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper,
+        \Magento\Catalog\Model\Product\Type $productType,
+        TableBuilder $tableBuilder,
+        FlatTableBuilder $flatTableBuilder,
+        Indexer $flatItemWriter,
+        Eraser $flatItemEraser
+    ) {
+        parent::__construct(
+            $resource,
+            $storeManager,
+            $productHelper,
+            $productType,
+            $tableBuilder,
+            $flatTableBuilder
+        );
+        $this->flatItemWriter = $flatItemWriter;
+        $this->flatItemEraser = $flatItemEraser;
+    }
+
     /**
      * Execute row reindex action
      *
@@ -45,9 +91,21 @@ class Row extends \Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction
         }
         $ids = array($id);
         foreach ($this->_storeManager->getStores() as $store) {
-            $this->_removeDeletedProducts($ids, $store->getId());
+            $tableExists = $this->_isFlatTableExists($store->getId());
+            if ($tableExists) {
+                $this->flatItemEraser->removeDeletedProducts($ids, $store->getId());
+            }
             if (isset($ids[0])) {
-                $this->_reindexSingleProduct($store->getId(), $ids[0]);
+                if (!$tableExists) {
+                    $this->_flatTableBuilder->build(
+                        $store->getId(),
+                        array($ids[0]),
+                        $this->_valueFieldSuffix,
+                        $this->_tableDropSuffix,
+                        false
+                    );
+                }
+                $this->flatItemWriter->write($store->getId(), $ids[0], $this->_valueFieldSuffix);
             }
         }
         return $this;
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Rows.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Rows.php
index cceba57cf0b52f26f91c7e7b7ac491c0786c4767..2fb5aaf39914461db46ce83b44adc6014bfa272f 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Rows.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Rows.php
@@ -25,6 +25,9 @@
  */
 namespace Magento\Catalog\Model\Indexer\Product\Flat\Action;
 
+use Magento\Catalog\Model\Indexer\Product\Flat\TableBuilder;
+use Magento\Catalog\Model\Indexer\Product\Flat\FlatTableBuilder;
+
 /**
  * Class Rows reindex action for mass actions
  *
@@ -32,6 +35,40 @@ namespace Magento\Catalog\Model\Indexer\Product\Flat\Action;
  */
 class Rows extends \Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction
 {
+    /**
+     * @var Eraser
+     */
+    protected $flatItemEraser;
+
+    /**
+     * @param \Magento\Framework\App\Resource $resource
+     * @param \Magento\Store\Model\StoreManagerInterface $storeManager
+     * @param \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper
+     * @param \Magento\Catalog\Model\Product\Type $productType
+     * @param TableBuilder $tableBuilder
+     * @param FlatTableBuilder $flatTableBuilder
+     * @param Eraser $flatItemEraser
+     */
+    public function __construct(
+        \Magento\Framework\App\Resource $resource,
+        \Magento\Store\Model\StoreManagerInterface $storeManager,
+        \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper,
+        \Magento\Catalog\Model\Product\Type $productType,
+        TableBuilder $tableBuilder,
+        FlatTableBuilder $flatTableBuilder,
+        Eraser $flatItemEraser
+    ) {
+        parent::__construct(
+            $resource,
+            $storeManager,
+            $productHelper,
+            $productType,
+            $tableBuilder,
+            $flatTableBuilder
+        );
+        $this->flatItemEraser = $flatItemEraser;
+    }
+
     /**
      * Execute multiple rows reindex action
      *
@@ -48,7 +85,7 @@ class Rows extends \Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction
         foreach ($this->_storeManager->getStores() as $store) {
             $idsBatches = array_chunk($ids, \Magento\Catalog\Helper\Product\Flat\Indexer::BATCH_SIZE);
             foreach ($idsBatches as $changedIds) {
-                $this->_removeDeletedProducts($changedIds, $store->getId());
+                $this->flatItemEraser->removeDeletedProducts($changedIds, $store->getId());
                 if (!empty($changedIds)) {
                     $this->_reindex($store->getId(), $changedIds);
                 }
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/FlatTableBuilder.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/FlatTableBuilder.php
index f7f6a998e9bc151b22ac14302f91cf470b99a401..e937a06a874cd10302a2022d7ec90578497789f3 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/FlatTableBuilder.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/FlatTableBuilder.php
@@ -31,6 +31,11 @@ namespace Magento\Catalog\Model\Indexer\Product\Flat;
  */
 class FlatTableBuilder
 {
+    /**
+     * Path to maximum available amount of indexes for flat indexer
+     */
+    const XML_NODE_MAX_INDEX_COUNT = 'catalog/product/flat/max_index_count';
+
     /**
      * @var \Magento\Catalog\Helper\Product\Flat\Indexer
      */
@@ -123,7 +128,7 @@ class FlatTableBuilder
         $indexesNeed = $this->_productIndexerHelper->getFlatIndexes();
 
         $maxIndex = $this->_config->getValue(
-            \Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction::XML_NODE_MAX_INDEX_COUNT
+            self::XML_NODE_MAX_INDEX_COUNT
         );
         if ($maxIndex && count($indexesNeed) > $maxIndex) {
             throw new \Magento\Framework\Model\Exception(
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/TableBuilder.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/TableBuilder.php
index 5d6481cc24b9d57fa47901acd3bda70177fe04ea..c7b5a3d37632349d9355b0e70cb0c06ea78f29fc 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/TableBuilder.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/TableBuilder.php
@@ -258,7 +258,7 @@ class TableBuilder
 
             $columnsChunks = array_chunk(
                 $tableColumns,
-                \Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction::ATTRIBUTES_CHUNK_SIZE,
+                Action\Indexer::ATTRIBUTES_CHUNK_SIZE,
                 true
             );
             foreach ($columnsChunks as $columnsList) {
diff --git a/app/code/Magento/Catalog/Model/Product.php b/app/code/Magento/Catalog/Model/Product.php
index 15446a4038dc7ae8b810cc8aec6c2e198207fc50..aa42badd5cae048161d91f553cfdf453c7204878 100644
--- a/app/code/Magento/Catalog/Model/Product.php
+++ b/app/code/Magento/Catalog/Model/Product.php
@@ -757,6 +757,16 @@ class Product extends \Magento\Catalog\Model\AbstractModel implements IdentityIn
         return $this;
     }
 
+    /**
+     * Get quantity for product
+     *
+     * @return float
+     */
+    public function getQty()
+    {
+        return $this->getData('qty');
+    }
+
     /**
      * Callback for entity reindex
      *
diff --git a/app/code/Magento/Catalog/Model/Product/Configuration/Item/ItemInterface.php b/app/code/Magento/Catalog/Model/Product/Configuration/Item/ItemInterface.php
index 4e85966cc05d13d0a529a31380bf2e663056f128..540007beb7cd1ec50b915633234a86a3dc4cdeee 100644
--- a/app/code/Magento/Catalog/Model/Product/Configuration/Item/ItemInterface.php
+++ b/app/code/Magento/Catalog/Model/Product/Configuration/Item/ItemInterface.php
@@ -24,15 +24,11 @@
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 
+namespace Magento\Catalog\Model\Product\Configuration\Item;
+
 /**
  * Product configurational item interface
- *
- * @category   Magento
- * @package    Magento_Catalog
- * @author     Magento Core Team <core@magentocommerce.com>
  */
-namespace Magento\Catalog\Model\Product\Configuration\Item;
-
 interface ItemInterface
 {
     /**
diff --git a/app/code/Magento/Catalog/Model/Product/Option.php b/app/code/Magento/Catalog/Model/Product/Option.php
index 2de6843d454b987c4e67564485ac2acf85026488..7745e8a332be8816b518542ac420bd168d374cf7 100644
--- a/app/code/Magento/Catalog/Model/Product/Option.php
+++ b/app/code/Magento/Catalog/Model/Product/Option.php
@@ -431,7 +431,7 @@ class Option extends AbstractModel
     public function getPrice($flag = false)
     {
         if ($flag && $this->getPriceType() == 'percent') {
-            $basePrice = $this->getProduct()->getPriceInfo()->getPrice(BasePrice::PRICE_TYPE_BASE_PRICE)->getValue();
+            $basePrice = $this->getProduct()->getPriceInfo()->getPrice(BasePrice::PRICE_CODE)->getValue();
             $price = $basePrice * ($this->_getData('price') / 100);
             return $price;
         }
diff --git a/app/code/Magento/Catalog/Model/Product/Option/Type/File.php b/app/code/Magento/Catalog/Model/Product/Option/Type/File.php
index b3d6f229b5f910946bfb01338c1ecb5f200334c9..9dae9ada9b2274831b83a6f16cc9d36f5bd9434d 100644
--- a/app/code/Magento/Catalog/Model/Product/Option/Type/File.php
+++ b/app/code/Magento/Catalog/Model/Product/Option/Type/File.php
@@ -782,7 +782,6 @@ class File extends \Magento\Catalog\Model\Product\Option\Type\DefaultType
                 $this->_rootDirectory->getAbsolutePath($quotePath),
                 $this->_rootDirectory->getAbsolutePath($orderPath)
             );
-            $this->_rootDirectory->copyFile($quotePath, $orderPath);
         } catch (\Exception $e) {
             return $this;
         }
diff --git a/app/code/Magento/Catalog/Model/Product/Type.php b/app/code/Magento/Catalog/Model/Product/Type.php
index d1e9bf94d1c882c3eda8b208e49f121f4e1a20f3..bdfe35666f77fc22dea711e66d9ddfa1faeb8dcb 100644
--- a/app/code/Magento/Catalog/Model/Product/Type.php
+++ b/app/code/Magento/Catalog/Model/Product/Type.php
@@ -30,7 +30,6 @@
 namespace Magento\Catalog\Model\Product;
 
 use Magento\Catalog\Model\Product;
-use Magento\Framework\Pricing\Object\SaleableInterface;
 
 class Type
 {
@@ -181,12 +180,12 @@ class Type
     /**
      * Get Product Price Info object
      *
-     * @param SaleableInterface $product
+     * @param Product $saleableItem
      * @return \Magento\Framework\Pricing\PriceInfoInterface
      */
-    public function getPriceInfo(SaleableInterface $product)
+    public function getPriceInfo(Product $saleableItem)
     {
-        return $this->_priceInfoFactory->create($product);
+        return $this->_priceInfoFactory->create($saleableItem);
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/Resource/Category/Flat.php b/app/code/Magento/Catalog/Model/Resource/Category/Flat.php
index e90bf636c492d532889632afb7e90c7ad134a1e5..17404be9d87732684c97c42505f24ed00762f6d4 100644
--- a/app/code/Magento/Catalog/Model/Resource/Category/Flat.php
+++ b/app/code/Magento/Catalog/Model/Resource/Category/Flat.php
@@ -231,9 +231,10 @@ class Flat extends \Magento\Index\Model\Resource\AbstractResource
      * @param \Magento\Catalog\Model\Category|int $parentNode
      * @param integer $recursionLevel
      * @param integer $storeId
+     * @param bool $skipMenuFilter
      * @return array
      */
-    protected function _loadNodes($parentNode = null, $recursionLevel = 0, $storeId = 0)
+    protected function _loadNodes($parentNode = null, $recursionLevel = 0, $storeId = 0, $skipMenuFilter = false)
     {
         $_conn = $this->_getReadAdapter();
         $startLevel = 1;
@@ -279,13 +280,14 @@ class Flat extends \Magento\Index\Model\Resource\AbstractResource
         )->where(
             'main_table.is_active = ?',
             '1'
-        )->where(
-            'main_table.include_in_menu = ?',
-            '1'
-        )->order(
-            'main_table.position'
         );
 
+        if (false == $skipMenuFilter) {
+            $select->where('main_table.include_in_menu = ?', '1');
+        }
+
+        $select->order('main_table.position');
+
         if ($parentPath) {
             $select->where($_conn->quoteInto("main_table.path like ?", "{$parentPath}/%"));
         }
@@ -587,7 +589,7 @@ class Flat extends \Magento\Index\Model\Resource\AbstractResource
      */
     public function getChildrenCategories($category)
     {
-        $categories = $this->_loadNodes($category, 1, $category->getStoreId());
+        $categories = $this->_loadNodes($category, 1, $category->getStoreId(), true);
         return $categories;
     }
 
diff --git a/app/code/Magento/Catalog/Pricing/Price/BasePrice.php b/app/code/Magento/Catalog/Pricing/Price/BasePrice.php
index 51030def6a11df67e945ead9aa564c55fa74de3f..b98be1aa65a7927ef7d396634dc70e84440f98f7 100644
--- a/app/code/Magento/Catalog/Pricing/Price/BasePrice.php
+++ b/app/code/Magento/Catalog/Pricing/Price/BasePrice.php
@@ -26,25 +26,17 @@
 
 namespace Magento\Catalog\Pricing\Price;
 
+use Magento\Framework\Pricing\Price\AbstractPrice;
+
 /**
  * Class BasePrice
  */
-class BasePrice extends RegularPrice
+class BasePrice extends AbstractPrice
 {
     /**
      * Price type identifier string
      */
-    const PRICE_TYPE_BASE_PRICE = 'base_price';
-
-    /**
-     * @var string
-     */
-    protected $priceType = self::PRICE_TYPE_BASE_PRICE;
-
-    /**
-     * @var bool|float|null
-     */
-    protected $maxValue;
+    const PRICE_CODE = 'base_price';
 
     /**
      * Get Base Price Value
@@ -55,8 +47,11 @@ class BasePrice extends RegularPrice
     {
         if ($this->value === null) {
             $this->value = false;
-            foreach ($this->priceInfo->getPricesIncludedInBase() as $price) {
-                $this->value = min($price->getValue(), $this->value ?: $price->getValue());
+            foreach ($this->priceInfo->getPrices() as $code => $price) {
+                if ($price instanceof \Magento\Framework\Pricing\Price\BasePriceProviderInterface && $price->getValue()
+                ) {
+                    $this->value = min($price->getValue(), $this->value ? : $price->getValue());
+                }
             }
         }
         return $this->value;
diff --git a/app/code/Magento/Catalog/Pricing/Price/ConfiguredPrice.php b/app/code/Magento/Catalog/Pricing/Price/ConfiguredPrice.php
new file mode 100644
index 0000000000000000000000000000000000000000..3977fda3e48fffaa4ac5c67459ca5e864d5796f0
--- /dev/null
+++ b/app/code/Magento/Catalog/Pricing/Price/ConfiguredPrice.php
@@ -0,0 +1,111 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Catalog
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Catalog\Pricing\Price;
+
+use Magento\Catalog\Model\Product\Configuration\Item\ItemInterface;
+use Magento\Catalog\Model\Product;
+use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
+
+/**
+ * Configured price model
+ */
+class ConfiguredPrice extends FinalPrice implements ConfiguredPriceInterface
+{
+    /**
+     * Price type configured
+     */
+    const PRICE_CODE = self::CONFIGURED_PRICE_CODE;
+
+    /**
+     * @var null|ItemInterface
+     */
+    protected $item;
+
+    /**
+     * @param Product $saleableItem
+     * @param float $quantity
+     * @param CalculatorInterface $calculator
+     * @param ItemInterface $item
+     */
+    public function __construct(
+        Product $saleableItem,
+        $quantity,
+        CalculatorInterface $calculator,
+        ItemInterface $item = null
+    ) {
+        $this->item = $item;
+        parent::__construct($saleableItem, $quantity, $calculator);
+    }
+
+    /**
+     * @param ItemInterface $item
+     * @return $this
+     */
+    public function setItem(ItemInterface $item)
+    {
+        $this->item = $item;
+        return $this;
+    }
+
+    /**
+     * Get value of configured options
+     *
+     * @return array
+     */
+    protected function getOptionsValue()
+    {
+        $product = $this->item->getProduct();
+        $value = 0.;
+        $optionIds = $this->item->getOptionByCode('option_ids');
+        if ($optionIds) {
+            foreach (explode(',', $optionIds->getValue()) as $optionId) {
+                $option = $product->getOptionById($optionId);
+                if ($option) {
+                    /** @var \Magento\Wishlist\Model\Item\Option $itemOption */
+                    $itemOption = $this->item->getOptionByCode('option_' . $option->getId());
+                    /** @var $group \Magento\Catalog\Model\Product\Option\Type\DefaultType */
+                    $group = $option->groupFactory($option->getType())
+                        ->setOption($option)
+                        ->setConfigurationItem($this->item)
+                        ->setConfigurationItemOption($itemOption);
+                    $value += $group->getOptionPrice($itemOption->getValue(), $this->value);
+                }
+            }
+        }
+        return $value;
+    }
+
+    /**
+     * Price value of product with configured options
+     *
+     * @return bool|float
+     */
+    public function getValue()
+    {
+        return $this->item ? parent::getValue() + $this->getOptionsValue() : parent::getValue();
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Stub/Order.php b/app/code/Magento/Catalog/Pricing/Price/ConfiguredPriceInterface.php
similarity index 67%
rename from dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Stub/Order.php
rename to app/code/Magento/Catalog/Pricing/Price/ConfiguredPriceInterface.php
index f050a80c4cccae1c452e70496e8be8d3fd299ff6..affec1ddb59470877405bc7226a4ba7c8307f0a6 100644
--- a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/Stub/Order.php
+++ b/app/code/Magento/Catalog/Pricing/Price/ConfiguredPriceInterface.php
@@ -18,31 +18,29 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Catalog
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
-namespace Magento\Sales\Controller\Adminhtml\Stub;
 
-use Magento\Backend\App\Action;
-use Magento\Sales\Controller\Adminhtml\Order as OrderController;
+namespace Magento\Catalog\Pricing\Price;
+
+use Magento\Catalog\Model\Product\Configuration\Item\ItemInterface;
 
 /**
- * Magento Adminhtml Order Controller Test
+ * Configured price interface
  */
-class Order extends OrderController
+interface ConfiguredPriceInterface
 {
     /**
-     * @var \Magento\Framework\App\Action\Title
-     */
-    public $_title;
-
-    /**
-     * @var \Magento\Framework\App\Action\Title
+     * Price type configured
      */
-    public $_view;
+    const CONFIGURED_PRICE_CODE = 'configured_price';
 
     /**
-     * @var \Magento\Framework\Message\ManagerInterface
+     * @param ItemInterface $item
+     * @return $this
      */
-    public $messageManager;
+    public function setItem(ItemInterface $item);
 }
diff --git a/app/code/Magento/Catalog/Pricing/Price/CustomOptionPrice.php b/app/code/Magento/Catalog/Pricing/Price/CustomOptionPrice.php
index f81e2e3aa8c103c0202b4838972ca19158ea8726..9da910f99f553f5998bf77eaa2ffd60c29eebb6c 100644
--- a/app/code/Magento/Catalog/Pricing/Price/CustomOptionPrice.php
+++ b/app/code/Magento/Catalog/Pricing/Price/CustomOptionPrice.php
@@ -27,18 +27,19 @@ namespace Magento\Catalog\Pricing\Price;
 
 use Magento\Catalog\Pricing\Price;
 use Magento\Catalog\Model\Product\Option\Value;
+use Magento\Framework\Pricing\Price\AbstractPrice;
 
 /**
  * Class OptionPrice
  *
  * @package Magento\Catalog\Pricing\Price
  */
-class CustomOptionPrice extends RegularPrice implements CustomOptionPriceInterface
+class CustomOptionPrice extends AbstractPrice implements CustomOptionPriceInterface
 {
     /**
-     * @var string
+     * Price model code
      */
-    protected $priceType = self::PRICE_TYPE_CUSTOM_OPTION;
+    const PRICE_CODE = 'custom_option_price';
 
     /**
      * @var array
@@ -46,17 +47,53 @@ class CustomOptionPrice extends RegularPrice implements CustomOptionPriceInterfa
     protected $priceOptions;
 
     /**
-     * Get Value
+     * Get minimal optoin item values
      *
      * @return bool|float
      */
     public function getValue()
+    {
+        $requiredMinimalOptions = [];
+        $options = $this->product->getOptions();
+        if ($options) {
+            /** @var $optionItem \Magento\Catalog\Model\Product\Option */
+            foreach ($options as $optionItem) {
+                if (!$optionItem->getIsRequire()) {
+                    continue;
+                }
+                $min = 0.;
+                /** @var $optionValue \Magento\Catalog\Model\Product\Option\Value */
+                foreach ($optionItem->getValues() as $optionValue) {
+                    $price = $optionValue->getPrice($optionValue->getPriceType() == Value::TYPE_PERCENT);
+                    if (!$min) {
+                        $min = $price;
+                    }
+                    if ($price < $min) {
+                        $min = $price;
+                    }
+                }
+                $requiredMinimalOptions[] = [
+                    'option_id' => $optionItem->getId(),
+                    'type' => $optionItem->getType(),
+                    'min' => $min
+                ];
+            }
+        }
+        return $requiredMinimalOptions;
+    }
+
+    /**
+     * Return price for select custom options
+     *
+     * @return float
+     */
+    public function getSelectedOptions()
     {
         if (null !== $this->value) {
             return $this->value;
         }
         $this->value = false;
-        $optionIds = $this->salableItem->getCustomOption('option_ids');
+        $optionIds = $this->product->getCustomOption('option_ids');
         if (!$optionIds) {
             return $this->value;
         }
@@ -82,11 +119,11 @@ class CustomOptionPrice extends RegularPrice implements CustomOptionPriceInterfa
     {
         $value = 0.;
         foreach ($values as $optionId) {
-            $option = $this->salableItem->getOptionById($optionId);
+            $option = $this->product->getOptionById($optionId);
             if (!$option) {
                 continue;
             }
-            $confItemOption = $this->salableItem->getCustomOption('option_' . $option->getId());
+            $confItemOption = $this->product->getCustomOption('option_' . $option->getId());
 
             $group = $option->groupFactory($option->getType())
                 ->setOption($option)
@@ -107,7 +144,7 @@ class CustomOptionPrice extends RegularPrice implements CustomOptionPriceInterfa
             return $this->priceOptions;
         }
         $this->priceOptions = [];
-        $options = $this->salableItem->getOptions();
+        $options = $this->product->getOptions();
         if ($options) {
             /** @var $optionItem \Magento\Catalog\Model\Product\Option */
             foreach ($options as $optionItem) {
@@ -116,7 +153,7 @@ class CustomOptionPrice extends RegularPrice implements CustomOptionPriceInterfa
                     $price = $optionValue->getPrice($optionValue->getPriceType() == Value::TYPE_PERCENT);
                     $this->priceOptions[$optionValue->getId()][$price] = [
                         'base_amount' => $price,
-                        'adjustment' => $this->getAmount()->getValue()
+                        'adjustment' => $this->getCustomAmount($price)->getValue()
                     ];
                 }
             }
diff --git a/app/code/Magento/Catalog/Pricing/Price/CustomOptionPriceInterface.php b/app/code/Magento/Catalog/Pricing/Price/CustomOptionPriceInterface.php
index 5e897e8c0a9b620855b30c7a9357e3d7d8d0010b..1619e8a2af9d8a9f9d4c0214e768b05aa8110a1d 100644
--- a/app/code/Magento/Catalog/Pricing/Price/CustomOptionPriceInterface.php
+++ b/app/code/Magento/Catalog/Pricing/Price/CustomOptionPriceInterface.php
@@ -28,11 +28,6 @@ namespace Magento\Catalog\Pricing\Price;
  */
 interface CustomOptionPriceInterface
 {
-    /**
-     * Price model code
-     */
-    const PRICE_TYPE_CUSTOM_OPTION = 'custom_option_price';
-
     /**
      * Return calculated options
      *
diff --git a/app/code/Magento/Catalog/Pricing/Price/FinalPrice.php b/app/code/Magento/Catalog/Pricing/Price/FinalPrice.php
index 20fd00fbb55d06c517c99d81f4edea39b8d87c07..0bb6144808d2dedca0fc3950f550aefe92734e66 100644
--- a/app/code/Magento/Catalog/Pricing/Price/FinalPrice.php
+++ b/app/code/Magento/Catalog/Pricing/Price/FinalPrice.php
@@ -27,17 +27,18 @@
 namespace Magento\Catalog\Pricing\Price;
 
 use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Catalog\Model\Product;
+use Magento\Framework\Pricing\Price\AbstractPrice;
 
 /**
  * Final price model
  */
-class FinalPrice extends RegularPrice implements FinalPriceInterface
+class FinalPrice extends AbstractPrice implements FinalPriceInterface
 {
     /**
-     * @var string
+     * Price type final
      */
-    protected $priceType = self::PRICE_TYPE_FINAL;
+    const PRICE_CODE = 'final_price';
 
     /**
      * @var BasePrice
@@ -45,18 +46,17 @@ class FinalPrice extends RegularPrice implements FinalPriceInterface
     protected $basePrice;
 
     /**
-     * @param SaleableInterface $salableItem
+     * @param Product $saleableItem
      * @param float $quantity
      * @param CalculatorInterface $calculator
      */
     public function __construct(
-        SaleableInterface $salableItem,
+        Product $saleableItem,
         $quantity,
         CalculatorInterface $calculator
     ) {
-        parent::__construct($salableItem, $quantity, $calculator);
-        $this->basePrice = $this->priceInfo->getPrice(BasePrice::PRICE_TYPE_BASE_PRICE);
-        $this->baseAmount = $this->getValue();
+        parent::__construct($saleableItem, $quantity, $calculator);
+        $this->basePrice = $this->priceInfo->getPrice(BasePrice::PRICE_CODE);
     }
 
     /**
@@ -66,7 +66,7 @@ class FinalPrice extends RegularPrice implements FinalPriceInterface
      */
     public function getValue()
     {
-        return max(0, $this->basePrice->getValue()); // + custom options price
+        return max(0, $this->basePrice->getValue());
     }
 
     /**
@@ -76,11 +76,11 @@ class FinalPrice extends RegularPrice implements FinalPriceInterface
      */
     public function getMinimalPrice()
     {
-        $minimalPrice = $this->salableItem->getMinimalPrice();
+        $minimalPrice = $this->product->getMinimalPrice();
         if ($minimalPrice === null) {
             $minimalPrice = $this->getValue();
         }
-        return $this->calculator->getAmount($minimalPrice, $this->salableItem);
+        return $this->calculator->getAmount($minimalPrice, $this->product);
     }
 
     /**
@@ -90,6 +90,6 @@ class FinalPrice extends RegularPrice implements FinalPriceInterface
      */
     public function getMaximalPrice()
     {
-        return $this->calculator->getAmount($this->getValue(), $this->salableItem);
+        return $this->calculator->getAmount($this->getValue(), $this->product);
     }
 }
diff --git a/app/code/Magento/Catalog/Pricing/Price/FinalPriceInterface.php b/app/code/Magento/Catalog/Pricing/Price/FinalPriceInterface.php
index 03f21043f1ad74aa2383f9a63a9f07aacbf2b528..a8ddaa62cf42001144e636f89b4d58cd8936debe 100644
--- a/app/code/Magento/Catalog/Pricing/Price/FinalPriceInterface.php
+++ b/app/code/Magento/Catalog/Pricing/Price/FinalPriceInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Catalog
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -25,12 +27,21 @@
 namespace Magento\Catalog\Pricing\Price;
 
 /**
- * Final price interface
+ * Special price interface
  */
 interface FinalPriceInterface
 {
     /**
-     * Price type final
+     * Get Minimal Price Amount
+     *
+     * @return \Magento\Framework\Pricing\Amount\AmountInterface
      */
-    const PRICE_TYPE_FINAL = 'final_price';
+    public function getMinimalPrice();
+
+    /**
+     * Get Maximal Price Amount
+     *
+     * @return \Magento\Framework\Pricing\Amount\AmountInterface
+     */
+    public function getMaximalPrice();
 }
diff --git a/app/code/Magento/Catalog/Pricing/Price/GroupPrice.php b/app/code/Magento/Catalog/Pricing/Price/GroupPrice.php
index c2ccaf17b97ed768d0a4f5e82954c85b3e40d716..80d79213e719886400b81495e6cb61ffb180810d 100644
--- a/app/code/Magento/Catalog/Pricing/Price/GroupPrice.php
+++ b/app/code/Magento/Catalog/Pricing/Price/GroupPrice.php
@@ -27,18 +27,20 @@
 namespace Magento\Catalog\Pricing\Price;
 
 use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use \Magento\Catalog\Model\Product;
 use Magento\Customer\Model\Session;
+use Magento\Framework\Pricing\Price\AbstractPrice;
+use Magento\Framework\Pricing\Price\BasePriceProviderInterface;
 
 /**
  * Group price model
  */
-class GroupPrice extends RegularPrice implements GroupPriceInterface
+class GroupPrice extends AbstractPrice implements GroupPriceInterface, BasePriceProviderInterface
 {
     /**
-     * @var string
+     * Price type group
      */
-    protected $priceType = self::PRICE_TYPE_GROUP;
+    const PRICE_CODE = 'group_price';
 
     /**
      * @var Session
@@ -51,18 +53,18 @@ class GroupPrice extends RegularPrice implements GroupPriceInterface
     protected $storedGroupPrice;
 
     /**
-     * @param SaleableInterface $salableItem
+     * @param Product $saleableItem
      * @param float $quantity
      * @param CalculatorInterface $calculator
      * @param Session $customerSession
      */
     public function __construct(
-        SaleableInterface $salableItem,
+        Product $saleableItem,
         $quantity,
         CalculatorInterface $calculator,
         Session $customerSession
     ) {
-        parent::__construct($salableItem, $quantity, $calculator);
+        parent::__construct($saleableItem, $quantity, $calculator);
         $this->customerSession = $customerSession;
     }
 
@@ -89,8 +91,8 @@ class GroupPrice extends RegularPrice implements GroupPriceInterface
      */
     protected function getCustomerGroupId()
     {
-        if ($this->salableItem->getCustomerGroupId()) {
-            return (int) $this->salableItem->getCustomerGroupId();
+        if ($this->product->getCustomerGroupId()) {
+            return (int) $this->product->getCustomerGroupId();
         }
         return (int) $this->customerSession->getCustomerGroupId();
     }
@@ -104,13 +106,13 @@ class GroupPrice extends RegularPrice implements GroupPriceInterface
             return $this->storedGroupPrice;
         }
 
-        $this->storedGroupPrice = $this->salableItem->getData('group_price');
+        $this->storedGroupPrice = $this->product->getData('group_price');
 
         if (null === $this->storedGroupPrice) {
-            $attribute = $this->salableItem->getResource()->getAttribute('group_price');
+            $attribute = $this->product->getResource()->getAttribute('group_price');
             if ($attribute) {
-                $attribute->getBackend()->afterLoad($this->salableItem);
-                $this->storedGroupPrice = $this->salableItem->getData('group_price');
+                $attribute->getBackend()->afterLoad($this->product);
+                $this->storedGroupPrice = $this->product->getData('group_price');
             }
         }
         if (null === $this->storedGroupPrice || !is_array($this->storedGroupPrice)) {
diff --git a/app/code/Magento/Catalog/Pricing/Price/GroupPriceInterface.php b/app/code/Magento/Catalog/Pricing/Price/GroupPriceInterface.php
index cd20d1637636e1af97e412a5fcd6f8c2b3f5b65f..b65d86fa788965e544ed22fc8277eabdacdaac9d 100644
--- a/app/code/Magento/Catalog/Pricing/Price/GroupPriceInterface.php
+++ b/app/code/Magento/Catalog/Pricing/Price/GroupPriceInterface.php
@@ -31,11 +31,6 @@ namespace Magento\Catalog\Pricing\Price;
  */
 interface GroupPriceInterface
 {
-    /**
-     * Price type group
-     */
-    const PRICE_TYPE_GROUP = 'group_price';
-
     /**
      * @return array
      */
diff --git a/app/code/Magento/Catalog/Pricing/Price/MsrpPrice.php b/app/code/Magento/Catalog/Pricing/Price/MsrpPrice.php
index 6320f472e2ce91b4802debee38a44eb7185cc940..1df96a4b8ff39a39b7cc259b66e10696f3612193 100644
--- a/app/code/Magento/Catalog/Pricing/Price/MsrpPrice.php
+++ b/app/code/Magento/Catalog/Pricing/Price/MsrpPrice.php
@@ -28,7 +28,7 @@ namespace Magento\Catalog\Pricing\Price;
 
 use Magento\Catalog\Helper\Data;
 use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Catalog\Model\Product;
 
 /**
  * MSRP price model
@@ -36,9 +36,9 @@ use Magento\Framework\Pricing\Object\SaleableInterface;
 class MsrpPrice extends FinalPrice implements MsrpPriceInterface
 {
     /**
-     * @var string
+     * Price type MSRP
      */
-    protected $priceType = self::PRICE_TYPE_MSRP;
+    const PRICE_CODE = 'msrp_price';
 
     /**
      * @var \Magento\Catalog\Helper\Data
@@ -46,18 +46,18 @@ class MsrpPrice extends FinalPrice implements MsrpPriceInterface
     protected $catalogDataHelper;
 
     /**
-     * @param SaleableInterface $salableItem
+     * @param Product $saleableItem
      * @param float $quantity
      * @param CalculatorInterface $calculator
      * @param Data $catalogDataHelper
      */
     public function __construct(
-        SaleableInterface $salableItem,
+        Product $saleableItem,
         $quantity,
         CalculatorInterface $calculator,
         Data $catalogDataHelper
     ) {
-        parent::__construct($salableItem, $quantity, $calculator);
+        parent::__construct($saleableItem, $quantity, $calculator);
         $this->catalogDataHelper = $catalogDataHelper;
     }
 
@@ -68,7 +68,7 @@ class MsrpPrice extends FinalPrice implements MsrpPriceInterface
      */
     public function isShowPriceOnGesture()
     {
-        return $this->catalogDataHelper->isShowPriceOnGesture($this->salableItem);
+        return $this->catalogDataHelper->isShowPriceOnGesture($this->product);
     }
 
     /**
@@ -78,7 +78,7 @@ class MsrpPrice extends FinalPrice implements MsrpPriceInterface
      */
     public function getMsrpPriceMessage()
     {
-        return $this->catalogDataHelper->getMsrpPriceMessage($this->salableItem);
+        return $this->catalogDataHelper->getMsrpPriceMessage($this->product);
     }
 
     /**
@@ -94,11 +94,11 @@ class MsrpPrice extends FinalPrice implements MsrpPriceInterface
     /**
      * Check if can apply Minimum Advertise price to product
      *
-     * @param SaleableInterface $saleableItem
+     * @param Product $product
      * @return bool
      */
-    public function canApplyMsrp(SaleableInterface $saleableItem)
+    public function canApplyMsrp(Product $product)
     {
-        return $this->catalogDataHelper->canApplyMsrp($saleableItem);
+        return $this->catalogDataHelper->canApplyMsrp($product);
     }
 }
diff --git a/app/code/Magento/Catalog/Pricing/Price/MsrpPriceInterface.php b/app/code/Magento/Catalog/Pricing/Price/MsrpPriceInterface.php
index 2dd7e123b9152a9ac778e3dc38480fa7d6c4f6c5..145ea09a505c9fb83a89bd14a5a0d4bb846e00bb 100644
--- a/app/code/Magento/Catalog/Pricing/Price/MsrpPriceInterface.php
+++ b/app/code/Magento/Catalog/Pricing/Price/MsrpPriceInterface.php
@@ -26,18 +26,13 @@
 
 namespace Magento\Catalog\Pricing\Price;
 
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Catalog\Model\Product;
 
 /**
  * MSRP price interface
  */
 interface MsrpPriceInterface
 {
-    /**
-     * Price type MSRP
-     */
-    const PRICE_TYPE_MSRP = 'msrp_price';
-
     /**
      * Check is product need gesture to show price
      *
@@ -62,8 +57,8 @@ interface MsrpPriceInterface
     /**
      * Check if can apply Minimum Advertise price to product in specific visibility
      *
-     * @param SaleableInterface $product
+     * @param Product $saleableItem
      * @return bool
      */
-    public function canApplyMsrp(SaleableInterface $product);
+    public function canApplyMsrp(Product $saleableItem);
 }
diff --git a/app/code/Magento/Catalog/Pricing/Price/RegularPrice.php b/app/code/Magento/Catalog/Pricing/Price/RegularPrice.php
index 53e702c71fb00c29be6dbd5715f9f8528a92db8d..e067dc4fa03a787b7a5ba1080bcfc0c6f0799b16 100644
--- a/app/code/Magento/Catalog/Pricing/Price/RegularPrice.php
+++ b/app/code/Magento/Catalog/Pricing/Price/RegularPrice.php
@@ -24,72 +24,18 @@
 
 namespace Magento\Catalog\Pricing\Price;
 
-use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
-use Magento\Framework\Pricing\Amount\AmountInterface;
-use Magento\Framework\Pricing\Price\PriceInterface;
-use Magento\Framework\Pricing\PriceInfoInterface;
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Framework\Pricing\Price\AbstractPrice;
+use Magento\Framework\Pricing\Price\BasePriceProviderInterface;
 
 /**
  * Class RegularPrice
  */
-class RegularPrice implements PriceInterface
+class RegularPrice extends AbstractPrice implements BasePriceProviderInterface
 {
     /**
-     * Default price type
+     * Price type
      */
-    const PRICE_TYPE_PRICE_DEFAULT = 'regular_price';
-
-    /**
-     * @var string
-     */
-    protected $priceType = self::PRICE_TYPE_PRICE_DEFAULT;
-
-    /**
-     * @var SaleableInterface|\Magento\Catalog\Model\Product
-     */
-    protected $salableItem;
-
-    /**
-     * @var PriceInfoInterface
-     */
-    protected $priceInfo;
-
-    /**
-     * @var float
-     */
-    protected $quantity;
-
-    /**
-     * @var \Magento\Framework\Pricing\Adjustment\Calculator
-     */
-    protected $calculator;
-
-    /**
-     * @var bool|float
-     */
-    protected $value;
-
-    /**
-     * @var AmountInterface
-     */
-    protected $amount;
-
-    /**
-     * @param SaleableInterface $salableItem
-     * @param float $quantity
-     * @param CalculatorInterface $calculator
-     */
-    public function __construct(
-        SaleableInterface $salableItem,
-        $quantity,
-        CalculatorInterface $calculator
-    ) {
-        $this->salableItem = $salableItem;
-        $this->quantity = $quantity;
-        $this->calculator = $calculator;
-        $this->priceInfo = $salableItem->getPriceInfo();
-    }
+    const PRICE_CODE = 'regular_price';
 
     /**
      * Get price value
@@ -99,45 +45,9 @@ class RegularPrice implements PriceInterface
     public function getValue()
     {
         if ($this->value === null) {
-            $price = $this->salableItem->getPrice();
+            $price = $this->product->getPrice();
             $this->value = $price ? floatval($price) : false;
         }
         return $this->value;
     }
-
-    /**
-     * Get Price Amount object
-     *
-     * @return AmountInterface
-     */
-    public function getAmount()
-    {
-        if (null === $this->amount) {
-            $this->amount = $this->calculator->getAmount($this->getValue(), $this->salableItem);
-        }
-        return $this->amount;
-    }
-
-    /**
-     * @param float $amount
-     * @param null|bool|string $exclude
-     * @return AmountInterface
-     */
-    public function getCustomAmount($amount = null, $exclude = null)
-    {
-        if ($amount === null) {
-            $amount = $this->getValue();
-        }
-        return $this->calculator->getAmount($amount, $this->salableItem, $exclude);
-    }
-
-    /**
-     * Get price type code
-     *
-     * @return string
-     */
-    public function getPriceType()
-    {
-        return $this->priceType;
-    }
 }
diff --git a/app/code/Magento/Catalog/Pricing/Price/SpecialPrice.php b/app/code/Magento/Catalog/Pricing/Price/SpecialPrice.php
index 78070d8fb51663a09370adb8ac23b4cd8e8c8c09..90434c19ed316a76549a15766f0a63f10c891448 100644
--- a/app/code/Magento/Catalog/Pricing/Price/SpecialPrice.php
+++ b/app/code/Magento/Catalog/Pricing/Price/SpecialPrice.php
@@ -27,18 +27,20 @@
 namespace Magento\Catalog\Pricing\Price;
 
 use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Catalog\Model\Product;
+use Magento\Framework\Pricing\Price\AbstractPrice;
 use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
+use Magento\Framework\Pricing\Price\BasePriceProviderInterface;
 
 /**
  * Special price model
  */
-class SpecialPrice extends RegularPrice implements SpecialPriceInterface
+class SpecialPrice extends AbstractPrice implements SpecialPriceInterface, BasePriceProviderInterface
 {
     /**
-     * @var string
+     * Price type special
      */
-    protected $priceType = self::PRICE_TYPE_SPECIAL;
+    const PRICE_CODE = 'special_price';
 
     /**
      * @var TimezoneInterface
@@ -46,18 +48,18 @@ class SpecialPrice extends RegularPrice implements SpecialPriceInterface
     protected $localeDate;
 
     /**
-     * @param SaleableInterface $salableItem
+     * @param Product $saleableItem
      * @param float $quantity
      * @param CalculatorInterface $calculator
      * @param TimezoneInterface $localeDate
      */
     public function __construct(
-        SaleableInterface $salableItem,
+        Product $saleableItem,
         $quantity,
         CalculatorInterface $calculator,
         TimezoneInterface $localeDate
     ) {
-        parent::__construct($salableItem, $quantity, $calculator);
+        parent::__construct($saleableItem, $quantity, $calculator);
         $this->localeDate = $localeDate;
     }
 
@@ -84,7 +86,7 @@ class SpecialPrice extends RegularPrice implements SpecialPriceInterface
      */
     public function getSpecialPrice()
     {
-        return $this->salableItem->getSpecialPrice();
+        return $this->product->getSpecialPrice();
     }
 
     /**
@@ -94,7 +96,7 @@ class SpecialPrice extends RegularPrice implements SpecialPriceInterface
      */
     public function getSpecialFromDate()
     {
-        return $this->salableItem->getSpecialFromDate();
+        return $this->product->getSpecialFromDate();
     }
 
     /**
@@ -104,7 +106,7 @@ class SpecialPrice extends RegularPrice implements SpecialPriceInterface
      */
     public function getSpecialToDate()
     {
-        return $this->salableItem->getSpecialToDate();
+        return $this->product->getSpecialToDate();
     }
 
     /**
@@ -113,7 +115,7 @@ class SpecialPrice extends RegularPrice implements SpecialPriceInterface
     public function isScopeDateInInterval()
     {
         return $this->localeDate->isScopeDateInInterval(
-            $this->salableItem->getStore(),
+            $this->product->getStore(),
             $this->getSpecialFromDate(),
             $this->getSpecialToDate()
         );
diff --git a/app/code/Magento/Catalog/Pricing/Price/SpecialPriceInterface.php b/app/code/Magento/Catalog/Pricing/Price/SpecialPriceInterface.php
index 60a14e73ccd3113a71471bc05455989e1e0645f3..fb591fd3e16f3cfb2e8989fca41538ab103720ce 100644
--- a/app/code/Magento/Catalog/Pricing/Price/SpecialPriceInterface.php
+++ b/app/code/Magento/Catalog/Pricing/Price/SpecialPriceInterface.php
@@ -31,11 +31,6 @@ namespace Magento\Catalog\Pricing\Price;
  */
 interface SpecialPriceInterface
 {
-    /**
-     * Price type special
-     */
-    const PRICE_TYPE_SPECIAL = 'special_price';
-
     /**
      * Returns special price
      *
diff --git a/app/code/Magento/Catalog/Pricing/Price/TierPrice.php b/app/code/Magento/Catalog/Pricing/Price/TierPrice.php
index 597dd4b4110979b8eb8e8996203cd2cc6c319469..8a34bf7b83453f59e0689ffcbf9f666efc74beef 100644
--- a/app/code/Magento/Catalog/Pricing/Price/TierPrice.php
+++ b/app/code/Magento/Catalog/Pricing/Price/TierPrice.php
@@ -25,21 +25,23 @@
 namespace Magento\Catalog\Pricing\Price;
 
 use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
-use Magento\Framework\Pricing\Object\SaleableInterface;
-use Magento\Customer\Service\V1\CustomerGroupServiceInterface;
+use Magento\Catalog\Model\Product;
+use Magento\Customer\Model\Group;
 use Magento\Customer\Model\Session;
+use Magento\Framework\Pricing\Price\AbstractPrice;
 use Magento\Framework\Pricing\PriceInfoInterface;
 use Magento\Framework\Pricing\Amount\AmountInterface;
+use Magento\Framework\Pricing\Price\BasePriceProviderInterface;
 
 /**
  * Tire prices model
  */
-class TierPrice extends RegularPrice implements TierPriceInterface
+class TierPrice extends AbstractPrice implements TierPriceInterface, BasePriceProviderInterface
 {
     /**
-     * @var string
+     * Price type tier
      */
-    protected $priceType = self::PRICE_TYPE_TIER;
+    const PRICE_CODE = 'tier_price';
 
     /**
      * @var Session
@@ -73,23 +75,23 @@ class TierPrice extends RegularPrice implements TierPriceInterface
     protected $filterByBasePrice = true;
 
     /**
-     * @param SaleableInterface $salableItem
+     * @param Product $saleableItem
      * @param float $quantity
      * @param CalculatorInterface $calculator
      * @param Session $customerSession
      */
     public function __construct(
-        SaleableInterface $salableItem,
+        Product $saleableItem,
         $quantity,
         CalculatorInterface $calculator,
         Session $customerSession
     ) {
-        parent::__construct($salableItem, $quantity, $calculator);
+        parent::__construct($saleableItem, $quantity, $calculator);
         $this->customerSession = $customerSession;
-        if ($salableItem->hasCustomerGroupId()) {
-            $this->customerGroup = (int)$salableItem->getCustomerGroupId();
+        if ($saleableItem->hasCustomerGroupId()) {
+            $this->customerGroup = (int) $saleableItem->getCustomerGroupId();
         } else {
-            $this->customerGroup = (int)$this->customerSession->getCustomerGroupId();
+            $this->customerGroup = (int) $this->customerSession->getCustomerGroupId();
         }
     }
 
@@ -104,7 +106,7 @@ class TierPrice extends RegularPrice implements TierPriceInterface
             $prices = $this->getStoredTierPrices();
             $prevQty = PriceInfoInterface::PRODUCT_QUANTITY_DEFAULT;
             $this->value = $prevPrice = $tierPrice = false;
-            $priceGroup = CustomerGroupServiceInterface::CUST_GROUP_ALL;
+            $priceGroup = Group::CUST_GROUP_ALL;
 
             foreach ($prices as $price) {
                 if (!$this->canApplyTierPrice($price, $priceGroup, $prevQty)) {
@@ -172,9 +174,7 @@ class TierPrice extends RegularPrice implements TierPriceInterface
         $qtyCache = [];
         foreach ($priceList as $priceKey => $price) {
             /* filter price by customer group */
-            if ($price['cust_group'] !== $this->customerGroup
-                && $price['cust_group'] !== CustomerGroupServiceInterface::CUST_GROUP_ALL
-            ) {
+            if ($price['cust_group'] !== $this->customerGroup && $price['cust_group'] !== Group::CUST_GROUP_ALL) {
                 unset($priceList[$priceKey]);
                 continue;
             }
@@ -205,7 +205,7 @@ class TierPrice extends RegularPrice implements TierPriceInterface
     protected function getBasePrice()
     {
         /** @var float $productPrice is a minimal available price */
-        return $this->priceInfo->getPrice(BasePrice::PRICE_TYPE_BASE_PRICE)->getValue();
+        return $this->priceInfo->getPrice(BasePrice::PRICE_CODE)->getValue();
     }
 
     /**
@@ -214,7 +214,10 @@ class TierPrice extends RegularPrice implements TierPriceInterface
      */
     public function getSavePercent(AmountInterface $amount)
     {
-        return ceil(100 - ((100 / $this->getBasePrice()) * $amount->getBaseAmount()));
+        return ceil(
+            100 - ((100 / $this->priceInfo->getPrice(BasePrice::PRICE_CODE)->getAmount()->getBaseAmount())
+                * $amount->getBaseAmount())
+        );
     }
 
     /**
@@ -223,7 +226,7 @@ class TierPrice extends RegularPrice implements TierPriceInterface
      */
     protected function applyAdjustment($price)
     {
-        return $this->calculator->getAmount($price, $this->salableItem);
+        return $this->calculator->getAmount($price, $this->product);
     }
 
     /**
@@ -239,7 +242,7 @@ class TierPrice extends RegularPrice implements TierPriceInterface
         // Tier price can be applied, if:
         // tier price is for current customer group or is for all groups
         if ($currentTierPrice['cust_group'] !== $this->customerGroup
-            && $currentTierPrice['cust_group'] !== CustomerGroupServiceInterface::CUST_GROUP_ALL
+            && $currentTierPrice['cust_group'] !== Group::CUST_GROUP_ALL
         ) {
             return false;
         }
@@ -253,8 +256,8 @@ class TierPrice extends RegularPrice implements TierPriceInterface
         }
         // and found tier qty is same as previous tier qty, but current tier group isn't ALL_GROUPS
         if ($currentTierPrice['price_qty'] == $prevQty
-            && $prevPriceGroup !== CustomerGroupServiceInterface::CUST_GROUP_ALL
-            && $currentTierPrice['cust_group'] === CustomerGroupServiceInterface::CUST_GROUP_ALL
+            && $prevPriceGroup !== Group::CUST_GROUP_ALL
+            && $currentTierPrice['cust_group'] === Group::CUST_GROUP_ALL
         ) {
             return false;
         }
@@ -269,13 +272,13 @@ class TierPrice extends RegularPrice implements TierPriceInterface
     protected function getStoredTierPrices()
     {
         if (null === $this->rawPriceList) {
-            $this->rawPriceList = $this->salableItem->getData(self::PRICE_TYPE_TIER);
+            $this->rawPriceList = $this->product->getData(self::PRICE_CODE);
             if (null === $this->rawPriceList || !is_array($this->rawPriceList)) {
                 /** @var \Magento\Eav\Model\Entity\Attribute\AbstractAttribute $attribute */
-                $attribute = $this->salableItem->getResource()->getAttribute(self::PRICE_TYPE_TIER);
+                $attribute = $this->product->getResource()->getAttribute(self::PRICE_CODE);
                 if ($attribute) {
-                    $attribute->getBackend()->afterLoad($this->salableItem);
-                    $this->rawPriceList = $this->salableItem->getData(self::PRICE_TYPE_TIER);
+                    $attribute->getBackend()->afterLoad($this->product);
+                    $this->rawPriceList = $this->product->getData(self::PRICE_CODE);
                 }
             }
             if (null === $this->rawPriceList || !is_array($this->rawPriceList)) {
diff --git a/app/code/Magento/Catalog/Pricing/Price/TierPriceInterface.php b/app/code/Magento/Catalog/Pricing/Price/TierPriceInterface.php
index 5d5bd30c0cecdbc037a370f9658c611e3331abbf..184628b9c6b6eaaaad65344f14e7ce74d66b4d80 100644
--- a/app/code/Magento/Catalog/Pricing/Price/TierPriceInterface.php
+++ b/app/code/Magento/Catalog/Pricing/Price/TierPriceInterface.php
@@ -29,11 +29,6 @@ namespace Magento\Catalog\Pricing\Price;
  */
 interface TierPriceInterface
 {
-    /**
-     * Price type tier
-     */
-    const PRICE_TYPE_TIER = 'tier_price';
-
     /**
      * @return array
      */
diff --git a/app/code/Magento/Catalog/Pricing/Render.php b/app/code/Magento/Catalog/Pricing/Render.php
index 47e7fa9c7f51ac70a24606ebc78cef65b59de4a9..65bcef7dcbd8cd21b7258b9af31e14920f5089e8 100644
--- a/app/code/Magento/Catalog/Pricing/Render.php
+++ b/app/code/Magento/Catalog/Pricing/Render.php
@@ -26,6 +26,7 @@
 
 namespace Magento\Catalog\Pricing;
 
+use Magento\Catalog\Model\Product;
 use Magento\Framework\Pricing\Object\SaleableInterface;
 use Magento\Framework\View\Element\Template;
 use Magento\Framework\Registry;
@@ -73,7 +74,9 @@ class Render extends Template
         if ($priceRender instanceof PricingRender) {
             $product = $this->getProduct();
             if ($product instanceof SaleableInterface) {
-                return $priceRender->render($this->getPriceTypeCode(), $product, $this->getData());
+                $arguments = $this->getData();
+                $arguments['render_block'] = $this;
+                return $priceRender->render($this->getPriceTypeCode(), $product, $arguments);
             }
         }
         return parent::_toHtml();
@@ -82,7 +85,7 @@ class Render extends Template
     /**
      * Returns saleable item instance
      *
-     * @return SaleableInterface
+     * @return Product
      */
     protected function getProduct()
     {
diff --git a/app/code/Magento/Catalog/Pricing/Render/ConfiguredPriceBox.php b/app/code/Magento/Catalog/Pricing/Render/ConfiguredPriceBox.php
new file mode 100644
index 0000000000000000000000000000000000000000..f311d0eb321f56b99030e78772f0385b168d0081
--- /dev/null
+++ b/app/code/Magento/Catalog/Pricing/Render/ConfiguredPriceBox.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Catalog\Pricing\Render;
+
+use Magento\Catalog\Model\Product\Configuration\Item\ItemInterface;
+
+/**
+ * Class for configured_price rendering
+ */
+class ConfiguredPriceBox extends FinalPriceBox
+{
+    /**
+     * Retrieve an item instance to the configured price model
+     *
+     * @return $this
+     */
+    protected function _prepareLayout()
+    {
+        /** @var $price \Magento\Bundle\Pricing\Price\ConfiguredPrice */
+        $price = $this->getPrice();
+        /** @var $renderBlock \Magento\Catalog\Pricing\Render */
+        $renderBlock = $this->getRenderBlock();
+        if ($renderBlock && $renderBlock->getItem() instanceof ItemInterface) {
+            $price->setItem($renderBlock->getItem());
+        } elseif ($renderBlock
+            && $renderBlock->getParentBlock()
+            && $renderBlock->getParentBlock()->getItem() instanceof ItemInterface
+        ) {
+            $price->setItem($renderBlock->getParentBlock()->getItem());
+        }
+        return parent::_prepareLayout();
+    }
+}
diff --git a/app/code/Magento/Catalog/Pricing/Render/FinalPriceBox.php b/app/code/Magento/Catalog/Pricing/Render/FinalPriceBox.php
index 4851766e9721c43b10d7b2a534257917d94825b0..06d8222b810d9a239792334f2b253460691a6e5a 100644
--- a/app/code/Magento/Catalog/Pricing/Render/FinalPriceBox.php
+++ b/app/code/Magento/Catalog/Pricing/Render/FinalPriceBox.php
@@ -30,7 +30,6 @@ use Magento\Framework\Pricing\Render\PriceBox as BasePriceBox;
 use Magento\Catalog\Pricing\Price\MsrpPrice;
 use Magento\Framework\Pricing\Render;
 use Magento\Catalog\Pricing\Price;
-use Magento\Catalog\Pricing\Price\MsrpPriceInterface;
 
 /**
  * Class for final_price rendering
@@ -59,7 +58,7 @@ class FinalPriceBox extends BasePriceBox
         if ($msrpPriceType->canApplyMsrp($this->getSaleableItem())) {
             /** @var BasePriceBox $msrpBlock */
             $msrpBlock = $this->rendererPool->createPriceRender(
-                MsrpPriceInterface::PRICE_TYPE_MSRP,
+                MsrpPrice::PRICE_CODE,
                 $this->getSaleableItem(),
                 [
                     'real_price_html' => $result
@@ -89,9 +88,8 @@ class FinalPriceBox extends BasePriceBox
      */
     public function renderAmountMinimal()
     {
-        //@TODO Implement 'minimal_price' final price is a minimum price
-
-        $price = $this->getPriceType(\Magento\Catalog\Pricing\Price\FinalPriceInterface::PRICE_TYPE_FINAL);
+        /** @var \Magento\Catalog\Pricing\Price\FinalPrice $price */
+        $price = $this->getPriceType(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE);
         $id = $this->getPriceId() ? $this->getPriceId() : 'product-minimal-price-' . $this->getSaleableItem()->getId();
         return $this->renderAmount(
             $price->getMinimalPrice(),
@@ -111,8 +109,8 @@ class FinalPriceBox extends BasePriceBox
      */
     public function hasSpecialPrice()
     {
-        $displayRegularPrice = $this->getPriceType(Price\RegularPrice::PRICE_TYPE_PRICE_DEFAULT)->getAmount();
-        $displayFinalPrice = $this->getPriceType(Price\FinalPriceInterface::PRICE_TYPE_FINAL)->getAmount();
+        $displayRegularPrice = $this->getPriceType(Price\RegularPrice::PRICE_CODE)->getAmount()->getValue();
+        $displayFinalPrice = $this->getPriceType(Price\FinalPrice::PRICE_CODE)->getAmount()->getValue();
         return $displayFinalPrice < $displayRegularPrice;
     }
 
@@ -124,7 +122,7 @@ class FinalPriceBox extends BasePriceBox
     public function showMinimalPrice()
     {
         /** @var Price\FinalPrice $finalPrice */
-        $finalPrice = $this->getPriceType(Price\FinalPriceInterface::PRICE_TYPE_FINAL);
+        $finalPrice = $this->getPriceType(Price\FinalPrice::PRICE_CODE);
         $finalPriceValue = $finalPrice->getAmount()->getValue();
         $minimalPriceAValue = $finalPrice->getMinimalPrice()->getValue();
         return $this->getDisplayMinimalPrice()
diff --git a/app/code/Magento/Catalog/Pricing/Render/PriceBox.php b/app/code/Magento/Catalog/Pricing/Render/PriceBox.php
index 113586b5915f9c8a17478c92b9ffb9f60e697283..0a5d2bbedc1684224c6a6e844ecb69a5f68b3bdf 100644
--- a/app/code/Magento/Catalog/Pricing/Render/PriceBox.php
+++ b/app/code/Magento/Catalog/Pricing/Render/PriceBox.php
@@ -25,7 +25,7 @@
  */
 namespace Magento\Catalog\Pricing\Render;
 
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Catalog\Model\Product;
 use Magento\Framework\Pricing\Price\PriceInterface;
 use Magento\Framework\Pricing\Render\PriceBox as PriceBoxRender;
 use Magento\Framework\View\Element\Template\Context;
@@ -54,7 +54,7 @@ class PriceBox extends PriceBoxRender
 
     /**
      * @param Context $context
-     * @param SaleableInterface $saleableItem
+     * @param Product $saleableItem
      * @param PriceInterface $price
      * @param RendererPool $rendererPool
      * @param Data $coreDataHelper
@@ -63,7 +63,7 @@ class PriceBox extends PriceBoxRender
      */
     public function __construct(
         Context $context,
-        SaleableInterface $saleableItem,
+        Product $saleableItem,
         PriceInterface $price,
         RendererPool $rendererPool,
         Data $coreDataHelper,
@@ -103,10 +103,10 @@ class PriceBox extends PriceBoxRender
     /**
      * Check if quantity can be displayed for tier price with msrp
      *
-     * @param SaleableInterface $product
+     * @param Product $product
      * @return bool
      */
-    public function getCanDisplayQty(SaleableInterface $product)
+    public function getCanDisplayQty(Product $product)
     {
         //TODO Refactor - change to const similar to Model\Product\Type\Grouped::TYPE_CODE
         if ($product->getTypeId() == 'grouped') {
diff --git a/app/code/Magento/Catalog/etc/di.xml b/app/code/Magento/Catalog/etc/di.xml
index e56521f410c381242f5ae511babf01e5d2cd0165..94c82da0d55918e08828fa04d5e5c49ba8c108d7 100644
--- a/app/code/Magento/Catalog/etc/di.xml
+++ b/app/code/Magento/Catalog/etc/di.xml
@@ -320,56 +320,11 @@
             </argument>
         </arguments>
     </type>
-    <type name="Magento\Framework\Pricing\PriceInfo\Factory">
-        <arguments>
-            <argument name="types" xsi:type="array">
-                <item name="simple" xsi:type="string">Magento\Framework\Pricing\PriceInfo\Base</item>
-            </argument>
-        </arguments>
-    </type>
-    <type name="Magento\Framework\Pricing\PriceComposite">
-        <arguments>
-            <argument name="metadata" xsi:type="array">
-                <item name="regular_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\RegularPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">true</item>
-                </item>
-                <item name="final_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\FinalPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-                <item name="tier_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\TierPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">true</item>
-                </item>
-                <item name="group_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\GroupPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">true</item>
-                </item>
-                <item name="special_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\SpecialPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">true</item>
-                </item>
-                <item name="msrp_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\MsrpPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-                <item name="base_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\BasePrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-                <item name="custom_option_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Catalog\Pricing\Price\CustomOptionPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
-                </item>
-            </argument>
-        </arguments>
-    </type>
     <type name="Magento\Framework\Pricing\Adjustment\Collection">
         <arguments>
             <argument name="adjustments" xsi:type="array">
-                <item name="tax" xsi:type="const">Magento\Tax\Pricing\Adjustment::CODE</item>
-                <item name="weee" xsi:type="const">Magento\Weee\Pricing\Adjustment::CODE</item>
+                <item name="tax" xsi:type="const">Magento\Tax\Pricing\Adjustment::ADJUSTMENT_CODE</item>
+                <item name="weee" xsi:type="const">Magento\Weee\Pricing\Adjustment::ADJUSTMENT_CODE</item>
             </argument>
         </arguments>
     </type>
@@ -386,4 +341,34 @@
             </argument>
         </arguments>
     </type>
+    <virtualType name="Magento\Catalog\Pricing\Price\Pool" type="Magento\Framework\Pricing\Price\Pool">
+        <arguments>
+            <argument name="prices" xsi:type="array">
+                <item name="regular_price" xsi:type="string">Magento\Catalog\Pricing\Price\RegularPrice</item>
+                <item name="final_price" xsi:type="string">Magento\Catalog\Pricing\Price\FinalPrice</item>
+                <item name="tier_price" xsi:type="string">Magento\Catalog\Pricing\Price\TierPrice</item>
+                <item name="group_price" xsi:type="string">Magento\Catalog\Pricing\Price\GroupPrice</item>
+                <item name="special_price" xsi:type="string">Magento\Catalog\Pricing\Price\SpecialPrice</item>
+                <item name="msrp_price" xsi:type="string">Magento\Catalog\Pricing\Price\MsrpPrice</item>
+                <item name="base_price" xsi:type="string">Magento\Catalog\Pricing\Price\BasePrice</item>
+                <item name="custom_option_price" xsi:type="string">Magento\Catalog\Pricing\Price\CustomOptionPrice</item>
+                <item name="configured_price" xsi:type="string">Magento\Catalog\Pricing\Price\ConfiguredPrice</item>
+            </argument>
+        </arguments>
+    </virtualType>
+    <virtualType name="Magento\Catalog\Pricing\Price\Collection" type="Magento\Framework\Pricing\Price\Collection">
+        <arguments>
+            <argument name="pool" xsi:type="object">Magento\Catalog\Pricing\Price\Pool</argument>
+        </arguments>
+    </virtualType>
+    <type name="Magento\Framework\Pricing\PriceInfo\Factory">
+        <arguments>
+            <argument name="types" xsi:type="array">
+                <item name="default" xsi:type="array">
+                    <item name="infoClass" xsi:type="string">Magento\Framework\Pricing\PriceInfo\Base</item>
+                    <item name="prices" xsi:type="string">Magento\Catalog\Pricing\Price\Collection</item>
+                </item>
+            </argument>
+        </arguments>
+    </type>
 </config>
diff --git a/app/code/Magento/Catalog/view/adminhtml/catalog/base-image-uploader.js b/app/code/Magento/Catalog/view/adminhtml/catalog/base-image-uploader.js
index d88d163e88118db79e92367085eadbbea9d2c9ee..876da3951dbbfefb5fd155bdea419e27fc82cba1 100644
--- a/app/code/Magento/Catalog/view/adminhtml/catalog/base-image-uploader.js
+++ b/app/code/Magento/Catalog/view/adminhtml/catalog/base-image-uploader.js
@@ -110,7 +110,7 @@
 
             this.element.find('input[type="file"]').fileupload({
                 dataType: 'json',
-                dropZone: $dropPlaceholder,
+                dropZone: $dropPlaceholder.closest('[data-attribute-code]'),
                 acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
                 maxFileSize: this.element.data('maxFileSize'),
                 done: function(event, data) {
diff --git a/app/code/Magento/Catalog/view/adminhtml/catalog/form/renderer/fieldset/element.phtml b/app/code/Magento/Catalog/view/adminhtml/catalog/form/renderer/fieldset/element.phtml
index 7c3824988d4352a268770a9ddfb53baafcc7c0c7..2bf89e78c6e72c42448989892d0745c593799761 100644
--- a/app/code/Magento/Catalog/view/adminhtml/catalog/form/renderer/fieldset/element.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/catalog/form/renderer/fieldset/element.phtml
@@ -57,7 +57,7 @@ $fieldAttributes = $fieldId . ' class="' . $fieldClass . '" '
     <?php if ($element->getType() == 'hidden'): ?>
         <?php echo $element->getElementHtml() ?>
     <?php else: ?>
-    <div<?php echo $fieldAttributes ?> data-element-id="<?php echo $element->getHtmlId() ?>"
+    <div<?php echo $fieldAttributes ?> data-attribute-code="<?php echo $element->getHtmlId() ?>"
         data-apply-to="<?php echo $this->escapeHtml($this->helper('Magento\Core\Helper\Data')->jsonEncode(
             $element->hasEntityAttribute() ? $element->getEntityAttribute()->getApplyTo() : array()
         ))?>"
diff --git a/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit.phtml b/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit.phtml
index 8c5362b9c0ab299554a7a083be02f710dfced1bc..383b85b2ed495f53cd3b54b423beb9e864685964 100644
--- a/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit.phtml
@@ -321,7 +321,7 @@ jQuery(function($) {
                         if (nameDataMapper.apply($elements.get(index)) == elementId) {
                             return true;
                         }
-                        var $elementToMove = $('.fieldset>.field[data-element-id="' + elementId + '"]');
+                        var $elementToMove = $('.fieldset>.field[data-attribute-code="' + elementId + '"]');
                         if ($elementToMove.length === 0) {
                             $elementToMove = $element;
                         }
diff --git a/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/action/inventory.phtml b/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/action/inventory.phtml
index aa0568b6f665f70dfff4f1f973e747d46082276a..21fa82aab5c6c10ee77cbd8fcd7ec7c0b3705c64 100644
--- a/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/action/inventory.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/action/inventory.phtml
@@ -63,7 +63,7 @@
                     </select>
                 </div>
                 <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>">
-                    <input name="<?php echo $this->getFieldSuffix() ?>[use_config_manage_stock]" type="checkbox" id="inventory_use_config_manage_stock" onclick="toggleValueElements(this, this.parentNode, $('inventory_manage_stock_checkbox'));" value="1" checked="checked" disabled="disabled" />
+                    <input name="<?php echo $this->getFieldSuffix() ?>[use_config_manage_stock]" type="checkbox" id="inventory_use_config_manage_stock" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_manage_stock_checkbox'));" value="1" checked="checked" disabled="disabled" />
                     <label for="inventory_use_config_manage_stock" class="normal"><?php echo __('Use Config Settings') ?></label>
                     <span class="attribute-change-checkbox">
                         <input type="checkbox" id="inventory_manage_stock_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
@@ -95,7 +95,7 @@
                     <input type="text" class="input-text validate-number" id="inventory_min_qty" name="<?php echo $this->getFieldSuffix() ?>[min_qty]" value="<?php echo $this->getDefaultConfigValue('min_qty')*1 ?>" disabled="disabled" />
                 </div>
                 <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>">
-                    <input type="checkbox" id="inventory_use_config_min_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_min_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_min_qty_checkbox'));" checked="checked" disabled="disabled" />
+                    <input type="checkbox" id="inventory_use_config_min_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_min_qty]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_min_qty_checkbox'));" checked="checked" disabled="disabled" />
                     <label for="inventory_use_config_min_qty" class="normal"><?php echo __('Use Config Settings') ?></label>
                     <span class="attribute-change-checkbox">
                         <input type="checkbox" id="inventory_min_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
@@ -112,7 +112,7 @@
                     <input type="text" class="input-text validate-number" id="inventory_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[min_sale_qty]" value="<?php echo $this->getDefaultConfigValue('min_sale_qty')*1 ?>" disabled="disabled" />
                 </div>
                 <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>">
-                    <input type="checkbox" id="inventory_use_config_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_min_sale_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_min_sale_qty_checkbox'));" checked="checked" disabled="disabled" />
+                    <input type="checkbox" id="inventory_use_config_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_min_sale_qty]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_min_sale_qty_checkbox'));" checked="checked" disabled="disabled" />
                     <label for="inventory_use_config_min_sale_qty" class="normal"><?php echo __('Use Config Settings') ?></label>
                     <span class="attribute-change-checkbox">
                         <input type="checkbox" id="inventory_min_sale_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
@@ -129,7 +129,7 @@
                     <input type="text" class="input-text validate-number" id="inventory_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[max_sale_qty]" value="<?php echo $this->getDefaultConfigValue('max_sale_qty')*1 ?>" disabled="disabled" />
                 </div>
                 <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>">
-                    <input type="checkbox" id="inventory_use_config_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_max_sale_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_max_sale_checkbox'));" checked="checked" disabled="disabled" />
+                    <input type="checkbox" id="inventory_use_config_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_max_sale_qty]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_max_sale_checkbox'));" checked="checked" disabled="disabled" />
                     <label for="inventory_use_config_max_sale_qty" class="normal"><?php echo __('Use Config Settings') ?></label>
                     <span class="attribute-change-checkbox">
                         <input type="checkbox" id="inventory_max_sale_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
@@ -169,7 +169,7 @@
                     </select>
                 </div>
                 <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>">
-                    <input type="checkbox" id="inventory_use_config_backorders" name="<?php echo $this->getFieldSuffix() ?>[use_config_backorders]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_backorders_checkbox'));" checked="checked" disabled="disabled" />
+                    <input type="checkbox" id="inventory_use_config_backorders" name="<?php echo $this->getFieldSuffix() ?>[use_config_backorders]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_backorders_checkbox'));" checked="checked" disabled="disabled" />
                     <label for="inventory_use_config_backorders" class="normal"><?php echo __('Use Config Settings') ?></label>
                     <span class="attribute-change-checkbox">
                         <input type="checkbox" id="inventory_backorders_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
@@ -186,7 +186,7 @@
                     <input type="text" class="input-text validate-number" id="inventory_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[notify_stock_qty]" value="<?php echo $this->getDefaultConfigValue('notify_stock_qty')*1 ?>" disabled="disabled" />
                 </div>
                 <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>">
-                    <input type="checkbox" id="inventory_use_config_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_notify_stock_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_notify_stock_qty_checkbox'));" checked="checked" disabled="disabled" />
+                    <input type="checkbox" id="inventory_use_config_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_notify_stock_qty]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, $('inventory_notify_stock_qty_checkbox'));" checked="checked" disabled="disabled" />
                     <label for="inventory_use_config_notify_stock_qty" class="normal"><?php echo __('Use Config Settings') ?></label>
                     <span class="attribute-change-checkbox">
                         <input type="checkbox" id="inventory_notify_stock_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
@@ -206,7 +206,7 @@
                     </select>
                 </div>
                 <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>">
-                    <input type="checkbox" id="inventory_use_config_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[use_config_enable_qty_increments]" value="1" onclick="toggleValueElements(this, this.parentNode, [$('inventory_enable_qty_increments_checkbox')]);" checked="checked" disabled="disabled" />
+                    <input type="checkbox" id="inventory_use_config_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[use_config_enable_qty_increments]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, [$('inventory_enable_qty_increments_checkbox')]);" checked="checked" disabled="disabled" />
                     <label for="inventory_use_config_enable_qty_increments" class="normal"><?php echo __('Use Config Settings') ?></label>
                     <span class="attribute-change-checkbox">
                         <input type="checkbox" id="inventory_enable_qty_increments_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
@@ -223,7 +223,7 @@
                     <input type="text" class="input-text validate-number" id="inventory_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[qty_increments]" value="<?php echo $this->getDefaultConfigValue('qty_increments')*1 ?>" disabled="disabled" />
                 </div>
                 <div class="field-service" value-scope="<?php echo __('[GLOBAL]') ?>">
-                    <input type="checkbox" id="inventory_use_config_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[use_config_qty_increments]" value="1" onclick="toggleValueElements(this, this.parentNode, [$('inventory_qty_increments_checkbox')]);" checked="checked" disabled="disabled" />
+                    <input type="checkbox" id="inventory_use_config_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[use_config_qty_increments]" value="1" onclick="toggleValueElements(this, this.parentNode.parentNode, [$('inventory_qty_increments_checkbox')]);" checked="checked" disabled="disabled" />
                     <label for="inventory_use_config_qty_increments" class="normal"><?php echo __('Use Config Settings') ?></label>
                     <span class="attribute-change-checkbox">
                         <input type="checkbox" id="inventory_qty_increments_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
diff --git a/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/price/group.phtml b/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/price/group.phtml
index 0cf86cd08b695f3b930259b9d8ea99d680e625dc..02fba5cbd59c545541bedb5bda6ae5a2be206dd2 100644
--- a/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/price/group.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/price/group.phtml
@@ -35,7 +35,7 @@ $_priceValueValidation = $this->getPriceValidation('validate-zero-or-greater');
 
 $_showWebsite= $this->isMultiWebsites();
 ?>
-<div class="field" id="attribute-<?php echo $_htmlId?>-container" data-element-id="<?php echo $_htmlId?>"
+<div class="field" id="attribute-<?php echo $_htmlId?>-container" data-attribute-code="<?php echo $_htmlId?>"
      data-apply-to="<?php echo $this->escapeHtml(
          $this->helper('Magento\Core\Helper\Data')->jsonEncode(
              $element->hasEntityAttribute() ? $element->getEntityAttribute()->getApplyTo() : array()
diff --git a/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/price/tier.phtml b/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/price/tier.phtml
index 1289d8baaea84f39befae9b6fbe7383ef9a318f5..ba713ebb43f6131f80d9a5bca408172cf3b6ffbd 100644
--- a/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/price/tier.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/catalog/product/edit/price/tier.phtml
@@ -37,7 +37,7 @@ $element = $this->getElement();
 
 <?php $_showWebsite = $this->isShowWebsiteColumn(); ?>
 <?php $_showWebsite= $this->isMultiWebsites(); ?>
-<div class="field" id="attribute-<?php echo $_htmlId?>-container" data-element-id="<?php echo $_htmlId?>"
+<div class="field" id="attribute-<?php echo $_htmlId?>-container" data-attribute-code="<?php echo $_htmlId?>"
      data-apply-to="<?php echo $this->escapeHtml(
          $this->helper('Magento\Core\Helper\Data')->jsonEncode(
              $element->hasEntityAttribute() ? $element->getEntityAttribute()->getApplyTo() : array()
diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE.xml b/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE.xml
index b87affca02a93e3b925f8af79281501ef0023546..4894b300a60536618d9f2440fae3601e924f12e7 100644
--- a/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE.xml
+++ b/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE.xml
@@ -35,4 +35,11 @@
         </block>
         <block class="Magento\Catalog\Block\Adminhtml\Product\Composite\Fieldset\Qty" name="product.composite.fieldset.qty" template="catalog/product/composite/fieldset/qty.phtml"/>
     </block>
+    <block class="Magento\Framework\Pricing\Render" name="product.price.render.default">
+        <arguments>
+            <argument name="price_render_handle" xsi:type="string">catalog_product_prices</argument>
+            <argument name="use_link_for_as_low_as" xsi:type="boolean">true</argument>
+            <!-- set "override" configuration settings here -->
+        </arguments>
+    </block>
 </layout>
diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR.xml b/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR.xml
index dca7f34bc954d4296029c47317d7c7b250fb9f0b..8696cb9923eda1ec0711303633330573fe582047 100644
--- a/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR.xml
+++ b/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR.xml
@@ -25,4 +25,11 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <block class="Magento\Catalog\Block\Adminhtml\Product\Composite\Error" name="product.composite.error" output="1"/>
+    <block class="Magento\Framework\Pricing\Render" name="product.price.render.default">
+        <arguments>
+            <argument name="price_render_handle" xsi:type="string">catalog_product_prices</argument>
+            <argument name="use_link_for_as_low_as" xsi:type="boolean">true</argument>
+            <!-- set "override" configuration settings here -->
+        </arguments>
+    </block>
 </layout>
diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT.xml b/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT.xml
index 39952aea54f7a57bb0f0b77d2086d68e31f90b5e..ebc33502e83ead32c84669bad2208d8383051399 100644
--- a/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT.xml
+++ b/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT.xml
@@ -25,4 +25,11 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <block class="Magento\Catalog\Block\Adminhtml\Product\Composite\Update\Result" name="product.composite.update.result" output="1"/>
+    <block class="Magento\Framework\Pricing\Render" name="product.price.render.default">
+        <arguments>
+            <argument name="price_render_handle" xsi:type="string">catalog_product_prices</argument>
+            <argument name="use_link_for_as_low_as" xsi:type="boolean">true</argument>
+            <!-- set "override" configuration settings here -->
+        </arguments>
+    </block>
 </layout>
diff --git a/app/code/Magento/Catalog/view/adminhtml/product/edit/tabs.phtml b/app/code/Magento/Catalog/view/adminhtml/product/edit/tabs.phtml
index 012fb48cc1047213d30a1497815fd0fb62cd9a10..cd996e043d314bc3c74b911e6b8be650062360ce 100644
--- a/app/code/Magento/Catalog/view/adminhtml/product/edit/tabs.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/product/edit/tabs.phtml
@@ -72,6 +72,7 @@
                     </span>
                 </a>
                 <div id="<?php echo $this->getTabId($_tab) ?>_content" class="no-display"
+                     data-tab-panel="<?=$_tab->getTabId() ?>"
                      <?php echo $this->getUiId('tab', 'content', $_tab->getId()) ?>>
                     <?php echo $this->getTabContent($_tab); ?>
                     <?php foreach ($tabs as $childTab): ?>
diff --git a/app/code/Magento/Catalog/view/frontend/js/msrp.js b/app/code/Magento/Catalog/view/base/js/msrp.js
similarity index 100%
rename from app/code/Magento/Catalog/view/frontend/js/msrp.js
rename to app/code/Magento/Catalog/view/base/js/msrp.js
diff --git a/app/code/Magento/Catalog/view/frontend/js/tier-price.js b/app/code/Magento/Catalog/view/base/js/tier-price.js
similarity index 100%
rename from app/code/Magento/Catalog/view/frontend/js/tier-price.js
rename to app/code/Magento/Catalog/view/base/js/tier-price.js
diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_prices.xml b/app/code/Magento/Catalog/view/base/layout/catalog_product_prices.xml
similarity index 90%
rename from app/code/Magento/Catalog/view/frontend/layout/catalog_product_prices.xml
rename to app/code/Magento/Catalog/view/base/layout/catalog_product_prices.xml
index e8abbb7082c128c242b1364fcb80cda8ea85c43b..8dda37e87c9ed984f18a621a534b133225f072b8 100644
--- a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_prices.xml
+++ b/app/code/Magento/Catalog/view/base/layout/catalog_product_prices.xml
@@ -52,6 +52,10 @@
                     <item name="custom_option_price" xsi:type="array">
                         <item name="amount_render_template" xsi:type="string">Magento_Catalog::product/price/amount/option.phtml</item>
                     </item>
+                    <item name="configured_price" xsi:type="array">
+                        <item name="render_class" xsi:type="string">Magento\Catalog\Pricing\Render\ConfiguredPriceBox</item>
+                        <item name="render_template" xsi:type="string">Magento_Catalog::product/price/configured_price.phtml</item>
+                    </item>
                 </item>
                 <!--<item name="adjustments" xsi:type="array"></item>-->
             </argument>
diff --git a/app/design/frontend/Magento/plushe/Magento_Catalog/layout/catalog_category_view.xml b/app/code/Magento/Catalog/view/base/layout/default.xml
similarity index 65%
rename from app/design/frontend/Magento/plushe/Magento_Catalog/layout/catalog_category_view.xml
rename to app/code/Magento/Catalog/view/base/layout/default.xml
index ed2bf54c46851858b5d188260d21cb99477e56ea..7b8420a104c3d3e84f315d7a2fced67de6037eed 100644
--- a/app/design/frontend/Magento/plushe/Magento_Catalog/layout/catalog_category_view.xml
+++ b/app/code/Magento/Catalog/view/base/layout/default.xml
@@ -23,13 +23,13 @@
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
 -->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/Core/etc/layout_single.xsd">
-    <referenceBlock name="product_list">
+<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <block class="Magento\Framework\Pricing\Render" name="product.price.render.default">
         <arguments>
-            <!-- If position of argument is depend on image size changable in VDE:
-                positions:list-secondary,grid-secondary,list-actions,grid-actions,list-primary,grid-primary<
-            -->
-            <argument name="positioned" xsi:type="string">positions:list-secondary</argument>
+            <argument name="price_render_handle" xsi:type="string">catalog_product_prices</argument>
+            <argument name="use_link_for_as_low_as" xsi:type="boolean">true</argument>
+            <!-- set "override" configuration settings here -->
         </arguments>
-    </referenceBlock>
+    </block>
 </layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/catalogsearch_result_index.xml b/app/code/Magento/Catalog/view/base/layout/empty.xml
similarity index 64%
rename from app/code/Magento/Bundle/view/frontend/layout/catalogsearch_result_index.xml
rename to app/code/Magento/Catalog/view/base/layout/empty.xml
index 403b2e3b52a6ca1e3cae284fc38f9bd4295bbf5a..7b8420a104c3d3e84f315d7a2fced67de6037eed 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/catalogsearch_result_index.xml
+++ b/app/code/Magento/Catalog/view/base/layout/empty.xml
@@ -23,12 +23,13 @@
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
 -->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <referenceBlock name="search_result_list">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-        </action>
-    </referenceBlock>
+<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <block class="Magento\Framework\Pricing\Render" name="product.price.render.default">
+        <arguments>
+            <argument name="price_render_handle" xsi:type="string">catalog_product_prices</argument>
+            <argument name="use_link_for_as_low_as" xsi:type="boolean">true</argument>
+            <!-- set "override" configuration settings here -->
+        </arguments>
+    </block>
 </layout>
diff --git a/app/code/Magento/Catalog/view/frontend/product/price/amount/default.phtml b/app/code/Magento/Catalog/view/base/product/price/amount/default.phtml
similarity index 56%
rename from app/code/Magento/Catalog/view/frontend/product/price/amount/default.phtml
rename to app/code/Magento/Catalog/view/base/product/price/amount/default.phtml
index 78228659433e1c8f3ab35244301d9f0ca8d74c84..13b3d89bf9eddf42797a2c3ad07ccbd1946982a1 100644
--- a/app/code/Magento/Catalog/view/frontend/product/price/amount/default.phtml
+++ b/app/code/Magento/Catalog/view/base/product/price/amount/default.phtml
@@ -25,23 +25,20 @@
 
 <?php /** @var \Magento\Framework\Pricing\Render\Amount $this */ ?>
 
-<?php if ($this->getDisplayLabel()): ?>
-    <span class="price-label"><?php echo $this->getDisplayLabel(); ?></span>
-<?php endif; ?>
-<span>
-    <?php if ($this->getPriceDisplayLabel()): ?>
-        <span class="price-label"><?php echo $this->getPriceDisplayLabel(); ?></span>
+<span class="price-container <?php echo $this->getAdjustmentCssClasses() ?>">
+    <?php if ($this->getDisplayLabel()): ?>
+        <span class="price-label"><?php echo $this->getDisplayLabel(); ?></span>
     <?php endif; ?>
-    <span class="price <?php echo $this->getAdjustmentCssClasses() ?>" id="<?php echo $this->getPriceId() ?>">
-        <?php echo $this->convertAndFormatCurrency($this->getDisplayValue(), (bool) $this->getIncludeContainer()) ?>
+    <span id="<?php echo $this->getPriceId() ?>"
+          <?php echo ($this->getPriceDisplayLabel()) ? 'data-label="' . $this->getPriceDisplayLabel() . '"' : '' ?>
+          class="price-wrapper <?php echo $this->getPriceWrapperCss();?>">
+        <span class="price">
+            <?php echo $this->convertAndFormatCurrency($this->getDisplayValue(), (bool) $this->getIncludeContainer()) ?>
+        </span>
     </span>
+    <?php if ($this->hasAdjustmentsHtml()): ?>
+        <span class="price-adjustments">
+            <?php echo $this->getAdjustmentsHtml() ?>
+        </span>
+    <?php endif; ?>
 </span>
-<?php if ($this->hasAdjustmentsHtml()): ?>
-<?php if ($this->getZone() == \Magento\Framework\Pricing\Render::ZONE_ITEM_OPTION): ?>
-    (<small>
-        <?php echo $this->getAdjustmentsHtml() ?>
-    </small>)
-<?php else: ?>
-    <?php echo $this->getAdjustmentsHtml() ?>
-<?php endif; ?>
-<?php endif; ?>
diff --git a/app/code/Magento/Catalog/view/frontend/product/price/amount/option.phtml b/app/code/Magento/Catalog/view/base/product/price/amount/option.phtml
similarity index 100%
rename from app/code/Magento/Catalog/view/frontend/product/price/amount/option.phtml
rename to app/code/Magento/Catalog/view/base/product/price/amount/option.phtml
diff --git a/app/code/Magento/Bundle/view/frontend/catalog/product/view/tierprices.phtml b/app/code/Magento/Catalog/view/base/product/price/configured_price.phtml
similarity index 67%
rename from app/code/Magento/Bundle/view/frontend/catalog/product/view/tierprices.phtml
rename to app/code/Magento/Catalog/view/base/product/price/configured_price.phtml
index 04cf6a41f9ca208dab9802f37fee3ef321771295..78022950022aae74df60431fade48b7f4ac9d69a 100644
--- a/app/code/Magento/Bundle/view/frontend/catalog/product/view/tierprices.phtml
+++ b/app/code/Magento/Catalog/view/base/product/price/configured_price.phtml
@@ -18,22 +18,20 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    design
+ * @package     base_default
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
 ?>
-
 <?php
-/**
- * @see \Magento\Catalog\Block\Product\View
- */
-$_product = $this->getProduct();
-$_tierPrices = $this->getTierPrices();
+/** @var \Magento\Catalog\Pricing\Render\FinalPriceBox $this */
+/** @var \Magento\Catalog\Pricing\Price\ConfiguredPrice $configuredPrice */
+$configuredPrice = $this->getPrice();
 ?>
-<?php if (count($_tierPrices) > 0): ?>
-    <ul class="prices tier items">
-    <?php foreach($_tierPrices as $_price): ?>
-        <li class="item"><?php echo __('Buy %1 with %2 discount each', $_price['price_qty'], '<strong class="benefit">'.($_price['price']*1).'%</strong>') ?></li>
-    <?php endforeach ?>
-    </ul>
-<?php endif;?>
+<p class="price-as-configured">
+    <?php echo $this->renderAmount($configuredPrice->getAmount(), [
+        'display_label'     => __('Price as configured:'),
+        'include_container' => false
+    ]); ?>
+</p>
diff --git a/app/code/Magento/Catalog/view/frontend/product/price/final_price.phtml b/app/code/Magento/Catalog/view/base/product/price/final_price.phtml
similarity index 76%
rename from app/code/Magento/Catalog/view/frontend/product/price/final_price.phtml
rename to app/code/Magento/Catalog/view/base/product/price/final_price.phtml
index 9c99b8f95c462fad096cb8a150177c1c67402419..6658439ac2ab21ebbf206f9fbbb3b0450bf2118f 100644
--- a/app/code/Magento/Catalog/view/frontend/product/price/final_price.phtml
+++ b/app/code/Magento/Catalog/view/base/product/price/final_price.phtml
@@ -36,21 +36,9 @@ $priceModel = $this->getPriceType('regular_price');
 /** @var \Magento\Catalog\Pricing\Price\FinalPrice $finalPriceModel */
 $finalPriceModel = $this->getPriceType('final_price');
 ?>
-<?php
-if (isset($_GET['showmeprice'])) {
-    echo 'Regular Price :' . $this->getPriceType('regular_price')->getValue() . "<br />";
-    echo 'Special Price :' . $this->getPriceType('special_price')->getValue(). "<br />";
-    echo 'Group Price :' . $this->getPriceType('group_price')->getValue(). "<br />";
-    echo 'Catalog Rule Price :' . $this->getPriceType('catalog_rule_price')->getValue(). "<br />";
-    echo 'Tier Price :' . $this->getPriceType('tier_price')->getValue(). "<br />";
-    echo 'Base Price :' . $this->getPriceType('base_price')->getValue(). "<br />";
-    echo 'Final Price :' . $this->getPriceType('final_price')->getValue(). "<br />";
-    echo  "<br />";
-}
-?>
 <?php if ($this->hasSpecialPrice()): ?>
     <p class="old-price">
-        <?php echo $this->renderAmount($priceModel->getCustomAmount($priceModel->getValue(), true), [
+        <?php echo $this->renderAmount($priceModel->getAmount(), [
             'display_label'     => __('Regular Price:'),
             'price_id'          => $this->getPriceId('old-price-'),
             'include_container' => true,
diff --git a/app/code/Magento/Catalog/view/frontend/product/price/msrp_price.phtml b/app/code/Magento/Catalog/view/base/product/price/msrp_price.phtml
similarity index 60%
rename from app/code/Magento/Catalog/view/frontend/product/price/msrp_price.phtml
rename to app/code/Magento/Catalog/view/base/product/price/msrp_price.phtml
index 451e896bb451769fe80682b4bb45956199e4e822..b1b449e3f7b277553aa6d0f32c08250b453243a7 100644
--- a/app/code/Magento/Catalog/view/frontend/product/price/msrp_price.phtml
+++ b/app/code/Magento/Catalog/view/base/product/price/msrp_price.phtml
@@ -33,7 +33,7 @@
 /** @var Magento\Catalog\Pricing\Price\MsrpPriceInterface $priceType */
 $priceType = $this->getPrice();
 
-/** @var $product \Magento\Catalog\Model\Product|\Magento\Framework\Pricing\Object\SaleableInterface */
+/** @var $product \Magento\Catalog\Model\Product */
 $product = $this->getSaleableItem();
 $productId = $product->getId();
 // @todo: msrp works totally wrong, any excuses not accepted. will be refactored ASAP
@@ -60,7 +60,18 @@ if ($product->isSaleable()) {
     <?php $priceElementId = $priceElementIdPrefix . $productId . $this->getIdSuffix(); ?>
     <span id="<?php echo $this->getPriceId() ? $this->getPriceId() : $priceElementId ?>" style="display:none"></span>
     <?php $popupId = 'msrp-popup-' . $productId . $this->getRandomString(20); ?>
-    <a href="#" id="<?php echo($popupId);?>"><?php echo __('Click for price'); ?></a>
+    <a href="#"
+       id="<?php echo($popupId);?>"
+       data-mage-init='{"addToCart":{"cartForm": "#product_addtocart_form_from_popup",
+                                     "popupId": "#<?php echo $popupId; ?>",
+                                     "productName": "<?php echo $product->getName() ?>",
+                                     "realPrice": <?php echo $this->jsonEncode($this->getRealPriceHtml()) ?>,
+                                     "msrpPrice": <?php echo $this->jsonEncode($msrpPrice) ?>,
+                                     "priceElementId":"<?php echo $priceElementId ?>",
+                                     "closeButtonId": "#map-popup-close",
+                                     "popupCartButtonId": "#map-popup-button",
+                                     "addToCartUrl": "<?php echo $addToCartUrl; ?>"}}'><?php echo __('Click for price'); ?>
+    </a>
 <?php else: ?>
     <span class="msrp message">
      <?php echo $priceType->getMsrpPriceMessage() ?>
@@ -69,37 +80,11 @@ if ($product->isSaleable()) {
 
 <?php if ($this->getZone() == \Magento\Framework\Pricing\Render::ZONE_ITEM_VIEW): ?>
     <?php $helpLinkId = 'msrp-help-' . $productId . $this->getRandomString(20); ?>
-    <a href="#" id="<?php echo $helpLinkId;?>" class="action show map">
-        <span><?php echo __("What's this?"); ?></span>
+    <a href="#"
+       id="<?php echo $helpLinkId;?>"
+       class="action show map"
+       data-mage-init='{"addToCart":{"helpLinkId": "#<?php echo $helpLinkId;?>",
+                                     "productName": "<?php echo $product->getName() ?>",
+                                     "closeButtonId": "#map-popup-close"}}'><span><?php echo __("What's this?"); ?></span>
     </a>
 <?php endif; ?>
-
-<script type="text/javascript">
-    //<![CDATA[
-    (function ($) {
-        head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/msrp.js') ?>",
-            function () {
-                <?php if ($priceType->isShowPriceOnGesture()): ?>
-                $('#<?php echo($popupId);?>').addToCart({
-                    cartForm: "#product_addtocart_form_from_popup",
-                    popupId: "#<?php echo $popupId;?>",
-                    productName: '<?php echo $product->getName() ?>',
-                    realPrice: <?php echo $this->jsonEncode($this->getRealPriceHtml()) ?>,
-                    msrpPrice: <?php echo $this->jsonEncode($msrpPrice) ?>,
-                    priceElementId: '<?php echo $priceElementId ?>',
-                    closeButtonId: '#map-popup-close',
-                    popupCartButtonId: "#map-popup-button",
-                    addToCartUrl: '<?php echo $addToCartUrl; ?>'
-                });
-                <?php endif; ?>
-                <?php if ($this->getZone() == \Magento\Framework\Pricing\Render::ZONE_ITEM_VIEW): ?>
-                $("#<?php echo $helpLinkId;?>").addToCart({
-                    helpLinkId: "#<?php echo $helpLinkId;?>",
-                    productName: '<?php echo $product->getName() ?>',
-                    closeButtonId: '#map-popup-close'
-                });
-                <?php endif; ?>
-            });
-    })(jQuery);
-    //]]>
-</script>
diff --git a/app/code/Magento/Catalog/view/frontend/product/price/tier_prices.phtml b/app/code/Magento/Catalog/view/base/product/price/tier_prices.phtml
similarity index 94%
rename from app/code/Magento/Catalog/view/frontend/product/price/tier_prices.phtml
rename to app/code/Magento/Catalog/view/base/product/price/tier_prices.phtml
index 006e993c27c590dfe1b2d3042aa046629d0189bc..a723dbbb185d6ee7f77507806c93915a084be606 100644
--- a/app/code/Magento/Catalog/view/frontend/product/price/tier_prices.phtml
+++ b/app/code/Magento/Catalog/view/base/product/price/tier_prices.phtml
@@ -100,11 +100,9 @@ $product = $this->getSaleableItem();
     <?php if ($msrpShowOnGesture):?>
         <script type="text/javascript">
             (function($) {
-                head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/tier-price.js') ?>", function () {
-                    $('.product.info.main').tierPrice({
-                        inputQty: '#qty',
-                        productForm: '#product_addtocart_form'
-                    });
+                $('.product.info.main').mage('tierPrice', {
+                    inputQty: '#qty',
+                    productForm: '#product_addtocart_form'
                 });
             })(jQuery);
         </script>
diff --git a/app/code/Magento/Catalog/view/frontend/js/components.phtml b/app/code/Magento/Catalog/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..ecd591e9e5c9aebfcd1b986a56f4be0c0c5b2176
--- /dev/null
+++ b/app/code/Magento/Catalog/view/frontend/js/components.phtml
@@ -0,0 +1,99 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            catalogSearch: [
+                '<?php echo $this->getViewFileUrl('jquery/handlebars/handlebars-v1.3.0.js')?>',
+                '<?php echo $this->getViewFileUrl('Magento_CatalogSearch::form-mini.js')?>'
+            ],
+            compareItems: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/compare.js')?>'
+            ],
+            compareList: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/list.js')?>'
+            ],
+            fileOption: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/file-option.js')?>'
+            ],
+            relatedProducts: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/related-products.js')?>'
+            ],
+            upsellProducts: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/upsell-products.js')?>'
+            ],
+            discountCode: [
+                '<?php echo $this->getViewFileUrl('Magento_Checkout::js/discount-codes.js')?>'
+            ],
+            catalogGallery: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/gallery.js')?>'
+            ],
+            wishlist: [
+                '<?php echo $this->getViewFileUrl('Magento_Wishlist::wishlist.js')?>'
+            ],
+            orderOverview: [
+                '<?php echo $this->getViewFileUrl('Magento_Checkout::js/overview.js') ?>'
+            ],
+            rowBuilder: [
+                '<?php echo $this->getViewFileUrl('Magento_Theme::js/row-builder.js') ?>'
+            ],
+            address: [
+                '<?php echo $this->getViewFileUrl('Magento_Customer::address.js') ?>'
+            ],
+            priceOption: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/price-option.js') ?>'
+            ],
+            requireCookie: [
+                '<?php echo $this->getViewFileUrl('Magento_Core::js/require-cookie.js') ?>'
+            ],
+            addToCart: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/msrp.js') ?>'
+            ],
+            tierPrice: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/tier-price.js') ?>'
+            ],
+            dateOption: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/date-option.js') ?>'
+            ],
+            zoom: [
+                '<?php echo $this->getViewFileUrl('mage/zoom.js') ?>'
+            ],
+            gallery: [
+                '<?php echo $this->getViewFileUrl('mage/gallery.js') ?>'
+            ],
+            galleryFullScreen: [
+                '<?php echo $this->getViewFileUrl('mage/gallery.js') ?>',
+                '<?php echo $this->getViewFileUrl('mage/gallery-fullscreen.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Catalog/view/frontend/js/date-option.js b/app/code/Magento/Catalog/view/frontend/js/date-option.js
index c3fb458e522649c1d0e01e9844ac8849302fe2ac..9d277ecc7df37358c2d5c00736e987e673b98015 100644
--- a/app/code/Magento/Catalog/view/frontend/js/date-option.js
+++ b/app/code/Magento/Catalog/view/frontend/js/date-option.js
@@ -25,6 +25,9 @@
 /*jshint browser:true jquery:true*/
 (function($) {
     $.widget('mage.dateOption', {
+        options: {
+        },
+
         _create: function() {
             $(this.options.datepickerFieldSelector)
                 .on('change', $.proxy(function() {this.element.trigger('reloadPrice');}, this));
diff --git a/app/code/Magento/Catalog/view/frontend/js/price-option.js b/app/code/Magento/Catalog/view/frontend/js/price-option.js
index edb3cdff4df47d037f61c39989d14761a420ae43..e4b4f65c6d3452d0fe620dceaacd36ef61b17bf7 100644
--- a/app/code/Magento/Catalog/view/frontend/js/price-option.js
+++ b/app/code/Magento/Catalog/view/frontend/js/price-option.js
@@ -35,7 +35,6 @@
             controlContainer: 'dd'
         },
         _create: function() {
-
             this.element.on('changePrice', $.proxy(function(e, data) {
                     this.changePrice(data.config, data.price);
                 }, this)).on('reloadPrice', $.proxy(function() {
@@ -224,8 +223,10 @@
                             price = price + getOptionPrices[0];
                         }
 
-
-                        var priceHtml = $.tmpl(this.options.priceTemplate, {'formattedPrice': this._formatCurrency(price, this.options.priceConfig.priceFormat)});
+                        var priceHtml = $.tmpl(
+                            this.options.priceTemplate,
+                            {'formattedPrice': this._formatCurrency(price, this.options.priceConfig.priceFormat)}
+                        );
                         priceElement.html(priceHtml[0].outerHTML);
                         // If clone exists, update clone price as well
                         if (!isClone && clone.length === 1) {
diff --git a/app/code/Magento/Catalog/view/frontend/layout/MAP_price_msrp_item.xml b/app/code/Magento/Catalog/view/frontend/layout/MAP_price_msrp_item.xml
deleted file mode 100644
index e09d8f92c57f4d6d76d2587e6d44f88f0a904287..0000000000000000000000000000000000000000
--- a/app/code/Magento/Catalog/view/frontend/layout/MAP_price_msrp_item.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <referenceBlock name="catalog_product_price_template">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">msrp</argument>
-            <argument name="block" xsi:type="string">Magento\Catalog\Block\Product\Price</argument>
-            <argument name="template" xsi:type="string">product/price_msrp_item.phtml</argument>
-        </action>
-    </referenceBlock>
-    <referenceBlock name="product.clone_prices">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">msrp</argument>
-            <argument name="block" xsi:type="string">Magento\Catalog\Block\Product\Price</argument>
-            <argument name="template" xsi:type="string">product/price_msrp_item.phtml</argument>
-        </action>
-    </referenceBlock>
-</layout>
diff --git a/app/code/Magento/Catalog/view/frontend/layout/MAP_price_msrp_wishlist_item.xml b/app/code/Magento/Catalog/view/frontend/layout/MAP_price_msrp_wishlist_item.xml
deleted file mode 100644
index 54214819253498fc63686af1f6f7a9fac2c97c90..0000000000000000000000000000000000000000
--- a/app/code/Magento/Catalog/view/frontend/layout/MAP_price_msrp_wishlist_item.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <referenceBlock name="catalog_product_price_template">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">msrp</argument>
-            <argument name="block" xsi:type="string">Magento\Catalog\Block\Product\Price</argument>
-            <argument name="template" xsi:type="string">Magento_Wishlist::render/item/price_msrp_item.phtml</argument>
-        </action>
-    </referenceBlock>
-</layout>
diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xml b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xml
index 49792c14a2b51c25d08b19f34de169b9a282c18b..af981d307000f1b8fa438c72f022f9b6633329c4 100644
--- a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xml
+++ b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xml
@@ -37,11 +37,6 @@
         </arguments>
     </referenceBlock>
     <referenceBlock name="head">
-        <block class="Magento\Theme\Block\Html\Head\Script" name="mage-zoom-js">
-            <arguments>
-                <argument name="file" xsi:type="string">mage/zoom.js</argument>
-            </arguments>
-        </block>
         <block class="Magento\Theme\Block\Html\Head\Css" name="mage-gallery-css">
             <arguments>
                 <argument name="file" xsi:type="string">mage/gallery.css</argument>
diff --git a/app/code/Magento/Catalog/view/frontend/layout/default.xml b/app/code/Magento/Catalog/view/frontend/layout/default.xml
index a305f92da201c659ff525b5c35e2d810940a7031..4cef193beb1505c41838e061482d2507b7bd8462 100644
--- a/app/code/Magento/Catalog/view/frontend/layout/default.xml
+++ b/app/code/Magento/Catalog/view/frontend/layout/default.xml
@@ -30,36 +30,12 @@
     <referenceContainer name="right">
         <block class="Magento\Catalog\Block\Product\Compare\Sidebar" name="catalog.compare.sidebar" template="product/compare/sidebar.phtml"/>
     </referenceContainer>
-    <block class="Magento\Catalog\Block\Product\Price\Template" name="catalog_product_price_template"/>
-    <referenceBlock name="catalog_product_price_template">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">msrp</argument>
-            <argument name="block" xsi:type="string">Magento\Catalog\Block\Product\Price</argument>
-            <argument name="template" xsi:type="string">product/price_msrp.phtml</argument>
-        </action>
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">msrp_item</argument>
-            <argument name="block" xsi:type="string">Magento\Catalog\Block\Product\Price</argument>
-            <argument name="template" xsi:type="string">product/price_msrp_item.phtml</argument>
-        </action>
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">msrp_noform</argument>
-            <argument name="block" xsi:type="string">Magento\Catalog\Block\Product\Price</argument>
-            <argument name="template" xsi:type="string">product/price_msrp_noform.phtml</argument>
-        </action>
-    </referenceBlock>
     <referenceBlock name="head">
         <block class="Magento\Theme\Block\Html\Head\Script" name="magento-toolbar-form-js" after="magento-dataPost-js">
             <arguments>
                 <argument name="file" xsi:type="string">Magento_Catalog::js/product/list/toolbar.js</argument>
             </arguments>
         </block>
+        <block class="Magento\Framework\View\Element\Js\Components" name="head.components" as="components" template="Magento_Catalog::js/components.phtml"/>
     </referenceBlock>
-    <block class="Magento\Framework\Pricing\Render" name="product.price.render.default">
-        <arguments>
-            <argument name="price_render_handle" xsi:type="string">catalog_product_prices</argument>
-            <argument name="use_link_for_as_low_as" xsi:type="boolean">true</argument>
-            <!-- set "override" configuration settings here -->
-        </arguments>
-    </block>
 </layout>
diff --git a/app/code/Magento/Catalog/view/frontend/product/compare/list.phtml b/app/code/Magento/Catalog/view/frontend/product/compare/list.phtml
index 307c63787cb4f4d74fbee64c71a24226483bd411..6809b5f6108064f9bda6175f3f45a382a0fcb986 100644
--- a/app/code/Magento/Catalog/view/frontend/product/compare/list.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/compare/list.phtml
@@ -31,7 +31,13 @@
     <?php $imageBlock =  $this->getLayout()->createBlock('Magento\Catalog\Block\Product\Image'); ?>
     <div class="comparison wrapper">
         <div class="comparison container">
-            <table class="data-table data table comparison" id="product-comparison">
+            <table class="data-table data table comparison" id="product-comparison"
+                data-mage-init='{"compareList":{
+                    "windowPrintSelector":".action.print",
+                    "productsInRow":"5",
+                    "selectors":{
+                        "productAddToCartSelector":"button.action.tocart"}
+                }}'>
                 <caption><?php echo __('Compare Products') ?></caption>
                 <thead>
                 <tr>
@@ -143,18 +149,3 @@
 <?php else: ?>
     <p class="empty"><?php echo __('You have no items to compare.') ?></p>
 <?php endif; ?>
-<script type="text/javascript">
-    (function($, window) {
-        <?php if ($_total): ?>
-        head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/list.js')?>", function() {
-            $('#product-comparison').compareList({
-                windowPrintSelector: '.action.print',
-                productsInRow: 5,
-                selectors: {
-                    productAddToCartSelector: 'button.action.tocart'
-                }
-            });
-        });
-        <?php endif; ?>
-    })(jQuery, window);
-</script>
diff --git a/app/code/Magento/Catalog/view/frontend/product/compare/sidebar.phtml b/app/code/Magento/Catalog/view/frontend/product/compare/sidebar.phtml
index cd7c44ba16b3f3c7919f66a456b73c926780298b..d1288f0ef9e6fb09fb4d7722f8c863e4859d585d 100644
--- a/app/code/Magento/Catalog/view/frontend/product/compare/sidebar.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/compare/sidebar.phtml
@@ -37,7 +37,13 @@ $count = $_helper->getItemCount();
     </div>
     <div class="content">
         <?php if($_helper->getItemCount() > 0): ?>
-        <ol id="compare-items" class="items compare">
+            <ol id="compare-items" class="items compare"
+                data-mage-init='{"compareItems":{
+                    "removeConfirmMessage":"<?php echo __("Are you sure you would like to remove this item from the compare products?") ?>",
+                    "removeSelector":"#compare-items a.action.delete",
+                    "clearAllConfirmMessage":"<?php echo __("Are you sure you would like to remove all products from your comparison?") ?>",
+                    "clearAllSelector":"#compare-clear-all"
+                }}'>
             <?php foreach($_items as $_index => $_item): ?>
             <li class="item">
                 <input type="hidden" class="compare-item-id" value="<?php echo $_item->getId() ?>"/>
@@ -64,18 +70,6 @@ $count = $_helper->getItemCount();
             </a>
         </div>
     </div>
-    <script type="text/javascript">
-        (function ($) {
-            head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/compare.js') ?>", function () {
-                $('#compare-items').compareItems({
-                    removeConfirmMessage: '<?php echo __('Are you sure you would like to remove this item from the compare products?') ?>',
-                    removeSelector: '#compare-items a.action.delete',
-                    clearAllConfirmMessage: '<?php echo __('Are you sure you would like to remove all products from your comparison?') ?>',
-                    clearAllSelector: '#compare-clear-all'
-                });
-            });
-        })(jQuery);
-    </script>
     <?php else: ?>
         <p class="empty"><?php echo __('You have no items to compare.') ?></p>
         <?php endif; ?>
diff --git a/app/code/Magento/Catalog/view/frontend/product/gallery.phtml b/app/code/Magento/Catalog/view/frontend/product/gallery.phtml
index 1a0794166ef604f8db63e70d81020a6997a12434..cbbb40e91b4c2e93482e40716cec25375ec06221 100644
--- a/app/code/Magento/Catalog/view/frontend/product/gallery.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/gallery.phtml
@@ -40,7 +40,7 @@
     <?php if($_imageTitle = $this->escapeHtml($this->getCurrentImage()->getLabel())): ?>
         <h1 class="image-label"><?php echo $_imageTitle ?></h1>
     <?php endif; ?>
-    <img src="<?php echo $this->helper('Magento\Catalog\Helper\Image')->init($this->getProduct(), 'image', $this->getImageFile()); ?>"<?php if($_width): ?> width="<?php echo $_width ?>"<?php endif; ?> alt="<?php echo $this->escapeHtml($this->getCurrentImage()->getLabel()) ?>" title="<?php echo $this->escapeHtml($this->getCurrentImage()->getLabel()) ?>" id="product-gallery-image" class="image" />
+    <img src="<?php echo $this->helper('Magento\Catalog\Helper\Image')->init($this->getProduct(), 'image', $this->getImageFile()); ?>"<?php if($_width): ?> width="<?php echo $_width ?>"<?php endif; ?> alt="<?php echo $this->escapeHtml($this->getCurrentImage()->getLabel()) ?>" title="<?php echo $this->escapeHtml($this->getCurrentImage()->getLabel()) ?>" id="product-gallery-image" class="image" data-mage-init='{"catalogGallery":{}}'/>
     <div class="buttons-set"><a href="#" class="button" role="close-window"><span><?php echo __('Close Window') ?></span></a></div>
     <?php if($this->getPreviousImageUrl() || $this->getNextImageUrl()): ?>
         <div class="nav">
@@ -53,10 +53,3 @@
         </div>
     <?php endif; ?>
 </div>
-<script type="text/javascript">
-    window.onload = function() {
-        head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/gallery.js');?>", function() {
-            jQuery('#product-gallery-image').gallery();
-        });
-    };
-</script>
diff --git a/app/code/Magento/Catalog/view/frontend/product/list/items.phtml b/app/code/Magento/Catalog/view/frontend/product/list/items.phtml
index 893741ed4f56189c468fbddb9764f0320ea850b8..f57359ccd9e7a564561d61f55f83fd62b66a82ea 100644
--- a/app/code/Magento/Catalog/view/frontend/product/list/items.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/list/items.phtml
@@ -175,7 +175,11 @@ switch($type = $this->getType()) {
 
 <?php if ($exist):?>
     <?php if($type == 'related' || $type == 'upsell'): ?>
-        <div class="block <?php echo $class; ?>" data-limit="<?php echo $limit; ?>" data-shuffle="<?php echo $shuffle; ?>">
+        <?php if($type == 'related'): ?>
+            <div class="block <?php echo $class; ?>" data-mage-init='{"relatedProducts":{"relatedCheckbox":".related.checkbox"}}' data-limit="<?php echo $limit; ?>" data-shuffle="<?php echo $shuffle; ?>">
+        <?php else: ?>
+            <div class="block <?php echo $class; ?>" data-mage-init='{"upsellProducts":{}}' data-limit="<?php echo $limit; ?>" data-shuffle="<?php echo $shuffle; ?>">
+        <?php endif; ?>
     <?php else: ?>
         <div class="block <?php echo $class; ?>">
     <?php endif; ?>
@@ -282,21 +286,5 @@ switch($type = $this->getType()) {
             </ol>
         </div>
     </div>
-    <?php if($type == 'related'): ?>
-    <script type="text/javascript">
-        head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/related-products.js'); ?>", function() {
-            jQuery(".block.related").relatedProducts({
-                relatedCheckbox: '.related.checkbox'
-            });
-        });
-    </script>
-    <?php endif; ?>
-    <?php if($type == 'upsell'): ?>
-        <script type="text/javascript">
-            head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/upsell-products.js'); ?>", function() {
-                jQuery(".block.upsell").upsellProducts();
-            });
-        </script>
-    <?php endif; ?>
 </div>
 <?php endif;?>
diff --git a/app/code/Magento/Catalog/view/frontend/product/price.phtml b/app/code/Magento/Catalog/view/frontend/product/price.phtml
deleted file mode 100644
index bc560c05fbfe3d526dda820103bda428de0a4202..0000000000000000000000000000000000000000
--- a/app/code/Magento/Catalog/view/frontend/product/price.phtml
+++ /dev/null
@@ -1,387 +0,0 @@
-<?php
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @category    design
- * @package     base_default
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-?>
-
-<?php
-/**
- * Template for displaying product price in different places (products grid, product view page etc)
- *
- * @see \Magento\Catalog\Block\Product\AbstractProduct
- */
-?>
-<?php
-    $_coreHelper = $this->helper('Magento\Core\Helper\Data');
-    $weeeHelper = $this->helper('Magento\Weee\Helper\Data');
-    $priceHelper  = $this->helper('Magento\Catalog\Helper\Product\Price');
-    /* @var $_coreHelper \Magento\Core\Helper\Data */
-    /* @var $weeeHelper \Magento\Weee\Helper\Data */
-    /* @var $priceHelper Magento\Catalog\Helper\Product\Price */
-
-    $_product = $this->getProduct();
-    $_storeId = $_product->getStoreId();
-    $_id = $_product->getId();
-    $_weeeSeparator = '';
-    $_simplePricesTax = ($priceHelper->displayPriceIncludingTax() || $priceHelper->displayBothPrices());
-    $_minimalPriceValue = $_product->getMinimalPrice();
-    $_minimalPrice = $priceHelper->getPrice($_product, $_minimalPriceValue, $_simplePricesTax);
-?>
-<?php $_weeeTaxAmount = $weeeHelper->getAmountForDisplay($_product); ?>
-<?php if ($weeeHelper->typeOfDisplay(array(\Magento\Weee\Model\Tax::DISPLAY_INCL_DESCR, \Magento\Weee\Model\Tax::DISPLAY_EXCL_DESCR_INCL, 4))): ?>
-    <?php $_weeeTaxAmount = $weeeHelper->getAmount($_product); ?>
-    <?php $_weeeTaxAttributes = $weeeHelper->getProductWeeeAttributesForDisplay($_product); ?>
-<?php endif; ?>
-<?php $_weeeTaxAmountInclTaxes = $_weeeTaxAmount; ?>
-<?php if ($weeeHelper->isTaxable() && !$priceHelper->priceIncludesTax($_storeId)): ?>
-    <?php $_attributes = $weeeHelper->getProductWeeeAttributesForRenderer($_product, null, null, null, true); ?>
-    <?php $_weeeTaxAmountInclTaxes = $weeeHelper->getAmountInclTaxes($_attributes); ?>
-<?php endif; ?>
-
-<div class="price-box">
-<?php $_price = $priceHelper->getPrice($_product, $_product->getPrice()) ?>
-<?php $_regularPrice = $priceHelper->getPrice($_product, $_product->getPrice(), $_simplePricesTax) ?>
-<?php $_finalPrice = $priceHelper->getPrice($_product, $_product->getFinalPrice()) ?>
-<?php $_finalPriceInclTax = $priceHelper->getPrice($_product, $_product->getFinalPrice(), true) ?>
-<?php $_weeeDisplayType = $weeeHelper->getPriceDisplayType(); ?>
-<?php if ($_finalPrice >= $_price): ?>
-    <?php if ($priceHelper->displayBothPrices()): ?>
-        <?php if ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(0)): // including ?>
-            <span class="price-excluding-tax">
-                <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, false) ?>
-                </span>
-            </span>
-            <span class="price-including-tax">
-                <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
-                </span>
-            </span>
-        <?php elseif ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(1)): // incl. + weee ?>
-            <span class="price-excluding-tax">
-                <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, false) ?>
-                </span>
-            </span>
-            <span class="price-including-tax">
-                <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
-                </span>
-                <span class="weee">(
-                    <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                        <?php echo $_weeeSeparator; ?>
-                        <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
-                        <?php $_weeeSeparator = ' + '; ?>
-                    <?php endforeach; ?>
-                    )</span>
-            </span>
-        <?php elseif ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(4)): // incl. + weee ?>
-            <span class="price-excluding-tax">
-                <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, false) ?>
-                </span>
-            </span>
-            <span class="price-including-tax">
-                <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
-                </span>
-                <span class="weee">(
-                    <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                        <?php echo $_weeeSeparator; ?>
-                        <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, true); ?>
-                        <?php $_weeeSeparator = ' + '; ?>
-                    <?php endforeach; ?>
-                    )</span>
-            </span>
-        <?php elseif ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(2)): // excl. + weee + final ?>
-            <span class="price-excluding-tax">
-                <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_price, true, false) ?>
-                </span>
-            </span>
-            <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                <span class="weee">
-                    <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
-                </span>
-            <?php endforeach; ?>
-            <span class="price-including-tax">
-                <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
-                </span>
-            </span>
-        <?php else: ?>
-            <span class="price-excluding-tax">
-                <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php if ($_finalPrice == $_price): ?>
-                        <?php echo $_coreHelper->currency($_price, true, false) ?>
-                    <?php else: ?>
-                        <?php echo $_coreHelper->currency($_finalPrice, true, false) ?>
-                    <?php endif; ?>
-                </span>
-            </span>
-            <span class="price-including-tax">
-                <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_finalPriceInclTax, true, false) ?>
-                </span>
-            </span>
-        <?php endif; ?>
-    <?php else: ?>
-        <?php if ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(0)): // including ?>
-            <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?>
-            </span>
-        <?php elseif ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(1)): // incl. + weee ?>
-            <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?>
-            </span>
-            <span class="weee">(
-                <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                    <?php echo $_weeeSeparator; ?>
-                    <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
-                    <?php $_weeeSeparator = ' + '; ?>
-                <?php endforeach; ?>
-                )</span>
-        <?php elseif ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(4)): // incl. + weee ?>
-            <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?>
-            </span>
-            <span class="weee">(
-                <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                    <?php echo $_weeeSeparator; ?>
-                    <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, true); ?>
-                    <?php $_weeeSeparator = ' + '; ?>
-                <?php endforeach; ?>
-                )</span>
-        <?php elseif ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(2)): // excl. + weee + final ?>
-            <span class="regular-price"><?php echo $_coreHelper->currency($_price,true,true) ?></span><br />
-            <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                <span class="weee">
-                    <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
-                </span>
-            <?php endforeach; ?>
-            <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?>
-            </span>
-        <?php else: ?>
-            <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php if ($_finalPrice == $_price): ?>
-                    <?php echo $_coreHelper->currency($_price, true, true) ?>
-                <?php else: ?>
-                    <?php echo $_coreHelper->currency($_finalPrice, true, true) ?>
-                <?php endif; ?>
-            </span>
-        <?php endif; ?>
-    <?php endif; ?>
-<?php else: /* if ($_finalPrice == $_price): */ ?>
-    <?php $_originalWeeeTaxAmount = $weeeHelper->getOriginalAmount($_product); ?>
-
-    <?php if ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(0)): // including ?>
-        <p class="old-price">
-            <span class="price-label"><?php echo __('Regular Price:') ?></span>
-            <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_regularPrice + $_originalWeeeTaxAmount, true, false) ?>
-            </span>
-        </p>
-
-        <?php if ($priceHelper->displayBothPrices()): ?>
-            <p class="special-price">
-                <span class="price-label"><?php echo __('Special Price:') ?></span>
-                <span class="price-excluding-tax">
-                    <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                    <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                        <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmount, true, false) ?>
-                    </span>
-                </span>
-            <span class="price-including-tax">
-                <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
-                </span>
-            </span>
-            </p>
-        <?php else: ?>
-        <p class="special-price">
-            <span class="price-label"><?php echo __('Special Price:') ?></span>
-            <span class="price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmountInclTaxes, true, false) ?>
-            </span>
-        </p>
-        <?php endif; ?>
-
-    <?php elseif ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(1)): // incl. + weee ?>
-        <p class="old-price">
-            <span class="price-label"><?php echo __('Regular Price:') ?></span>
-            <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_regularPrice + $_originalWeeeTaxAmount, true, false) ?>
-            </span>
-        </p>
-
-        <p class="special-price">
-            <span class="price-label"><?php echo __('Special Price:') ?></span>
-            <span class="price-excluding-tax">
-                <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmount, true, false) ?>
-                </span>
-            </span>
-        <span class="weee">(
-            <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                <?php echo $_weeeSeparator; ?>
-                <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
-                <?php $_weeeSeparator = ' + '; ?>
-            <?php endforeach; ?>
-            )</span>
-        <span class="price-including-tax">
-            <span class="label"><?php echo __('Incl. Tax:') ?></span>
-            <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
-            </span>
-        </span>
-        </p>
-    <?php elseif ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(4)): // incl. + weee ?>
-        <p class="old-price">
-            <span class="price-label"><?php echo __('Regular Price:') ?></span>
-            <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_regularPrice + $_originalWeeeTaxAmount, true, false) ?>
-            </span>
-        </p>
-
-        <p class="special-price">
-            <span class="price-label"><?php echo __('Special Price:') ?></span>
-            <span class="price-excluding-tax">
-                <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmount, true, false) ?>
-                </span>
-            </span>
-        <span class="weee">(
-            <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                <?php echo $_weeeSeparator; ?>
-                <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, true); ?>
-                <?php $_weeeSeparator = ' + '; ?>
-            <?php endforeach; ?>
-            )</span>
-        <span class="price-including-tax">
-            <span class="label"><?php echo __('Incl. Tax:') ?></span>
-            <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
-            </span>
-        </span>
-        </p>
-    <?php elseif ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(2)): // excl. + weee + final ?>
-        <p class="old-price">
-            <span class="price-label"><?php echo __('Regular Price:') ?></span>
-            <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_regularPrice, true, false) ?>
-            </span>
-        </p>
-
-        <p class="special-price">
-            <span class="price-label"><?php echo __('Special Price:') ?></span>
-            <span class="price-excluding-tax">
-                <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_finalPrice, true, false) ?>
-                </span>
-            </span>
-            <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
-                <span class="weee">
-                    <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
-                </span>
-            <?php endforeach; ?>
-            <span class="price-including-tax">
-                <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                    <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
-                </span>
-            </span>
-        </p>
-    <?php else: // excl. ?>
-        <p class="old-price">
-            <span class="price-label"><?php echo __('Regular Price:') ?></span>
-            <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_regularPrice, true, false) ?>
-            </span>
-        </p>
-
-        <?php if ($priceHelper->displayBothPrices()): ?>
-            <p class="special-price">
-                <span class="price-label"><?php echo __('Special Price:') ?></span>
-                <span class="price-excluding-tax">
-                    <span class="label"><?php echo __('Excl. Tax:') ?></span>
-                    <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                        <?php echo $_coreHelper->currency($_finalPrice, true, false) ?>
-                    </span>
-                </span>
-                <span class="price-including-tax">
-                    <span class="label"><?php echo __('Incl. Tax:') ?></span>
-                    <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                        <?php echo $_coreHelper->currency($_finalPriceInclTax, true, false) ?>
-                    </span>
-                </span>
-            </p>
-        <?php else: ?>
-        <p class="special-price">
-            <span class="price-label"><?php echo __('Special Price:') ?></span>
-            <span class="price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-                <?php echo $_coreHelper->currency($_finalPrice, true, false) ?>
-            </span>
-        </p>
-        <?php endif; ?>
-    <?php endif; ?>
-
-<?php endif; /* if ($_finalPrice == $_price): */ ?>
-<?php if ($this->getDisplayMinimalPrice() && $_minimalPriceValue && $_minimalPriceValue < $_product->getFinalPrice()): ?>
-
-    <?php $_minimalPriceDisplayValue = $_minimalPrice; ?>
-    <?php if ($_weeeTaxAmount && $weeeHelper->typeOfDisplay(array(0, 1, 4))): ?>
-        <?php $_minimalPriceDisplayValue = $_minimalPrice + $_weeeTaxAmount; ?>
-    <?php endif; ?>
-
-    <?php if ($this->getUseLinkForAsLowAs()):?>
-    <a href="<?php echo $_product->getProductUrl(); ?>" class="minimal-price-link">
-    <?php else:?>
-    <span class="minimal-price-link">
-    <?php endif?>
-        <span class="label"><?php echo __('As low as:') ?></span>
-        <span class="price" id="product-minimal-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
-            <?php echo $_coreHelper->currency($_minimalPriceDisplayValue, true, false) ?>
-        </span>
-    <?php if ($this->getUseLinkForAsLowAs()):?>
-    </a>
-    <?php else:?>
-    </span>
-    <?php endif?>
-<?php endif; /* if ($this->getDisplayMinimalPrice() && $_minimalPrice && $_minimalPrice < $_finalPrice): */ ?>
-</div>
diff --git a/app/code/Magento/Catalog/view/frontend/product/price_msrp.phtml b/app/code/Magento/Catalog/view/frontend/product/price_msrp.phtml
index e193d2d65b610df06299f578802eb77d7b4ec60d..3fa751ee849353e437aa4ae59fce6b59b21c8175 100644
--- a/app/code/Magento/Catalog/view/frontend/product/price_msrp.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/price_msrp.phtml
@@ -44,31 +44,18 @@
             <span class="old price" id="product-price-<?php echo $_product->getId() ?><?php echo $this->getIdSuffix() ?>"><?php echo $_msrpPrice ?></span>
         <?php endif; ?>
         <?php $popupId = 'msrp-click-' . $_product->getId() . $this->getRandomString(20); ?>
-        <a href="#" id="<?php echo($popupId);?>"><?php echo __('Click for price') ?></a>
+        <?php if ($this->helper('Magento\Catalog\Helper\Data')->isShowPriceOnGesture($_product)): ?>
+            <a href="#"
+               id="<?php echo($popupId); ?>"
+               data-mage-init='{"addToCart":{"popupId": "#<?php echo($popupId); ?>",
+                                             "productName": "<?php echo $_product->getName() ?>",
+                                             "realPrice": <?php echo $this->getRealPriceJs($_product) ?>,
+                                             "msrpPrice": "<?php echo $_msrpPrice ?>",
+                                             "priceElementId":"<?php echo $priceElementId ?>",
+                                             "popupCartButtonId": "#map-popup-button",
+                                             "addToCartUrl": "<?php echo $this->getAddToCartUrl($_product) ?>"}}'><?php echo __('Click for price') ?>
+            </a>
+        <?php else: ?>
+            <a href="#" id="<?php echo($popupId);?>" data-mage-init='{"addToCart":{"popupId": "#<?php echo($popupId);?>", "submitUrl": "<?php echo $_product->getProductUrl() ?>"}}'><?php echo __('Click for price') ?></a>
+        <?php endif; ?>
     </div>
-
-    <script type="text/javascript">
-        //<![CDATA[
-        (function ($) {
-            head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/msrp.js') ?>", function () {
-                <?php if ($this->helper('Magento\Catalog\Helper\Data')->isShowPriceOnGesture($_product)): ?>
-                    $('#<?php echo($popupId);?>').addToCart({
-                        popupId: "#<?php echo($popupId);?>",
-                        productName: '<?php echo $_product->getName() ?>',
-                        realPrice: '<?php echo $this->getRealPriceJs($_product) ?>',
-                        msrpPrice: '<?php echo $_msrpPrice ?>',
-                        priceElementId: '<?php echo $priceElementId ?>',
-                        closeButtonId: '#map-popup-close',
-                        popupCartButtonId: "#map-popup-button",
-                        addToCartUrl: "<?php echo $this->getAddToCartUrl($_product) ?>"
-                    });
-                <?php else: ?>
-                    $('#<?php echo($popupId);?>').addToCart({
-                        popupId: "#<?php echo($popupId);?>",
-                        submitUrl: "<?php echo $_product->getProductUrl() ?>"
-                    });
-                <?php endif; ?>
-                });
-        })(jQuery);
-        //]]>
-    </script>
diff --git a/app/code/Magento/Catalog/view/frontend/product/price_msrp_item.phtml b/app/code/Magento/Catalog/view/frontend/product/price_msrp_item.phtml
index 81201c6eb1268a613e38d80e272df7970f981705..7772285a4e95d68b9bc2d6f0577209ae30dfdaa5 100644
--- a/app/code/Magento/Catalog/view/frontend/product/price_msrp_item.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/price_msrp_item.phtml
@@ -46,51 +46,30 @@ $priceElementIdPrefix = $this->getPriceElementIdPrefix() ? $this->getPriceElemen
 <div class="price-box map info">
     <?php $_price = $this->helper('Magento\Tax\Helper\Data')->getPrice($_product, $_product->getMsrp()) ?>
     <?php if ($_product->getMsrp()): ?>
-    <?php $_msrpPrice = $_coreHelper->currency($_product->getMsrp(), true, true) ?>
-    <span class="old-price"><?php echo $_msrpPrice ?></span>
+        <?php $_msrpPrice = $_coreHelper->currency($_product->getMsrp(), true, true) ?>
+        <span class="old-price"><?php echo $_msrpPrice ?></span>
     <?php endif; ?>
 
     <?php if ($_catalogHelper->isShowPriceOnGesture($_product)): ?>
-    <?php $priceElementId = $priceElementIdPrefix . $_id . $this->getIdSuffix(); ?>
-    <span id="<?php echo $priceElementId ?>" style="display:none"></span>
-    <?php $popupId = 'msrp-popup-' . $_id . $this->getRandomString(20); ?>
-    <a href="#" id="<?php echo($popupId);?>"><?php echo __('Click for price'); ?></a>
-
+        <?php $priceElementId = $priceElementIdPrefix . $_id . $this->getIdSuffix(); ?>
+        <span id="<?php echo $priceElementId ?>" style="display:none"></span>
+        <?php $popupId = 'msrp-popup-' . $_id . $this->getRandomString(20); ?>
+        <a href="#"
+           id="<?php echo($popupId);?>"
+           data-mage-init='{"addToCart":{"popupId": "#<?php echo($popupId);?>",
+                                         "productName": "<?php echo $_product->getName() ?>",
+                                         "realPrice": <?php echo $this->getRealPriceJs($_product) ?>,
+                                         "msrpPrice": "<?php echo $_msrpPrice ?>",
+                                         "priceElementId":"<?php echo $priceElementId ?>",
+                                         "popupCartButtonId": "#map-popup-button",
+                                         "cartForm": "#product_addtocart_form"}}'><?php echo __('Click for price') ?>
+        </a>
     <?php else: ?>
-    <span class="msrp message">
+        <span class="msrp message">
          <?php echo $_catalogHelper->getMsrpPriceMessage($_product) ?>
     </span>
     <?php endif; ?>
 
     <?php $helpLinkId = 'msrp-help-' . $_id . $this->getRandomString(20); ?>
-    <a href="#" id="<?php echo($helpLinkId);?>" class="action show map"><span><?php echo __("What's this?"); ?></span></a>
+    <a href="#" id="<?php echo($helpLinkId);?>" data-mage-init='{"addToCart":{"helpLinkId": "#<?php echo($helpLinkId);?>", "productName": "<?php echo $_product->getName() ?>"}}' class="action show map"><span><?php echo __("What's this?"); ?></span></a>
 </div>
-
-<script type="text/javascript">
-    //<![CDATA[
-    (function ($) {
-        head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/msrp.js') ?>",
-            function () {
-            <?php if ($this->helper('Magento\Catalog\Helper\Data')->isShowPriceOnGesture($_product)): ?>
-                $('#<?php echo($popupId);?>').addToCart({
-                    cartForm: "#product_addtocart_form",
-                    popupId: "#<?php echo($popupId);?>",
-                    productName: '<?php echo $_product->getName() ?>',
-                    realPrice: '<?php echo $this->getRealPriceJs($_product) ?>',
-                    msrpPrice: '<?php echo $_msrpPrice ?>',
-                    priceElementId: '<?php echo $priceElementId ?>',
-                    closeButtonId: '#map-popup-close',
-                    popupCartButtonId: "#map-popup-button"
-                });
-            <?php endif; ?>
-                $("#<?php echo($helpLinkId);?>").addToCart({
-                    helpLinkId: "#<?php echo($helpLinkId);?>",
-                    productName: '<?php echo $_product->getName() ?>',
-                    closeButtonId: '#map-popup-close'
-                });
-            });
-    })(jQuery);
-    //]]>
-</script>
-
-
diff --git a/app/code/Magento/Catalog/view/frontend/product/price_msrp_noform.phtml b/app/code/Magento/Catalog/view/frontend/product/price_msrp_noform.phtml
index 634d3e2b1191da8842bb84cfd48b22e95c3aa0eb..75c1a8be6e45ef606af91428693ae5b9a089bcf9 100644
--- a/app/code/Magento/Catalog/view/frontend/product/price_msrp_noform.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/price_msrp_noform.phtml
@@ -45,31 +45,18 @@
             <span class="old-price" id="product-price-<?php echo $_product->getId() ?><?php echo $this->getIdSuffix() ?>"><?php echo $_msrpPrice ?></span>
         <?php endif; ?>
         <?php $popupId = 'msrp-click-' . $_product->getId() . $this->getRandomString(20); ?>
-        <a href="#" id="<?php echo($popupId);?>"><?php echo __('Click for price') ?></a>
+        <?php if ($this->helper('Magento\Catalog\Helper\Data')->isShowPriceOnGesture($_product)): ?>
+            <a href="#"
+               id="<?php echo($popupId); ?>"
+               data-mage-init='{"addToCart":{"popupId": "#<?php echo($popupId); ?>",
+                                             "productName": "<?php echo $_product->getName() ?>",
+                                             "realPrice": <?php echo $this->getRealPriceJs($_product) ?>,
+                                             "msrpPrice": "<?php echo $_msrpPrice ?>",
+                                             "priceElementId":"<?php echo $priceElementId ?>",
+                                             "popupCartButtonId": "#map-popup-button",
+                                             "addToCartUrl": "<?php echo $this->getAddToCartUrl($_product) ?>"}}'><?php echo __('Click for price') ?>
+            </a>
+        <?php else: ?>
+            <a href="#" id="<?php echo($popupId);?>" data-mage-init='{"addToCart":{"popupId": "#<?php echo($popupId);?>", "submitUrl": "<?php echo $_product->getProductUrl() ?>"}}'><?php echo __('Click for price') ?></a>
+        <?php endif; ?>
     </div>
-
-    <script type="text/javascript">
-        //<![CDATA[
-        (function ($) {
-            head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/msrp.js') ?>", function () {
-                <?php if ($this->helper('Magento\Catalog\Helper\Data')->isShowPriceOnGesture($_product)): ?>
-                    $('#<?php echo($popupId);?>').addToCart({
-                        popupId: "#<?php echo($popupId);?>",
-                        productName: '<?php echo $_product->getName() ?>',
-                        realPrice: '<?php echo $this->getRealPriceJs($_product) ?>',
-                        msrpPrice: '<?php echo $_msrpPrice ?>',
-                        priceElementId: '<?php echo $priceElementId ?>',
-                        closeButtonId: '#map-popup-close',
-                        popupCartButtonId: "#map-popup-button",
-                        addToCartUrl: "<?php echo $this->getAddToCartUrl($_product) ?>"
-                    });
-                    <?php else: ?>
-                    $('#<?php echo($popupId);?>').addToCart({
-                        popupId: "#<?php echo($popupId);?>",
-                        submitUrl: "<?php echo $_product->getProductUrl() ?>"
-                    });
-                    <?php endif; ?>
-                });
-        })(jQuery);
-        //]]>
-    </script>
diff --git a/app/code/Magento/Catalog/view/frontend/product/view/addto.phtml b/app/code/Magento/Catalog/view/frontend/product/view/addto.phtml
index 110b40ffa4208571019f73f6e723dd422b3aa098..e761cd0b6f7f6152863c3b81fd7fbefe3a261678 100644
--- a/app/code/Magento/Catalog/view/frontend/product/view/addto.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/view/addto.phtml
@@ -43,9 +43,7 @@ $compareHelper = $this->helper('Magento\Catalog\Helper\Product\Compare');
        class="action tocompare"><span><?php echo __('Add to Compare') ?></span></a>
 </div>
 <script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('Magento_Wishlist::js/add-to-wishlist.js') ?>", function () {
-        jQuery('body').addToWishlist(
-            <?php echo $this->helper('Magento\Core\Helper\Data')->jsonEncode(array('productType' => $_product->getTypeId()))?>
-        );
-    });
+    jQuery('body').mage('addToWishlist',
+        <?php echo $this->helper('Magento\Core\Helper\Data')->jsonEncode(array('productType' => $_product->getTypeId()))?>
+    );
 </script>
diff --git a/app/code/Magento/Catalog/view/frontend/product/view/addtocart.phtml b/app/code/Magento/Catalog/view/frontend/product/view/addtocart.phtml
index 6779f656226c5fc5909e10f2de25d429e76f8b97..562c3ac406f96cdf7a12711d83d8f08935861098 100644
--- a/app/code/Magento/Catalog/view/frontend/product/view/addtocart.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/view/addtocart.phtml
@@ -60,13 +60,8 @@
 
 <script type="text/javascript">
     (function ($) {
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>", function () {
-                $('#product_addtocart_form').validation({
-                    radioCheckboxClosest: '.nested'
-                });
-            });
+        $('#product_addtocart_form').mage('validation', {
+            radioCheckboxClosest: '.nested'
+        });
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Catalog/view/frontend/product/view/base-image.phtml b/app/code/Magento/Catalog/view/frontend/product/view/base-image.phtml
index e475f2a462f7dc5d31c4448e1ffb40c0d07c1146..034bee63e17a7c7bd86358e5b90655d58ea33d42 100644
--- a/app/code/Magento/Catalog/view/frontend/product/view/base-image.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/view/base-image.phtml
@@ -145,41 +145,33 @@ $thumbHeight =  $this->getVar("product_page_more_views:height") ? : $thumbWidth;
     </script>
     <script type="text/javascript">
         (function($) {
-            head.js("<?php echo $this->getViewFileUrl('mage/zoom.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/gallery.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/gallery-fullscreen.js')?>",
-                function() {
-                    $('[data-role=media-gallery]')
-                        .gallery({
-                            sizes: {
-                                small: {
-                                    width: <?php echo $thumbWidth ?>,
-                                    height: <?php echo $thumbHeight ?>
-                                },
-                                medium: {
-                                    width: <?php echo $_resizedWidth ?>,
-                                    height: <?php echo $_resizedHeight ?>
-                                }
-                            },
-                            controls: {
-                                notice: {
-                                    text: '<?php echo $this->escapeJsQuote(__("Click on image to view it full sized")) ?>'
-                                }
-                            }
-                        })
-                        .zoom({
-                            controls: {
-                                display: {
-                                    left: 20,
-                                    top: 65
-                                },
-                                notice: {
-                                    text: '<?php echo $this->escapeJsQuote(__("Click on image to zoom")) ?>'
-                                }
-                            }
-                        })
-                        .galleryFullScreen();
-            });
+            $('[data-role=media-gallery]').mage('gallery', {
+                'sizes': {
+                    'small': {
+                        'width': <?php echo $thumbWidth ?>,
+                        'height': <?php echo $thumbHeight ?>
+                    },
+                    'medium': {
+                        'width': <?php echo $_resizedWidth ?>,
+                        'height': <?php echo $_resizedHeight ?>
+                    }
+                },
+                'controls': {
+                    'notice': {
+                        'text': '<?php echo $this->escapeJsQuote(__("Click on image to view it full sized")) ?>'
+                    }
+                }
+            }).mage('zoom', {
+                'controls': {
+                    'display': {
+                        'left': 20,
+                        'top': 65
+                    },
+                    'notice': {
+                        'text': '<?php echo $this->escapeJsQuote(__("Click on image to zoom")) ?>'
+                    }
+                }
+            }).mage('galleryFullScreen', {});
         })(jQuery);
     </script>
 <?php endif; ?>
diff --git a/app/code/Magento/Catalog/view/frontend/product/view/form.phtml b/app/code/Magento/Catalog/view/frontend/product/view/form.phtml
index 8dd0b4574eeecc000b8ce04e36c3b85e4286da24..d896dee7059c44e851e5f6b4be5c3e32eb967c88 100644
--- a/app/code/Magento/Catalog/view/frontend/product/view/form.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/view/form.phtml
@@ -33,8 +33,8 @@
 
 <script type="text/javascript">
     (function ($) {
-        head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/price-option.js') ?>", function () {
-            $('#product_addtocart_form').priceOption({"priceConfig":<?php echo $this->getJsonConfig() ?>});
+        $(document).ready(function() {
+            $('#product_addtocart_form').mage('priceOption', {"priceConfig":<?php echo $this->getJsonConfig() ?>});
         });
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Catalog/view/frontend/product/view/options.phtml b/app/code/Magento/Catalog/view/frontend/product/view/options.phtml
index 44aae92547119f6e9a4021a497502d4086b40276..97dc955cf46e8b199b40428cf833182f24dae850 100644
--- a/app/code/Magento/Catalog/view/frontend/product/view/options.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/view/options.phtml
@@ -28,8 +28,8 @@
 <?php if (count($_options)):?>
     <script type="text/javascript">
         (function ($) {
-            head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/price-option.js') ?>", function () {
-                $('#product_addtocart_form').priceOption({
+            $(document).ready(function() {
+                $('#product_addtocart_form').mage('priceOption', {
                     'optionConfig':<?php echo $this->getJsonConfig()?>,
                     'controlContainer': '.field'
                 }).trigger('reloadPrice');
diff --git a/app/code/Magento/Catalog/view/frontend/product/view/options/type/date.phtml b/app/code/Magento/Catalog/view/frontend/product/view/options/type/date.phtml
index 423fb423a02a09ab3ef387c9f7d12609363b985c..b3093957e2f8b0fdc04460d8aecaa72df359494d 100644
--- a/app/code/Magento/Catalog/view/frontend/product/view/options/type/date.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/view/options/type/date.phtml
@@ -40,12 +40,10 @@
                 <script type="text/javascript">
                     //<![CDATA[
                     (function($) {
-                        head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/date-option.js') ?>", function() {
-                            $.mage.dateOption({
-                                datepickerFieldSelector: 'select.datetime-picker',
-                                monthSelector: '#options_<?php echo $_optionId ?>_month',
-                                yearSelector: '#options_<?php echo $_optionId ?>_year'
-                            });
+                        $('#product_addtocart_form').mage('dateOption', {
+                            'datepickerFieldSelector': 'select.datetime-picker',
+                            'monthSelector': '#options_<?php echo $_optionId ?>_month',
+                            'yearSelector': '#options_<?php echo $_optionId ?>_year'
                         });
                     })(jQuery);
                     //]]>
@@ -72,12 +70,12 @@
                    value=""
                    data-validate="{'validate-optional-datetime':<?php echo $_optionId?>}"/>
         <?php endif; ?>
-
         <script type="text/javascript">
             //<![CDATA[
             (function($) {
-                head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>", function() {
-                    $.validator.setDefaults({ignore: ':hidden:not(input[name^="validate_datetime_"])'});
+                var addtocartForm = $('#product_addtocart_form');
+                addtocartForm.mage('validation', {
+                    ignore: ':hidden:not(input[name^="validate_datetime_"])'
                 });
             })(jQuery);
             //]]>
diff --git a/app/code/Magento/Catalog/view/frontend/product/view/options/type/file.phtml b/app/code/Magento/Catalog/view/frontend/product/view/options/type/file.phtml
index 7a2ef1d2bcd904c5a9279d3ed6bc58634eacba52..b2160de3d7b986d2b09ec45309f682182c9fb0c1 100644
--- a/app/code/Magento/Catalog/view/frontend/product/view/options/type/file.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/view/options/type/file.phtml
@@ -31,22 +31,6 @@
 <?php $_fileNamed = $_fileName . '_name'; ?>
 <?php $class = ($_option->getIsRequire()) ? ' required' : ''; ?>
 
-<script type="text/javascript">
-    //<![CDATA[
-    (function($) {
-        head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/file-option.js')?>", function() {
-            $('#input-box-<?php echo $_fileName ?>').fileOption({
-                fileName: '<?php echo $_fileName ?>',
-                fileNamed: '<?php echo $_fileNamed ?>',
-                fieldNameAction: '<?php echo $_fieldNameAction ?>',
-                changeFileSelector: '#change-<?php echo $_fileName ?>',
-                deleteFileSelector: '#delete-<?php echo $_fileName ?>'
-            });
-        });
-    })(jQuery);
-    //]]>
-</script>
-
 <div class="field file<?php echo $class; ?>">
     <label class="label">
         <span><?php echo  $this->escapeHtml($_option->getTitle()) ?></span>
@@ -64,7 +48,15 @@
         <?php endif; ?>
     </div>
     <?php endif; ?>
-    <div class="control" id="input-box-<?php echo $_fileName ?>" <?php echo $_fileExists ? 'style="display:none"' : '' ?>>
+    <div class="control" id="input-box-<?php echo $_fileName ?>"
+             data-mage-init='{"fileOption":{
+                "fileName":"<?php echo $_fileName ?>",
+                "fileNamed":"<?php echo $_fileNamed ?>",
+                "fieldNameAction":"<?php echo $_fieldNameAction ?>",
+                "changeFileSelector":"#change-<?php echo $_fileName ?>",
+                "deleteFileSelector":"#delete-<?php echo $_fileName ?>"}
+             }'
+            <?php echo $_fileExists ? 'style="display:none"' : '' ?>>
         <input type="file"
                name="<?php echo $_fileName; ?>"
                class="product-custom-option<?php echo $_option->getIsRequire() ? ' required' : '' ?>"
diff --git a/app/code/Magento/Catalog/view/frontend/product/view/price_clone.phtml b/app/code/Magento/Catalog/view/frontend/product/view/price_clone.phtml
index 26a7ead5d22d4c72a93afed41c64713caebe1973..d3b68e51c6832caf154206973db693d8c8280e52 100644
--- a/app/code/Magento/Catalog/view/frontend/product/view/price_clone.phtml
+++ b/app/code/Magento/Catalog/view/frontend/product/view/price_clone.phtml
@@ -26,7 +26,7 @@
 <?php $_product = $this->getProduct() ?>
 <?php echo $this->getProductPriceHtml(
     $_product,
-    \Magento\Catalog\Pricing\Price\FinalPriceInterface::PRICE_TYPE_FINAL,
+    \Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE,
     \Magento\Framework\Pricing\Render::ZONE_ITEM_VIEW,
     [
         'price_id_suffix' => '_clone'
diff --git a/app/code/Magento/Catalog/view/frontend/product/view/tierprices.phtml b/app/code/Magento/Catalog/view/frontend/product/view/tierprices.phtml
deleted file mode 100644
index b77c6e618f4c9c49c112981c35025d04eff978bb..0000000000000000000000000000000000000000
--- a/app/code/Magento/Catalog/view/frontend/product/view/tierprices.phtml
+++ /dev/null
@@ -1,228 +0,0 @@
-<?php
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-?>
-
-<?php
-/**
- * @var $this \Magento\Catalog\Block\Product\View
- */
-$_product = $this->getProduct();
-$_tierPrices = $this->getTierPrices();
-$_finalPriceInclTax = $this->helper('Magento\Tax\Helper\Data')->getPrice($_product, $_product->getFinalPrice(), true);
-
-/** @var $_catalogHelper \Magento\Catalog\Helper\Data */
-$_catalogHelper = $this->helper('Magento\Catalog\Helper\Data');
-
-$_weeeTaxAmount = $this->helper('Magento\Weee\Helper\Data')->getAmountForDisplay($_product);
-if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(array(1, 2, 4))) {
-    $_weeeTaxAttributes = $this->helper('Magento\Weee\Helper\Data')->getProductWeeeAttributesForDisplay($_product);
-}
-
-?>
-<?php if (count($_tierPrices) > 0): ?>
-    <ul class="<?php echo ($this->hasListClass() ? $this->getListClass() : 'prices tier items'); ?>">
-        <?php $this->helper('Magento\Weee\Helper\Data')->processTierPrices($_product, $_tierPrices); ?>
-        <?php foreach ($_tierPrices as $_index => $_price): ?>
-            <li class="item">
-                <?php if ($_catalogHelper->canApplyMsrp($_product)): ?>
-                    <?php if ($this->getShowDetailedPrice() === false): ?>
-                        <?php echo __('Buy %1 for', $_price['price_qty']) ?>:
-                    <?php else: ?>
-                        <?php echo __('Buy %1', $_price['price_qty']) ?>
-                    <?php endif; ?>
-                <?php else: ?>
-
-                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displayBothPrices()): ?>
-                        <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0)): ?>
-                            <?php echo __('Buy %1 for %2 (%3 incl. tax) each', $_price['price_qty'], $_price['formated_price_incl_weee_only'], $_price['formated_price_incl_weee']) ?>
-                        <?php elseif($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1)): ?>
-                            <?php echo __('Buy %1 for %2', $_price['price_qty'], $_price['formated_price_incl_weee_only']); ?>
-                            <?php if ($_weeeTaxAttributes): ?>
-                                (<small>
-                                    <?php echo __('%1 incl tax.', $_price['formated_price_incl_weee']); ?>
-                                    <?php $separator = ' + '; foreach ($_weeeTaxAttributes as $_attribute): ?>
-                                        <?php echo $separator; ?>
-                                        <?php echo $_attribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_attribute->getAmount()); ?>
-                                    <?php endforeach; ?>
-                                </small>)
-                            <?php endif; ?>
-                            <?php echo __('each') ?>
-                        <?php elseif($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4)): ?>
-                            <?php echo __('Buy %1 for %2', $_price['price_qty'], $_price['formated_price_incl_weee_only']); ?>
-                            <?php if ($_weeeTaxAttributes): ?>
-                                (<small>
-                                    <?php echo __('%1 incl tax.', $_price['formated_price_incl_weee']); ?>
-                                    <?php $separator = ' + '; foreach ($_weeeTaxAttributes as $_attribute): ?>
-                                        <?php echo $separator; ?>
-                                        <?php echo $_attribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_attribute->getAmount()+$_attribute->getTaxAmount()); ?>
-                                    <?php endforeach; ?>
-                                </small>)
-                            <?php endif; ?>
-                            <?php echo __('each') ?>
-                        <?php elseif($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2)): ?>
-                            <?php echo __('Buy %1 for %2', $_price['price_qty'], $_price['formated_price']); ?>
-                            <?php if ($_weeeTaxAttributes): ?>
-                                (<small>
-                                    <?php foreach ($_weeeTaxAttributes as $_attribute): ?>
-                                        <?php echo $_attribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_attribute->getAmount()); ?>
-                                    <?php endforeach; ?>
-                                    <?php echo __('Total incl. Tax: %1', $_price['formated_price_incl_weee']); ?>
-                                </small>)
-                            <?php endif; ?>
-                            <?php echo __('each') ?>
-                        <?php else: ?>
-                            <?php echo __('Buy %1 for %2 (%3 incl. tax) each', $_price['price_qty'], $_price['formated_price'], $_price['formated_price_incl_tax']) ?>
-                        <?php endif; ?>
-                    <?php else: ?>
-                        <?php if ($this->helper('Magento\Tax\Helper\Data')->displayPriceIncludingTax()): ?>
-                            <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0)): ?>
-                                <?php echo __('Buy %1 for %2 each', $_price['price_qty'], $_price['formated_price_incl_weee']) ?>
-                            <?php elseif($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1)): ?>
-                                <?php echo __('Buy %1 for %2', $_price['price_qty'], $_price['formated_price_incl_weee']); ?>
-                                <?php if ($_weeeTaxAttributes): ?>
-                                    (<small>
-                                        <?php $separator = ''; foreach ($_weeeTaxAttributes as $_attribute): ?>
-                                            <?php echo $separator; ?>
-                                            <?php echo $_attribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_attribute->getAmount()); ?>
-                                            <?php $separator = ' + '; endforeach; ?>
-                                    </small>)
-                                <?php endif; ?>
-                                <?php echo __('each') ?>
-                            <?php elseif($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4)): ?>
-                                <?php echo __('Buy %1 for %2', $_price['price_qty'], $_price['formated_price_incl_weee']); ?>
-                                <?php if ($_weeeTaxAttributes): ?>
-                                    (<small>
-                                        <?php $separator = ''; foreach ($_weeeTaxAttributes as $_attribute): ?>
-                                            <?php echo $separator; ?>
-                                            <?php echo $_attribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_attribute->getAmount()+$_attribute->getTaxAmount()); ?>
-                                            <?php $separator = ' + '; endforeach; ?>
-                                    </small>)
-                                <?php endif; ?>
-                                <?php echo __('each') ?>
-                            <?php elseif($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2)): ?>
-                                <?php echo __('Buy %1 for %2', $_price['price_qty'], $_price['formated_price_incl_tax']); ?>
-                                <?php if ($_weeeTaxAttributes): ?>
-                                    (<small>
-                                        <?php foreach ($_weeeTaxAttributes as $_attribute): ?>
-                                            <?php echo $_attribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_attribute->getAmount()); ?>
-                                        <?php endforeach; ?>
-                                        <?php echo __('Total incl. Tax: %1', $_price['formated_price_incl_weee']); ?>
-                                    </small>)
-                                <?php endif; ?>
-                                <?php echo __('each') ?>
-                            <?php else: ?>
-                                <?php echo __('Buy %1 for %2 each', $_price['price_qty'], $_price['formated_price_incl_tax']) ?>
-                            <?php endif; ?>
-                        <?php else: ?>
-                            <?php if ($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(0)): ?>
-                                <?php echo __('Buy %1 for %2 each', $_price['price_qty'], $_price['formated_price_incl_weee_only']) ?>
-                            <?php elseif($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(1)): ?>
-                                <?php echo __('Buy %1 for %2', $_price['price_qty'], $_price['formated_price_incl_weee_only']); ?>
-                                <?php if ($_weeeTaxAttributes): ?>
-                                    (<small>
-                                        <?php $separator = ''; foreach ($_weeeTaxAttributes as $_attribute): ?>
-                                            <?php echo $separator; ?>
-                                            <?php echo $_attribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_attribute->getAmount()); ?>
-                                            <?php $separator = ' + '; endforeach; ?>
-                                    </small>)
-                                <?php endif; ?>
-                                <?php echo __('each') ?>
-                            <?php elseif($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(4)): ?>
-                                <?php echo __('Buy %1 for %2', $_price['price_qty'], $_price['formated_price_incl_weee_only']); ?>
-                                <?php if ($_weeeTaxAttributes): ?>
-                                    (<small>
-                                        <?php $separator = ''; foreach ($_weeeTaxAttributes as $_attribute): ?>
-                                            <?php echo $separator; ?>
-                                            <?php echo $_attribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_attribute->getAmount()+$_attribute->getTaxAmount()); ?>
-                                            <?php $separator = ' + '; endforeach; ?>
-                                    </small>)
-                                <?php endif; ?>
-                                <?php echo __('each') ?>
-                            <?php elseif($this->helper('Magento\Weee\Helper\Data')->typeOfDisplay(2)): ?>
-                                <?php echo __('Buy %1 for %2', $_price['price_qty'], $_price['formated_price']); ?>
-                                <?php if ($_weeeTaxAttributes): ?>
-                                    (<small>
-                                        <?php foreach ($_weeeTaxAttributes as $_attribute): ?>
-                                            <?php echo $_attribute->getName(); ?>: <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_attribute->getAmount()); ?>
-                                        <?php endforeach; ?>
-                                        <?php echo __('Total incl. Tax: %1', $_price['formated_price_incl_weee_only']); ?>
-                                    </small>)
-                                <?php endif; ?>
-                                <?php echo __('each') ?>
-                            <?php else: ?>
-                                <?php echo __('Buy %1 for %2 each', $_price['price_qty'], $_price['formated_price']) ?>
-                            <?php endif; ?>
-                        <?php endif; ?>
-                    <?php endif; ?>
-
-                <?php endif; // Can apply MSRP ?>
-
-                <?php if ($this->getShowDetailedPrice() !== false): ?>
-                    <?php if(($_product->getPrice() == $_product->getFinalPrice() && $_product->getPrice() > $_price['price'])
-                        || ($_product->getPrice() != $_product->getFinalPrice() &&  $_product->getFinalPrice() > $_price['price'])): ?>
-                        <?php echo __('and') ?>&nbsp;<strong class="benefit"><?php echo __('save')?>&nbsp;<span class="percent tier-<?php echo $_index;?>"><?php echo $_price['savePercent']?></span>%
-                    <?php endif ?></strong>
-                <?php endif; ?>
-
-        <?php if ($_catalogHelper->isShowPriceOnGesture($_product)):?>
-            <?php $popupId = 'msrp-popup-' . $_product->getId() . $this->getRandomString(20); ?>
-            <?php
-            $tierPriceData = [
-                'addToCartUrl' => $this->getProduct()->isSalable()
-                        ? $this->getAddToCartUrl($_product, array('qty' => $_price['price_qty']))
-                        : '',
-                'name' => $_product->getName(),
-                'price' => $_price['real_price_html'],
-                'msrp' => $this->helper('Magento\Core\Helper\Data')->currency($_product->getMsrp(), true, false),
-            ];
-            if ($this->getCanDisplayQty() !== false) {
-                $tierPriceData['qty'] = $_price['price_qty'];
-            }
-            ?>
-            <a href="#"
-               id="<?php echo($popupId);?>"
-               data-tier-price="<?php $this->escapeHtml(
-                   $this->helper('Magento\Core\Helper\Data')->jsonEncode($tierPriceData)
-               )?>"
-            ><?php echo __('Click for price'); ?></a>
-        <?php else: ?>
-            <span class="msrp-price-hide-message">
-                <?php echo $_catalogHelper->getMsrpPriceMessage($_product) ?>
-            </span>
-                <?php endif; ?>
-            </li>
-        <?php endforeach ?>
-    </ul>
-    <?php if ($_catalogHelper->isShowPriceOnGesture($_product)):?>
-        <script type="text/javascript">
-            (function($) {
-                head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/tier-price.js') ?>", function () {
-                    $('#product_addtocart_form').tierPrice({
-                        inputQty: '#qty'
-                    });
-                });
-            })(jQuery);
-        </script>
-    <?php endif;?>
-<?php endif;?>
diff --git a/app/code/Magento/CatalogInventory/Block/Adminhtml/Form/Field/Stock.php b/app/code/Magento/CatalogInventory/Block/Adminhtml/Form/Field/Stock.php
index c37c0e859afbca86584544a1f8e3130b86f878dd..d0a0d1f313ef528e97bcc94c4219225c6df22937 100644
--- a/app/code/Magento/CatalogInventory/Block/Adminhtml/Form/Field/Stock.php
+++ b/app/code/Magento/CatalogInventory/Block/Adminhtml/Form/Field/Stock.php
@@ -185,7 +185,7 @@ class Stock extends \Magento\Framework\Data\Form\Element\Select
     protected function _getJs($quantityFieldId, $inStockFieldId)
     {
         // @codingStandardsIgnoreStart
-        return "\n            <script>\n                jQuery(function(\$) {\n                    var qty = \$('#{$quantityFieldId}'),\n                        productType = \$('#product_type_id').val(),\n                        stockAvailabilityField = \$('#{$inStockFieldId}'),\n                        manageStockField = \$('#inventory_manage_stock'),\n                        useConfigManageStockField = \$('#inventory_use_config_manage_stock');\n\n                    var disabler = function(event) {\n                        var stockBeforeDisable = \$.Event('stockbeforedisable', {productType: productType});\n                        \$('#product_info_tabs_product-details_content').trigger(stockBeforeDisable);\n                        if (stockBeforeDisable.result !== false) {\n                            var manageStockValue = (qty.val() === '') ? 0 : 1;\n                            stockAvailabilityField.prop('disabled', !manageStockValue);\n                            if (manageStockField.val() != manageStockValue && !(event && event.type == 'keyup')) {\n                                if (useConfigManageStockField.val() == 1) {\n                                    useConfigManageStockField.removeAttr('checked').val(0);\n                                }\n                                manageStockField.toggleClass('disabled', false).prop('disabled', false);\n                                manageStockField.val(manageStockValue);\n                            }\n                        }\n                    };\n\n                    //Associated fields\n                    var fieldsAssociations = {\n                        '{$quantityFieldId}' : 'inventory_qty',\n                        '{$inStockFieldId}'  : 'inventory_stock_availability'\n                    };\n                    //Fill corresponding field\n                    var filler = function() {\n                        var id = \$(this).attr('id');\n                        if ('undefined' !== typeof fieldsAssociations[id]) {\n                            \$('#' + fieldsAssociations[id]).val(\$(this).val());\n                        } else {\n                            \$('#' + getKeyByValue(fieldsAssociations, id)).val(\$(this).val());\n                        }\n\n                        if (\$('#inventory_manage_stock').length) {\n                            fireEvent(\$('#inventory_manage_stock').get(0), 'change');\n                        }\n                    };\n                    //Get key by value from object\n                    var getKeyByValue = function(object, value) {\n                        var returnVal = false;\n                        \$.each(object, function(objKey, objValue){\n                            if (value === objValue) {\n                                returnVal = objKey;\n                            }\n                        });\n                        return returnVal;\n                    };\n                    \$.each(fieldsAssociations, function(generalTabField, advancedTabField) {\n                        \$('#' + generalTabField + ', #' + advancedTabField)\n                            .bind('focus blur change keyup click', filler)\n                            .bind('keyup change blur', disabler);\n                        filler.call(\$('#' + generalTabField));\n                        filler.call(\$('#' + advancedTabField));\n                    });\n                    disabler();\n                });\n            </script>\n        ";
+        return "\n            <script>\n                jQuery(function(\$) {\n                    var qty = \$('#{$quantityFieldId}'),\n                        productType = \$('#product_type_id').val(),\n                        stockAvailabilityField = \$('#{$inStockFieldId}'),\n                        manageStockField = \$('#inventory_manage_stock'),\n                        useConfigManageStockField = \$('#inventory_use_config_manage_stock');\n\n                    var disabler = function(event) {\n                        var stockBeforeDisable = \$.Event('stockbeforedisable', {productType: productType});\n                        \$('[data-tab-panel=product-details]').trigger(stockBeforeDisable);\n                        if (stockBeforeDisable.result !== false) {\n                            var manageStockValue = (qty.val() === '') ? 0 : 1;\n                            stockAvailabilityField.prop('disabled', !manageStockValue);\n                            if (manageStockField.val() != manageStockValue && !(event && event.type == 'keyup')) {\n                                if (useConfigManageStockField.val() == 1) {\n                                    useConfigManageStockField.removeAttr('checked').val(0);\n                                }\n                                manageStockField.toggleClass('disabled', false).prop('disabled', false);\n                                manageStockField.val(manageStockValue);\n                            }\n                        }\n                    };\n\n                    //Associated fields\n                    var fieldsAssociations = {\n                        '{$quantityFieldId}' : 'inventory_qty',\n                        '{$inStockFieldId}'  : 'inventory_stock_availability'\n                    };\n                    //Fill corresponding field\n                    var filler = function() {\n                        var id = \$(this).attr('id');\n                        if ('undefined' !== typeof fieldsAssociations[id]) {\n                            \$('#' + fieldsAssociations[id]).val(\$(this).val());\n                        } else {\n                            \$('#' + getKeyByValue(fieldsAssociations, id)).val(\$(this).val());\n                        }\n\n                        if (\$('#inventory_manage_stock').length) {\n                            fireEvent(\$('#inventory_manage_stock').get(0), 'change');\n                        }\n                    };\n                    //Get key by value from object\n                    var getKeyByValue = function(object, value) {\n                        var returnVal = false;\n                        \$.each(object, function(objKey, objValue){\n                            if (value === objValue) {\n                                returnVal = objKey;\n                            }\n                        });\n                        return returnVal;\n                    };\n                    \$.each(fieldsAssociations, function(generalTabField, advancedTabField) {\n                        \$('#' + generalTabField + ', #' + advancedTabField)\n                            .bind('focus blur change keyup click', filler)\n                            .bind('keyup change blur', disabler);\n                        filler.call(\$('#' + generalTabField));\n                        filler.call(\$('#' + advancedTabField));\n                    });\n                    disabler();\n                });\n            </script>\n        ";
         // @codingStandardsIgnoreEnd
     }
 }
diff --git a/app/code/Magento/CatalogRule/Pricing/Price/CatalogRulePrice.php b/app/code/Magento/CatalogRule/Pricing/Price/CatalogRulePrice.php
index 5402467cb76b50b642335c97a91cc8e4254338a9..c59622234766661dec574f24195be29eaa2f13ee 100644
--- a/app/code/Magento/CatalogRule/Pricing/Price/CatalogRulePrice.php
+++ b/app/code/Magento/CatalogRule/Pricing/Price/CatalogRulePrice.php
@@ -26,9 +26,9 @@
 
 namespace Magento\CatalogRule\Pricing\Price;
 
-use Magento\Catalog\Pricing\Price\RegularPrice;
+use Magento\Framework\Pricing\Price\AbstractPrice;
 use Magento\Framework\Pricing\Adjustment\Calculator;
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Catalog\Model\Product;
 use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
 use Magento\Store\Model\StoreManager;
 use Magento\Customer\Model\Session;
@@ -37,17 +37,12 @@ use Magento\CatalogRule\Model\Resource\RuleFactory;
 /**
  * Class CatalogRulePrice
  */
-class CatalogRulePrice extends RegularPrice
+class CatalogRulePrice extends AbstractPrice
 {
     /**
      * Price type identifier string
      */
-    const PRICE_TYPE = 'catalog_rule_price';
-
-    /**
-     * @var string
-     */
-    protected $priceType = self::PRICE_TYPE;
+    const PRICE_CODE = 'catalog_rule_price';
 
     /**
      * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
@@ -70,7 +65,7 @@ class CatalogRulePrice extends RegularPrice
     protected $resourceRuleFactory;
 
     /**
-     * @param SaleableInterface $salableItem
+     * @param Product $saleableItem
      * @param float $quantity
      * @param Calculator $calculator
      * @param TimezoneInterface $dateTime
@@ -79,7 +74,7 @@ class CatalogRulePrice extends RegularPrice
      * @param RuleFactory $catalogRuleResourceFactory
      */
     public function __construct(
-        SaleableInterface $salableItem,
+        Product $saleableItem,
         $quantity,
         Calculator $calculator,
         TimezoneInterface $dateTime,
@@ -87,7 +82,7 @@ class CatalogRulePrice extends RegularPrice
         Session $customerSession,
         RuleFactory $catalogRuleResourceFactory
     ) {
-        parent::__construct($salableItem, $quantity, $calculator);
+        parent::__construct($saleableItem, $quantity, $calculator);
         $this->dateTime = $dateTime;
         $this->storeManager = $storeManager;
         $this->customerSession = $customerSession;
@@ -107,7 +102,7 @@ class CatalogRulePrice extends RegularPrice
                     $this->dateTime->scopeTimeStamp($this->storeManager->getStore()->getId()),
                     $this->storeManager->getStore()->getWebsiteId(),
                     $this->customerSession->getCustomerGroupId(),
-                    $this->salableItem->getId()
+                    $this->product->getId()
                 );
             $this->value = $this->value ? floatval($this->value) : false;
         }
diff --git a/app/code/Magento/CatalogRule/etc/di.xml b/app/code/Magento/CatalogRule/etc/di.xml
index 3f2ccf312d11f23d1018727fafb0052feed1a589..8f8e328c3f44a0bac75d53ca6187e1d3c3378803 100644
--- a/app/code/Magento/CatalogRule/etc/di.xml
+++ b/app/code/Magento/CatalogRule/etc/di.xml
@@ -51,14 +51,13 @@
             </argument>
         </arguments>
     </type>
-    <type name="Magento\Framework\Pricing\PriceComposite">
+
+    <virtualType name="Magento\Catalog\Pricing\Price\Pool" type="Magento\Framework\Pricing\Price\Pool">
         <arguments>
-            <argument name="metadata" xsi:type="array">
-                <item name="catalog_rule_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\CatalogRule\Pricing\Price\CatalogRulePrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">true</item>
-                </item>
+            <argument name="prices" xsi:type="array">
+                <item name="catalog_rule_price" xsi:type="string">Magento\CatalogRule\Pricing\Price\CatalogRulePrice</item>
             </argument>
         </arguments>
-    </type>
+    </virtualType>
+
 </config>
diff --git a/app/code/Magento/CatalogSearch/view/frontend/advanced/form.phtml b/app/code/Magento/CatalogSearch/view/frontend/advanced/form.phtml
index 723d68d43d725f7a73fa03ba9a8052b4d56bab66..7e9961976ea8464912a376315b10bdcfe7b6fa53 100644
--- a/app/code/Magento/CatalogSearch/view/frontend/advanced/form.phtml
+++ b/app/code/Magento/CatalogSearch/view/frontend/advanced/form.phtml
@@ -149,27 +149,20 @@
 <script type="text/javascript">
     //<![CDATA[
     (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-            function() {
-                $('#form-validate').validation({
-                    errorPlacement: function (error, element) {
-                        var parent = element.parent();
-                        if (parent.hasClass('range')) {
-                            parent.find(this.errorElement + '.' + this.errorClass).remove().end().append(error);
-                        } else {
-                            error.insertAfter(element);
-                        }
-                    },
-                    messages: {
-                        'price[to]': {'greater-than-equals-to': 'Please enter a valid price range.'},
-                        'price[from]': {'less-than-equals-to': 'Please enter a valid price range.'}
-                    }
-                });
-            });
+        $('#form-validate').mage('validation', {
+            errorPlacement: function (error, element) {
+                var parent = element.parent();
+                if (parent.hasClass('range')) {
+                    parent.find(this.errorElement + '.' + this.errorClass).remove().end().append(error);
+                } else {
+                    error.insertAfter(element);
+                }
+            },
+            messages: {
+                'price[to]': {'greater-than-equals-to': 'Please enter a valid price range.'},
+                'price[from]': {'less-than-equals-to': 'Please enter a valid price range.'}
+            }
+        });
     })(jQuery);
     //]]>
 </script>
diff --git a/app/code/Magento/CatalogSearch/view/frontend/form.mini.phtml b/app/code/Magento/CatalogSearch/view/frontend/form.mini.phtml
index 105c679460b5ed2e99bf899b3b4ca974872fb6a7..9079ef2bcdbcabe4a9722268a000a8a200407590 100644
--- a/app/code/Magento/CatalogSearch/view/frontend/form.mini.phtml
+++ b/app/code/Magento/CatalogSearch/view/frontend/form.mini.phtml
@@ -35,6 +35,11 @@ $helper = $this->helper('Magento\CatalogSearch\Helper\Data');
                 <label class="label" for="search"><span><?php echo __('Search'); ?></span></label>
                 <div class="control">
                     <input id="search"
+                           data-mage-init='{"catalogSearch":{
+                                "formSelector":"#search_mini_form",
+                                "url":"<?php echo $helper->getSuggestUrl() ?>",
+                                "destinationSelector":"#search_autocomplete"}
+                           }'
                            type="text"
                            name="<?php echo $helper->getQueryParamName() ?>"
                            value="<?php echo $helper->getEscapedQueryText() ?>"
@@ -56,20 +61,6 @@ $helper = $this->helper('Magento\CatalogSearch\Helper\Data');
                     <span><?php echo __('Search'); ?></span>
                 </button>
             </div>
-            <script type="text/javascript">
-            //<![CDATA[
-            (function($) {
-                head.js("<?php echo $this->getViewFileUrl('jquery/handlebars/handlebars-v1.3.0.js')?>");
-                head.js("<?php echo $this->getViewFileUrl('Magento_CatalogSearch::form-mini.js')?>", function() {
-                    $('#search').catalogSearch({
-                        formSelector: '#search_mini_form',
-                        url: '<?php echo $helper->getSuggestUrl() ?>',
-                        destinationSelector: '#search_autocomplete'
-                    });
-                });
-            })(jQuery);
-            //]]>
-            </script>
         </form>
     </div>
 </div>
diff --git a/app/code/Magento/Checkout/Block/Cart/Crosssell.php b/app/code/Magento/Checkout/Block/Cart/Crosssell.php
index 83d47f857f399f2dfc81c544640897514915c13a..e5331dd89e12a44ed3a4a66b3f2ce0682002c7ee 100644
--- a/app/code/Magento/Checkout/Block/Cart/Crosssell.php
+++ b/app/code/Magento/Checkout/Block/Cart/Crosssell.php
@@ -74,7 +74,8 @@ class Crosssell extends \Magento\Catalog\Block\Product\AbstractProduct
      * @param \Magento\Catalog\Model\Product\LinkFactory $productLinkFactory
      * @param \Magento\Sales\Model\Quote\Item\RelatedProducts $itemRelationsList
      * @param array $data
-     * @param array $priceBlockTypes
+     * 
+     * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
@@ -83,8 +84,7 @@ class Crosssell extends \Magento\Catalog\Block\Product\AbstractProduct
         \Magento\CatalogInventory\Model\Stock $stock,
         \Magento\Catalog\Model\Product\LinkFactory $productLinkFactory,
         \Magento\Sales\Model\Quote\Item\RelatedProducts $itemRelationsList,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_checkoutSession = $checkoutSession;
         $this->_productVisibility = $productVisibility;
@@ -93,8 +93,7 @@ class Crosssell extends \Magento\Catalog\Block\Product\AbstractProduct
         $this->_itemRelationsList = $itemRelationsList;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
         $this->_isScopePrivate = true;
     }
diff --git a/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php b/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php
index 176af19625fce0bfdc4689c12d9bf2b9b0d839d8..b879de34b9ee38e8a42426b04e9888e0ab345686 100644
--- a/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php
+++ b/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php
@@ -26,6 +26,7 @@
 namespace Magento\Checkout\Block\Cart\Item;
 
 use Magento\Sales\Model\Quote\Item;
+use Magento\Catalog\Pricing\Price\ConfiguredPriceInterface;
 
 /**
  * Shopping cart item render block
@@ -454,23 +455,6 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage
         return $this->getLayout()->getBlock('additional.product.info');
     }
 
-    /**
-     * Get html for MAP product enabled
-     *
-     * @param Item $item
-     * @return string
-     */
-    public function getMsrpHtml($item)
-    {
-        return $this->getLayout()->createBlock(
-            'Magento\Catalog\Block\Product\Price'
-        )->setTemplate(
-            'product/price_msrp_item.phtml'
-        )->setProduct(
-            $item->getProduct()
-        )->toHtml();
-    }
-
     /**
      * Set qty mode to be strict or not
      *
@@ -507,4 +491,39 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage
         }
         return array();
     }
+
+    /**
+     * Get product price formatted with html (final price, special price, mrp price)
+     *
+     * @param \Magento\Catalog\Model\Product $product
+     * @return string
+     */
+    public function getProductPriceHtml(\Magento\Catalog\Model\Product $product)
+    {
+        $priceRender = $this->getPriceRender();
+        $priceRender->setItem($this->getItem());
+
+        $price = '';
+        if ($priceRender) {
+            $price = $priceRender->render(
+                ConfiguredPriceInterface::CONFIGURED_PRICE_CODE,
+                $product,
+                [
+                    'include_container' => true,
+                    'display_minimal_price' => true,
+                    'zone' => \Magento\Framework\Pricing\Render::ZONE_ITEM_LIST
+                ]
+            );
+        }
+
+        return $price;
+    }
+
+    /**
+     * @return \Magento\Framework\Pricing\Render
+     */
+    protected function getPriceRender()
+    {
+        return $this->getLayout()->getBlock('product.price.render.default');
+    }
 }
diff --git a/app/code/Magento/Checkout/view/frontend/cart/coupon.phtml b/app/code/Magento/Checkout/view/frontend/cart/coupon.phtml
index 624011ec06b0cd29e7e13ecc0db7cda7743c4cb9..9142a9bd9328f9272c348f5f0b87747a2c67a126 100644
--- a/app/code/Magento/Checkout/view/frontend/cart/coupon.phtml
+++ b/app/code/Magento/Checkout/view/frontend/cart/coupon.phtml
@@ -26,7 +26,13 @@
 <div class="block discount">
     <div class="title"><strong><?php echo __('Discount Codes') ?></strong></div>
     <div class="content">
-        <form id="discount-coupon-form" action="<?php echo $this->getUrl('checkout/cart/couponPost') ?>" method="post">
+        <form id="discount-coupon-form"
+              action="<?php echo $this->getUrl('checkout/cart/couponPost') ?>"
+              method="post"
+              data-mage-init='{"discountCode":{"couponCodeSelector": "#coupon_code",
+                                               "removeCouponSelector": "#remove-coupon",
+                                               "applyButton": "button.action.apply",
+                                               "cancelButton": "button.action.cancel"}}'>
             <fieldset class="fieldset coupon<?php strlen($this->getCouponCode()) ? ' applied' : ''?>">
                 <input type="hidden" name="remove" id="remove-coupon" value="0" />
                 <div class="field">
@@ -50,21 +56,5 @@
                 </div>
             </fieldset>
         </form>
-    <script type="text/javascript">
-    //<![CDATA[
-    (function($) {
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('Magento_Checkout::js/discount-codes.js')?>", function() {
-                $('#discount-coupon-form').discountCode({
-                    couponCodeSelector: '#coupon_code', removeCouponSelector: '#remove-coupon',
-                    applyButton: 'button.action.apply', cancelButton: 'button.action.cancel'
-                });
-            });
-    })(jQuery);
-    //]]>
-    </script>
     </div>
 </div>
diff --git a/app/code/Magento/Checkout/view/frontend/cart/form.phtml b/app/code/Magento/Checkout/view/frontend/cart/form.phtml
index 354ce6342594a30725543f331f7766be39ee93cd..20615ea4ab8ca96137efbff9a34b2265076d9112 100644
--- a/app/code/Magento/Checkout/view/frontend/cart/form.phtml
+++ b/app/code/Magento/Checkout/view/frontend/cart/form.phtml
@@ -27,9 +27,15 @@
 <?php $mergedCells = ($this->helper('Magento\Tax\Helper\Data')->displayCartBothPrices() ? 2 : 1); ?>
 <div class="cart table wrapper<?php echo $mergedCells == 2 ? ' detailed' : ''; ?>">
     <?php echo $this->getChildHtml('form_before') ?>
-    <form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post" id="form-validate" >
+    <form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>"
+          method="post"
+          id="form-validate"
+          data-mage-init='{"validation":{}}'>
         <?php echo $this->getBlockHtml('formkey'); ?>
-        <table id="shopping-cart-table" class="cart items data">
+        <table id="shopping-cart-table"
+               class="cart items data"
+               data-mage-init='{"shoppingCart":{"emptyCartButton": "action.clear",
+                                                "updateCartActionContainer": "#update_cart_action_container"}}'>
             <caption><?php echo __('Shopping Cart Items') ?></caption>
             <thead>
                 <tr>
@@ -66,37 +72,14 @@
             <!--[if lt IE 8]>
             <input type="hidden" value="" id="update_cart_action_container" />
             <![endif]-->
-            <script type="text/javascript">
-                //<![CDATA[
-                (function($) {
-                    head.js("<?php echo $this->getViewFileUrl('Magento_Checkout::js/shopping-cart.js')?>",
-                        function() {
-                            // Internet Explorer (lt 8) does not support value attribute in button elements
-                            $('#shopping-cart-table').shoppingCart({
-                                emptyCartButton: 'action.clear',
-                                updateCartActionContainer: '#update_cart_action_container'
-                            });
-                        });
-                })(jQuery);
-                //]]>
-            </script>
         </div>
     </form>
     <?php echo $this->getChildHtml('shopping.cart.table.after'); ?>
     <script type="text/javascript">
         (function($) {
-            head.js(
-                "<?php echo $this->getViewFileUrl('mage/sticky.js') ?>",
-                "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-                "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-                "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-                function() {
-                    $('#form-validate').validation();
-                    $('.cart.summary').sticky({
-                        container: '.cart.container'
-                });
-                });
+            $('.cart.summary').mage('sticky', {
+                container: '.cart.container'
+            });
         })(jQuery)
     </script>
 </div>
diff --git a/app/code/Magento/Checkout/view/frontend/cart/item/configure/updatecart.phtml b/app/code/Magento/Checkout/view/frontend/cart/item/configure/updatecart.phtml
index 04d39084cbbf14a15dedd8d4cffcb03afdb69694..d52b6765340dea426cf08148f99815960cafa8d8 100644
--- a/app/code/Magento/Checkout/view/frontend/cart/item/configure/updatecart.phtml
+++ b/app/code/Magento/Checkout/view/frontend/cart/item/configure/updatecart.phtml
@@ -45,16 +45,12 @@
 
     <script type="text/javascript">
         (function ($) {
-            head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-                "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-                "<?php echo $this->getViewFileUrl('Magento_Catalog::js/msrp.js') ?>", function () {
-                    $('#product_addtocart_form').addToCart({
-                        cartButtonId: "#product-updatecart-button",
-                        cartForm: "#product_addtocart_form"
-                    }).validation();
-                });
+            var addtocartForm = $('#product_addtocart_form');
+            addtocartForm.mage('validation');
+            addtocartForm.mage('addToCart', {
+                cartButtonId: "#product-updatecart-button",
+                cartForm: "#product_addtocart_form"
+            });
         })(jQuery);
     </script>
 <?php endif; ?>
diff --git a/app/code/Magento/Checkout/view/frontend/cart/item/default.phtml b/app/code/Magento/Checkout/view/frontend/cart/item/default.phtml
index 1139cd4e9530752feed73e99497e4f5bea6336ca..195c892d7a2286983161d4d3f2fba011c7b07ad1 100644
--- a/app/code/Magento/Checkout/view/frontend/cart/item/default.phtml
+++ b/app/code/Magento/Checkout/view/frontend/cart/item/default.phtml
@@ -82,22 +82,16 @@ $canApplyMsrp = $this->helper('Magento\Catalog\Helper\Data')->canApplyMsrp($_ite
             <span class="pricing msrp">
                 <span class="msrp notice"><?php echo __('See price before order confirmation.'); ?></span>
                 <?php $helpLinkId = 'cart-msrp-help-' . $_item->getId(); ?>
-                <a id="<?php echo $helpLinkId ?>" href="#" class="action help map"><span><?php echo __("What's this?"); ?></span></a>
                 <?php $_product = $_item->getProduct(); ?>
-                <script type="text/javascript">
-                    (function ($) {
-                        head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/msrp.js') ?>", function () {
-                            $('#<?php echo $helpLinkId ?>').addToCart({
-                                popupId: "#<?php echo $helpLinkId ?>",
-                                productName: '<?php echo $_product->getName() ?>',
-                                realPrice: '<?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($_item->getCalculationPrice()) ?>',
-                                msrpPrice: '<?php echo $this->helper('Magento\Core\Helper\Data')->currency($_product->getMsrp(),true,true) ?>',
-                                closeButtonId: '#map-popup-close',
-                                showAddToCart: false
-                            });
-                        });
-                    })(jQuery);
-                </script>
+                <a href="#"
+                   class="action help map"
+                   id="<?php echo($helpLinkId);?>"
+                   data-mage-init='{"addToCart":{"popupId": "#<?php echo($helpLinkId);?>",
+                                                 "productName": "<?php echo $_product->getName() ?>",
+                                                 "realPrice": "<?php echo $this->helper('Magento\Checkout\Helper\Data')->formatPrice($_item->getCalculationPrice()) ?>",
+                                                 "msrpPrice": "<?php echo $this->helper('Magento\Core\Helper\Data')->currency($_product->getMsrp(),true,true) ?>",
+                                                 "showAddToCart": false}}'><span><?php echo __("What's this?"); ?></span>
+                </a>
             </span>
             <?php $cols++; ?>
         </td>
diff --git a/app/code/Magento/Checkout/view/frontend/cart/minicart.phtml b/app/code/Magento/Checkout/view/frontend/cart/minicart.phtml
index 52c0f599e4774e1bb26a82048086ea769849a825..de73c20e6d445ab9bf219fab42551b9f4dadc202 100644
--- a/app/code/Magento/Checkout/view/frontend/cart/minicart.phtml
+++ b/app/code/Magento/Checkout/view/frontend/cart/minicart.phtml
@@ -113,14 +113,12 @@
 <?php endif; ?>
 <script type="text/javascript">
     (function($) {
-        head.js("<?php echo $this->getViewFileUrl('Magento_Checkout::js/sidebar.js') ?>", function() {
-                $('[data-block="minicart"]').sidebar({
-                    checkoutUrl: '<?php echo $this->getCheckoutUrl();?>',
-                    checkoutButton: '#top-cart-btn-checkout',
-                    removeButton: '#mini-cart a.action.delete',
-                    confirmMessage: '<?php echo __('Are you sure you would like to remove this item from the shopping cart?') ?>'
-                });
-            });
+        $('[data-block="minicart"]').mage('sidebar', {
+            checkoutUrl: '<?php echo $this->getCheckoutUrl();?>',
+            checkoutButton: '#top-cart-btn-checkout',
+            removeButton: '#mini-cart a.action.delete',
+            confirmMessage: '<?php echo __('Are you sure you would like to remove this item from the shopping cart?') ?>'
+        });
     })(jQuery);
 </script>
 <?php if ($this->getInList()): ?>
diff --git a/app/code/Magento/Checkout/view/frontend/cart/shipping.phtml b/app/code/Magento/Checkout/view/frontend/cart/shipping.phtml
index c55aab2cde491d46e5ca07c577b2d69c96cbf226..41d28883d1fc72f50a3cc26ca6ccbac0b3caae8e 100644
--- a/app/code/Magento/Checkout/view/frontend/cart/shipping.phtml
+++ b/app/code/Magento/Checkout/view/frontend/cart/shipping.phtml
@@ -70,24 +70,18 @@
     </form>
     <script type="text/javascript">
         (function($) {
-            head.js(
-                "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-                "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-                "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-                "<?php echo $this->getViewFileUrl('Magento_Checkout::js/region-updater.js') ?>",
-                function() {
-                    $('#country').regionUpdater({
-                        optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
-                        regionListId: '#region_id',
-                        regionInputId: '#region',
-                        postcodeId: '#postcode',
-                        form: $('#shipping-zip-form').validation(),
-                        regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
-                        defaultRegion: "<?php echo $this->getEstimateRegionId() ?>",
-                        countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
-                    });
-                });
+            var $form = $('#shipping-zip-form');
+            $form.mage('validation');
+            $('#country').mage('regionUpdater', {
+                optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
+                regionListId: '#region_id',
+                regionInputId: '#region',
+                postcodeId: '#postcode',
+                form: $form,
+                regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
+                defaultRegion: "<?php echo $this->getEstimateRegionId() ?>",
+                countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
+            });
         })(jQuery);
     </script>
     <?php if (($_shippingRateGroups = $this->getEstimateRates())): ?>
diff --git a/app/code/Magento/Checkout/view/frontend/js/components.phtml b/app/code/Magento/Checkout/view/frontend/js/components.phtml
index 107b5ea704200324a23e877e96732d7d15b13b26..9ab2c068b32a23bbc88d775fd84f993fc659cb07 100644
--- a/app/code/Magento/Checkout/view/frontend/js/components.phtml
+++ b/app/code/Magento/Checkout/view/frontend/js/components.phtml
@@ -36,8 +36,39 @@
             ],
             dropdownDialog: [
                 '<?php echo $this->getViewFileUrl('mage/dropdown.js') ?>'
+            ],
+            addToCart: [
+                '<?php echo $this->getViewFileUrl('Magento_Catalog::js/msrp.js') ?>'
+            ],
+            checkoutBalance: [
+                '<?php echo $this->getViewFileUrl('Magento_Customer::js/checkout-balance.js')?>'
+            ],
+            shoppingCart: [
+                '<?php echo $this->getViewFileUrl('Magento_Checkout::js/shopping-cart.js') ?>'
+            ],
+            regionUpdater: [
+                '<?php echo $this->getViewFileUrl('Magento_Checkout::js/region-updater.js') ?>'
+            ],
+            creditCardType: [
+                '<?php echo $this->getViewFileUrl('Magento_Payment::cc-type.js') ?>'
+            ],
+            opcheckout: [
+                '<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>',
+                '<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>',
+                '<?php echo $this->getViewFileUrl('mage/validation.js')?>',
+                '<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>',
+                '<?php echo $this->getViewFileUrl('Magento_Checkout::js/opcheckout.js') ?>'
+            ],
+            accordion: [
+                '<?php echo $this->getViewFileUrl('Magento_Checkout::js/accordion.js') ?>'
+            ],
+            sidebar: [
+                '<?php echo $this->getViewFileUrl('Magento_Checkout::js/sidebar.js') ?>'
+            ],
+            payment: [
+                '<?php echo $this->getViewFileUrl('Magento_Checkout::js/payment.js') ?>'
             ]
         });
     })(jQuery);
 </script>
-<?php echo $this->getChildHtml() ?>
\ No newline at end of file
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure.xml
index ad6af5571d9ada13253cc24510c74a3b2f702aa9..c8c43a8b1222ca3be2689186a6b5d93754b5bc42 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure.xml
@@ -25,6 +25,9 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <update handle="catalog_product_view"/>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="checkout_cart_configure_head_components" template="Magento_Checkout::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="product.info">
         <block class="Magento\Checkout\Block\Cart\Item\Configure" name="checkout.cart.item.configure.block"/>
     </referenceBlock>
diff --git a/app/code/Magento/Checkout/view/frontend/onepage.phtml b/app/code/Magento/Checkout/view/frontend/onepage.phtml
index de7cbe0c5d8c77cc4f90cee3d7f1c3294915d147..65218676f368cda26d791e5b19535b90a480c9d3 100644
--- a/app/code/Magento/Checkout/view/frontend/onepage.phtml
+++ b/app/code/Magento/Checkout/view/frontend/onepage.phtml
@@ -43,26 +43,15 @@ $_paymentBlock = $this->getLayout()->getBlock('checkout.onepage.payment');
     </ol>
     <script type="text/javascript">
         (function($) {
-            head.js(
-                "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-                "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-                "<?php echo $this->getViewFileUrl('Magento_Checkout::js/opcheckout.js') ?>",
-                "<?php echo $this->getViewFileUrl('Magento_Checkout::js/accordion.js') ?>",
-                function() {
-                    $('#checkoutSteps')
-                        .accordion({
-                            activeSelector: '#opc-<?php echo $this->getActiveStep() ?>'
-                        })
-                        .opcheckout($.extend({
-                            checkoutAgreements: '#checkout-agreements',
-                            checkoutProgressContainer: '#checkout-progress-wrapper',
-                            methodDescription: '.items'
-                            },
-                            <?php echo $this->helper('Magento\Core\Helper\Data')->jsonEncode($_paymentBlock->getOptions()); ?>
-                        ));
-                });
+            $('#checkoutSteps').mage('accordion', {
+                'activeSelector': '#opc-<?php echo $this->getActiveStep() ?>'
+            }).mage('opcheckout', $.extend({
+                'checkoutAgreements': '#checkout-agreements',
+                'checkoutProgressContainer': '#checkout-progress-wrapper',
+                'methodDescription': '.items'
+                },
+                <?php echo $this->helper('Magento\Core\Helper\Data')->jsonEncode($_paymentBlock->getOptions()); ?>
+            ));
         })(jQuery);
     </script>
 </div>
diff --git a/app/code/Magento/Checkout/view/frontend/onepage/billing.phtml b/app/code/Magento/Checkout/view/frontend/onepage/billing.phtml
index d50869f77e0df294708cefcae4ab565e2552c3d9..e644c024ac2e7fe1d8877267c7499e6d573402c1 100644
--- a/app/code/Magento/Checkout/view/frontend/onepage/billing.phtml
+++ b/app/code/Magento/Checkout/view/frontend/onepage/billing.phtml
@@ -207,18 +207,14 @@
 </form>
 <script type="text/javascript">
     (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('Magento_Checkout::js/region-updater.js') ?>",
-            function() {
-                $('#billing\\:country_id').regionUpdater({
-                    optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
-                    regionListId: '#billing\\:region_id',
-                    regionInputId: '#billing\\:region',
-                    postcodeId: '#billing\\:postcode',
-                    regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
-                    defaultRegion: "<?php echo $this->getAddress()->getRegionId() ?>",
-                    countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
-                });
-            });
+        $('#billing\\:country_id').mage('regionUpdater', {
+            optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
+            regionListId: '#billing\\\:region_id',
+            regionInputId: '#billing\\\:region',
+            postcodeId: '#billing\\\:postcode',
+            regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
+            defaultRegion: "<?php echo $this->getAddress()->getRegionId() ?>",
+            countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
+        });
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Checkout/view/frontend/onepage/login.phtml b/app/code/Magento/Checkout/view/frontend/onepage/login.phtml
index a1ff77c178d190ce47fee2774a5b98e483c2b498..5bc276ca4f445232088bd6bd52c317735d236ae4 100644
--- a/app/code/Magento/Checkout/view/frontend/onepage/login.phtml
+++ b/app/code/Magento/Checkout/view/frontend/onepage/login.phtml
@@ -35,7 +35,11 @@
 <div class="block customer login">
     <div class="title"><strong><?php echo __('Login') ?></strong></div>
     <div class="content">
-        <form class="form login" id="login-form" action="<?php echo $this->getPostAction() ?>" method="post">
+        <form class="form login"
+              id="login-form"
+              action="<?php echo $this->getPostAction() ?>"
+              method="post"
+              data-mage-init='{"validation":{}}'>
             <?php echo $this->getBlockHtml('formkey'); ?>
             <fieldset class="fieldset login" data-hasrequired="<?php echo __('* Required Fields') ?>">
                 <p class="field note"><?php echo __('Already registered?') ?> <?php echo __('Please log in below:') ?></p>
@@ -66,18 +70,6 @@
             </fieldset>
         </form>
     </div>
-    <script type="text/javascript">
-        (function($) {
-            head.js(
-                "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-                "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-                "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-                function() {
-                    $('#login-form').validation();
-                });
-        })(jQuery);
-    </script>
 </div>
 <?php if ( $this->isAllowedGuestCheckout() || $this->helper('Magento\Customer\Helper\Data')->isRegistrationAllowed() ): ?>
 <div class="block guest">
@@ -139,16 +131,3 @@
 </div>
 <?php endif; ?>
 </div>
-<script type="text/javascript">
-    (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-            function() {
-                $('#login-form').validation();
-            }
-        )}
-    )(jQuery);
-</script>
diff --git a/app/code/Magento/Checkout/view/frontend/onepage/shipping.phtml b/app/code/Magento/Checkout/view/frontend/onepage/shipping.phtml
index 9c0fa6fd2be199c87850cfe77511b405a2a05d0b..a078a53ab9bcc88576686ec030812691475029b8 100644
--- a/app/code/Magento/Checkout/view/frontend/onepage/shipping.phtml
+++ b/app/code/Magento/Checkout/view/frontend/onepage/shipping.phtml
@@ -129,18 +129,14 @@
 </form>
 <script type="text/javascript">
     (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('Magento_Checkout::js/region-updater.js') ?>",
-            function() {
-                $('#shipping\\:country_id').regionUpdater({
-                    optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
-                    regionListId: '#shipping\\:region_id',
-                    regionInputId: '#shipping\\:region',
-                    postcodeId: '#shipping\\:postcode',
-                    regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
-                    defaultRegion: "<?php echo $this->getAddress()->getRegionId() ?>",
-                    countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
-                });
-            });
+        $('#shipping\\:country_id').mage('regionUpdater', {
+            optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
+            regionListId: '#shipping\\\:region_id',
+            regionInputId: '#shipping\\\:region',
+            postcodeId: '#shipping\\\:postcode',
+            regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
+            defaultRegion: "<?php echo $this->getAddress()->getRegionId() ?>",
+            countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
+        });
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Cms/data/cms_setup/data-install-1.6.0.0.php b/app/code/Magento/Cms/data/cms_setup/data-install-1.6.0.0.php
index 82b65aef5137df0fd93dbb371991436ce3e8ed22..539a5adc9d92be0dfa172710ee589cd2064cd721 100644
--- a/app/code/Magento/Cms/data/cms_setup/data-install-1.6.0.0.php
+++ b/app/code/Magento/Cms/data/cms_setup/data-install-1.6.0.0.php
@@ -63,7 +63,7 @@ $cmsPages = array(
         'root_template' => 'two_columns_right',
         'identifier' => 'about-magento-demo-store',
         'content_heading' => 'About Magento Store',
-        'content' => "<div class=\"col3-set\">\r\n<div class=\"col-1\"><p><a href=\"http://www.magento.com/\"><img src=\"{{view url='Magento_Cms::images/about_us_img.jpg'}}\" title=\"Varien\" alt=\"Varien\" /></a></p><p style=\"line-height:1.2em;\"><small>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede.</small></p>\r\n<p style=\"color:#888; font:1.2em/1.4em georgia, serif;\">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta.</p></div>\r\n<div class=\"col-2\">\r\n<p><strong style=\"color:#de036f;\">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit.</strong></p>\r\n<p>Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo. </p>\r\n<p>Maecenas ullamcorper, odio vel tempus egestas, dui orci faucibus orci, sit amet aliquet lectus dolor et quam. Pellentesque consequat luctus purus. Nunc et risus. Etiam a nibh. Phasellus dignissim metus eget nisi. Vestibulum sapien dolor, aliquet nec, porta ac, malesuada a, libero. Praesent feugiat purus eget est. Nulla facilisi. Vestibulum tincidunt sapien eu velit. Mauris purus. Maecenas eget mauris eu orci accumsan feugiat. Pellentesque eget velit. Nunc tincidunt.</p></div>\r\n<div class=\"col-3\">\r\n<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper </p>\r\n<p><strong style=\"color:#de036f;\">Maecenas ullamcorper, odio vel tempus egestas, dui orci faucibus orci, sit amet aliquet lectus dolor et quam. Pellentesque consequat luctus purus.</strong></p>\r\n<p>Nunc et risus. Etiam a nibh. Phasellus dignissim metus eget nisi.</p>\r\n<div class=\"divider\"></div>\r\n<p>To all of you, from all of us at Magento Store - Thank you and Happy eCommerce!</p>\r\n<p style=\"line-height:1.2em;\"><strong style=\"font:italic 2em Georgia, serif;\">John Doe</strong><br /><small>Some important guy</small></p></div>\r\n</div>",
+        'content' => "<div class=\"col3-set\">\r\n<div class=\"col-1\"><p><a href=\"http://www.magento.com/\"><img src=\"{{view url='Magento_Cms::images/about_us_img.jpg' area=frontend}}\" title=\"Varien\" alt=\"Varien\" /></a></p><p style=\"line-height:1.2em;\"><small>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede.</small></p>\r\n<p style=\"color:#888; font:1.2em/1.4em georgia, serif;\">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta.</p></div>\r\n<div class=\"col-2\">\r\n<p><strong style=\"color:#de036f;\">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit.</strong></p>\r\n<p>Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo. </p>\r\n<p>Maecenas ullamcorper, odio vel tempus egestas, dui orci faucibus orci, sit amet aliquet lectus dolor et quam. Pellentesque consequat luctus purus. Nunc et risus. Etiam a nibh. Phasellus dignissim metus eget nisi. Vestibulum sapien dolor, aliquet nec, porta ac, malesuada a, libero. Praesent feugiat purus eget est. Nulla facilisi. Vestibulum tincidunt sapien eu velit. Mauris purus. Maecenas eget mauris eu orci accumsan feugiat. Pellentesque eget velit. Nunc tincidunt.</p></div>\r\n<div class=\"col-3\">\r\n<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper </p>\r\n<p><strong style=\"color:#de036f;\">Maecenas ullamcorper, odio vel tempus egestas, dui orci faucibus orci, sit amet aliquet lectus dolor et quam. Pellentesque consequat luctus purus.</strong></p>\r\n<p>Nunc et risus. Etiam a nibh. Phasellus dignissim metus eget nisi.</p>\r\n<div class=\"divider\"></div>\r\n<p>To all of you, from all of us at Magento Store - Thank you and Happy eCommerce!</p>\r\n<p style=\"line-height:1.2em;\"><strong style=\"font:italic 2em Georgia, serif;\">John Doe</strong><br /><small>Some important guy</small></p></div>\r\n</div>",
         'is_active' => 1,
         'stores' => array(0),
         'sort_order' => 0
@@ -83,7 +83,7 @@ $cmsPages = array(
         'root_template' => 'one_column',
         'identifier' => 'enable-cookies',
         'content_heading' => 'What are Cookies?',
-        'content' => "<div class=\"message notice\">\r\n            <div>Please enable cookies in your web browser to continue.</div>\r\n            </div>\r\n            <p>Cookies are short pieces of data that are sent to your computer when you visit a website. On later visits, this data is then returned to that website. Cookies allow us to recognize you automatically whenever you visit our site so that we can personalize your experience and provide you with better service. We also use cookies (and similar browser data, such as Flash cookies) for fraud prevention and other purposes. If your web browser is set to refuse cookies from our website, you will not be able to complete a purchase or take advantage of certain features of our website, such as storing items in your Shopping Cart or receiving personalized recommendations. As a result, we strongly encourage you to configure your web browser to accept cookies from our website.</p>\r\n    <h2 class=\"subtitle\">Enabling Cookies</h2>\r\n    <ul class=\"disc\">\r\n        <li><a href=\"#ie7\">Internet Explorer 7.x</a></li>\r\n        <li><a href=\"#ie6\">Internet Explorer 6.x</a></li>\r\n        <li><a href=\"#firefox\">Mozilla/Firefox</a></li>\r\n        <li><a href=\"#opera\">Opera 7.x</a></li>\r\n    </ul>\r\n    <h3><a name=\"ie7\"></a>Internet Explorer 7.x</h3>\r\n    <ol>\r\n        <li>\r\n            <p>Start Internet Explorer</p>\r\n        </li>\r\n        <li>\r\n            <p>Under the <strong>Tools</strong> menu, click <strong>Internet Options</strong></p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-1.gif\"}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Click the <strong>Privacy</strong> tab</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-2.gif\"}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Click the <strong>Advanced</strong> button</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-3.gif\"}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Put a check mark in the box for <strong>Override Automatic Cookie Handling</strong>, put another check mark in the <strong>Always accept session cookies </strong>box</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-4.gif\"}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Click <strong>OK</strong></p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-5.gif\"}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Click <strong>OK</strong></p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-6.gif\"}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Restart Internet Explore</p>\r\n        </li>\r\n    </ol>\r\n    <p class=\"a-top\"><a href=\"#top\">Back to Top</a></p>\r\n    <h3><a name=\"ie6\"></a>Internet Explorer 6.x</h3>\r\n    <ol>\r\n        <li>\r\n            <p>Select <strong>Internet Options</strong> from the Tools menu</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie6-1.gif\"}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Click on the <strong>Privacy</strong> tab</p>\r\n        </li>\r\n        <li>\r\n            <p>Click the <strong>Default</strong> button (or manually slide the bar down to <strong>Medium</strong>) under <strong>Settings</strong>. Click <strong>OK</strong></p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie6-2.gif\"}}\" alt=\"\" /></p>\r\n        </li>\r\n    </ol>\r\n    <p class=\"a-top\"><a href=\"#top\">Back to Top</a></p>\r\n    <h3><a name=\"firefox\"></a>Mozilla/Firefox</h3>\r\n    <ol>\r\n        <li>\r\n            <p>Click on the <strong>Tools</strong>-menu in Mozilla</p>\r\n        </li>\r\n        <li>\r\n            <p>Click on the <strong>Options...</strong> item in the menu - a new window open</p>\r\n        </li>\r\n        <li>\r\n            <p>Click on the <strong>Privacy</strong> selection in the left part of the window. (See image below)</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/firefox.png\"}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Expand the <strong>Cookies</strong> section</p>\r\n        </li>\r\n        <li>\r\n            <p>Check the <strong>Enable cookies</strong> and <strong>Accept cookies normally</strong> checkboxes</p>\r\n        </li>\r\n        <li>\r\n            <p>Save changes by clicking <strong>Ok</strong>.</p>\r\n        </li>\r\n    </ol>\r\n    <p class=\"a-top\"><a href=\"#top\">Back to Top</a></p>\r\n    <h3><a name=\"opera\"></a>Opera 7.x</h3>\r\n    <ol>\r\n        <li>\r\n            <p>Click on the <strong>Tools</strong> menu in Opera</p>\r\n        </li>\r\n        <li>\r\n            <p>Click on the <strong>Preferences...</strong> item in the menu - a new window open</p>\r\n        </li>\r\n        <li>\r\n            <p>Click on the <strong>Privacy</strong> selection near the bottom left of the window. (See image below)</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/opera.png\"}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>The <strong>Enable cookies</strong> checkbox must be checked, and <strong>Accept all cookies</strong> should be selected in the &quot;<strong>Normal cookies</strong>&quot; drop-down</p>\r\n        </li>\r\n        <li>\r\n            <p>Save changes by clicking <strong>Ok</strong></p>\r\n        </li>\r\n    </ol>\r\n    <p class=\"a-top\"><a href=\"#top\">Back to Top</a></p>\r\n",
+        'content' => "<div class=\"message notice\">\r\n            <div>Please enable cookies in your web browser to continue.</div>\r\n            </div>\r\n            <p>Cookies are short pieces of data that are sent to your computer when you visit a website. On later visits, this data is then returned to that website. Cookies allow us to recognize you automatically whenever you visit our site so that we can personalize your experience and provide you with better service. We also use cookies (and similar browser data, such as Flash cookies) for fraud prevention and other purposes. If your web browser is set to refuse cookies from our website, you will not be able to complete a purchase or take advantage of certain features of our website, such as storing items in your Shopping Cart or receiving personalized recommendations. As a result, we strongly encourage you to configure your web browser to accept cookies from our website.</p>\r\n    <h2 class=\"subtitle\">Enabling Cookies</h2>\r\n    <ul class=\"disc\">\r\n        <li><a href=\"#ie7\">Internet Explorer 7.x</a></li>\r\n        <li><a href=\"#ie6\">Internet Explorer 6.x</a></li>\r\n        <li><a href=\"#firefox\">Mozilla/Firefox</a></li>\r\n        <li><a href=\"#opera\">Opera 7.x</a></li>\r\n    </ul>\r\n    <h3><a name=\"ie7\"></a>Internet Explorer 7.x</h3>\r\n    <ol>\r\n        <li>\r\n            <p>Start Internet Explorer</p>\r\n        </li>\r\n        <li>\r\n            <p>Under the <strong>Tools</strong> menu, click <strong>Internet Options</strong></p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-1.gif\"  area=frontend}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Click the <strong>Privacy</strong> tab</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-2.gif\"  area=frontend}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Click the <strong>Advanced</strong> button</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-3.gif\"  area=frontend}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Put a check mark in the box for <strong>Override Automatic Cookie Handling</strong>, put another check mark in the <strong>Always accept session cookies </strong>box</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-4.gif\"  area=frontend}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Click <strong>OK</strong></p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-5.gif\"  area=frontend}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Click <strong>OK</strong></p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie7-6.gif\"  area=frontend}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Restart Internet Explore</p>\r\n        </li>\r\n    </ol>\r\n    <p class=\"a-top\"><a href=\"#top\">Back to Top</a></p>\r\n    <h3><a name=\"ie6\"></a>Internet Explorer 6.x</h3>\r\n    <ol>\r\n        <li>\r\n            <p>Select <strong>Internet Options</strong> from the Tools menu</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie6-1.gif\"  area=frontend}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Click on the <strong>Privacy</strong> tab</p>\r\n        </li>\r\n        <li>\r\n            <p>Click the <strong>Default</strong> button (or manually slide the bar down to <strong>Medium</strong>) under <strong>Settings</strong>. Click <strong>OK</strong></p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/ie6-2.gif\"  area=frontend}}\" alt=\"\" /></p>\r\n        </li>\r\n    </ol>\r\n    <p class=\"a-top\"><a href=\"#top\">Back to Top</a></p>\r\n    <h3><a name=\"firefox\"></a>Mozilla/Firefox</h3>\r\n    <ol>\r\n        <li>\r\n            <p>Click on the <strong>Tools</strong>-menu in Mozilla</p>\r\n        </li>\r\n        <li>\r\n            <p>Click on the <strong>Options...</strong> item in the menu - a new window open</p>\r\n        </li>\r\n        <li>\r\n            <p>Click on the <strong>Privacy</strong> selection in the left part of the window. (See image below)</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/firefox.png\"  area=frontend}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>Expand the <strong>Cookies</strong> section</p>\r\n        </li>\r\n        <li>\r\n            <p>Check the <strong>Enable cookies</strong> and <strong>Accept cookies normally</strong> checkboxes</p>\r\n        </li>\r\n        <li>\r\n            <p>Save changes by clicking <strong>Ok</strong>.</p>\r\n        </li>\r\n    </ol>\r\n    <p class=\"a-top\"><a href=\"#top\">Back to Top</a></p>\r\n    <h3><a name=\"opera\"></a>Opera 7.x</h3>\r\n    <ol>\r\n        <li>\r\n            <p>Click on the <strong>Tools</strong> menu in Opera</p>\r\n        </li>\r\n        <li>\r\n            <p>Click on the <strong>Preferences...</strong> item in the menu - a new window open</p>\r\n        </li>\r\n        <li>\r\n            <p>Click on the <strong>Privacy</strong> selection near the bottom left of the window. (See image below)</p>\r\n            <p><img src=\"{{view url=\"Magento_Cms::images/cookies/opera.png\"  area=frontend}}\" alt=\"\" /></p>\r\n        </li>\r\n        <li>\r\n            <p>The <strong>Enable cookies</strong> checkbox must be checked, and <strong>Accept all cookies</strong> should be selected in the &quot;<strong>Normal cookies</strong>&quot; drop-down</p>\r\n        </li>\r\n        <li>\r\n            <p>Save changes by clicking <strong>Ok</strong></p>\r\n        </li>\r\n    </ol>\r\n    <p class=\"a-top\"><a href=\"#top\">Back to Top</a></p>\r\n",
         'is_active' => 1,
         'stores' => array(0)
     )
diff --git a/app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php b/app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php
index 812d9aaf2fbd655d8d46f59255329b26ba7b735d..52e90949ac75aa17dc508df39459634b70b843d5 100644
--- a/app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php
+++ b/app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php
@@ -25,90 +25,58 @@
  */
 namespace Magento\ConfigurableProduct\Block\Product\View\Type;
 
-use Magento\Catalog\Model\Product\PriceModifierInterface;
-use Magento\Customer\Controller\RegistryConstants;
-use Magento\Customer\Service\V1\CustomerAccountServiceInterface as CustomerAccountService;
-
 /**
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
 class Configurable extends \Magento\Catalog\Block\Product\View\AbstractView
 {
     /**
-     * Prices
+     * Catalog product
      *
-     * @var array
+     * @var \Magento\Catalog\Helper\Product
      */
-    protected $_prices = array();
+    protected $catalogProduct = null;
 
     /**
-     * Prepared prices
+     * Prices
      *
      * @var array
      */
-    protected $_resPrices = array();
-
-    /**
-     * Catalog product
-     *
-     * @var \Magento\Catalog\Helper\Product
-     */
-    protected $_catalogProduct = null;
+    protected $_prices = array();
 
     /**
      * @var \Magento\Framework\Json\EncoderInterface
      */
-    protected $_jsonEncoder;
-
-    /**
-     * @var \Magento\Catalog\Helper\Product\Price
-     */
-    protected $priceHelper;
+    protected $jsonEncoder;
 
     /**
-     * @var CustomerAccountService
+     * @var \Magento\ConfigurableProduct\Helper\Data $imageHelper
      */
-    protected $_customerAccountService;
-
-    /**
-     * @var \Magento\Catalog\Model\Product\PriceModifierInterface
-     */
-    protected $priceModifier;
+    protected $helper;
 
     /**
      * @param \Magento\Catalog\Block\Product\Context $context
      * @param \Magento\Framework\Stdlib\ArrayUtils $arrayUtils
      * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
+     * @param \Magento\ConfigurableProduct\Helper\Data $helper
      * @param \Magento\Catalog\Helper\Product $catalogProduct
-     * @param \Magento\Catalog\Helper\Product\Price $priceHelper
-     * @param CustomerAccountService $customerAccountService
-     * @param \Magento\Catalog\Model\Product\PriceModifierInterface $priceModifier
      * @param array $data
-     * @param array $priceBlockTypes
-     *
-     * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Framework\Stdlib\ArrayUtils $arrayUtils,
         \Magento\Framework\Json\EncoderInterface $jsonEncoder,
+        \Magento\ConfigurableProduct\Helper\Data $helper,
         \Magento\Catalog\Helper\Product $catalogProduct,
-        \Magento\Catalog\Helper\Product\Price $priceHelper,
-        CustomerAccountService $customerAccountService,
-        PriceModifierInterface $priceModifier,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
-        $this->_catalogProduct = $catalogProduct;
-        $this->_jsonEncoder = $jsonEncoder;
-        $this->priceHelper = $priceHelper;
-        $this->priceModifier = $priceModifier;
-        $this->_customerAccountService = $customerAccountService;
+        $this->helper = $helper;
+        $this->jsonEncoder = $jsonEncoder;
+        $this->catalogProduct = $catalogProduct;
         parent::__construct(
             $context,
             $arrayUtils,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
@@ -150,7 +118,7 @@ class Configurable extends \Magento\Catalog\Block\Product\View\AbstractView
     {
         if (!$this->hasAllowProducts()) {
             $products = array();
-            $skipSaleableCheck = $this->_catalogProduct->getSkipSaleableCheck();
+            $skipSaleableCheck = $this->catalogProduct->getSkipSaleableCheck();
             $allProducts = $this->getProduct()->getTypeInstance()->getUsedProducts($this->getProduct(), null);
             foreach ($allProducts as $product) {
                 if ($product->isSaleable() || $skipSaleableCheck) {
@@ -186,230 +154,39 @@ class Configurable extends \Magento\Catalog\Block\Product\View\AbstractView
      * Composes configuration for js
      *
      * @return string
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
-     * @SuppressWarnings(PHPMD.NPathComplexity)
-     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function getJsonConfig()
     {
-        $attributes = array();
-        $options = array();
         $store = $this->getCurrentStore();
-        $taxHelper = $this->_taxData;
         $currentProduct = $this->getProduct();
-        $baseImageUrl = (string)$this->_imageHelper->init($currentProduct, 'image');
-        $preConfiguredValues = null;
-
-        $preConfiguredFlag = $currentProduct->hasPreconfiguredValues();
-        if ($preConfiguredFlag) {
-            $preConfiguredValues = $currentProduct->getPreconfiguredValues();
-            $defaultValues = array();
-        }
-
-        foreach ($this->getAllowProducts() as $product) {
-            $productId = $product->getId();
-            $this->_imageHelper->init($product, 'image');
-
-            foreach ($this->getAllowAttributes() as $attribute) {
-                $productAttribute = $attribute->getProductAttribute();
-                $productAttributeId = $productAttribute->getId();
-                $attributeValue = $product->getData($productAttribute->getAttributeCode());
-                if (!isset($options[$productAttributeId])) {
-                    $options[$productAttributeId] = array();
-                }
-
-                if (!isset($options[$productAttributeId][$attributeValue])) {
-                    $options[$productAttributeId][$attributeValue] = array();
-                }
-                $options[$productAttributeId][$attributeValue][] = $productId;
-
-                if (!$product->getImage() || $product->getImage() === 'no_selection') {
-                    $options['images'][$productAttributeId][$attributeValue][$productId] = $baseImageUrl;
-                } else {
-                    $options['images'][$productAttributeId][$attributeValue][$productId] = (string)$this->_imageHelper;
-                }
-            }
-        }
-
-        $this->_resPrices = array($this->_preparePrice($currentProduct->getFinalPrice()));
-
-        foreach ($this->getAllowAttributes() as $attribute) {
-            $productAttribute = $attribute->getProductAttribute();
-            $attributeId = $productAttribute->getId();
-            $info = array(
-                'id' => $productAttribute->getId(),
-                'code' => $productAttribute->getAttributeCode(),
-                'label' => $attribute->getLabel(),
-                'options' => array()
-            );
-
-            $optionPrices = array();
-            $prices = $attribute->getPrices();
-            if (is_array($prices)) {
-                foreach ($prices as $value) {
-                    if (!$this->_validateAttributeValue($attributeId, $value, $options)) {
-                        continue;
-                    }
-                    $currentProduct->setConfigurablePrice(
-                        $this->_preparePrice($value['pricing_value'], $value['is_percent'])
-                    );
-                    $currentProduct->setParentId(true);
-                    $currentProduct->setConfigurablePrice(
-                        $this->priceModifier->modifyPrice($currentProduct->getConfigurablePrice(), $currentProduct)
-                    );
-                    $configurablePrice = $currentProduct->getConfigurablePrice();
-
-                    if (isset($options[$attributeId][$value['value_index']])) {
-                        $productsIndex = $options[$attributeId][$value['value_index']];
-                    } else {
-                        $productsIndex = array();
-                    }
-
-                    // @todo resolve issue with weee specifics
-                    $info['options'][] = array(
-                        'id' => $value['value_index'],
-                        'label' => $value['label'],
-                        'price' => $configurablePrice,
-                        'oldPrice' => $this->_prepareOldPrice($value['pricing_value'], $value['is_percent']),
-                        'inclTaxPrice' => $currentProduct
-                            ->getPriceInfo()
-                            ->getPrice('final_price')
-                            ->getCustomAmount($configurablePrice, 'weee')
-                            ->getValue(),
-                        'exclTaxPrice' => $configurablePrice,
-                        'products' => $productsIndex
-                    );
-                    $optionPrices[] = $configurablePrice;
-                }
-            }
-
-            /**
-             * Prepare formatted values for options choose
-             */
-            foreach ($optionPrices as $optionPrice) {
-                foreach ($optionPrices as $additional) {
-                    $this->_preparePrice(abs($additional - $optionPrice));
-                }
-            }
-            if ($this->_validateAttributeInfo($info)) {
-                $attributes[$attributeId] = $info;
-            }
-
-            // Add attribute default value (if set)
-            if ($preConfiguredFlag) {
-                $configValue = $preConfiguredValues->getData('super_attribute/' . $attributeId);
-                if ($configValue) {
-                    $defaultValues[$attributeId] = $configValue;
-                }
-            }
-        }
-
-
-        if (is_null($this->priceHelper->getCustomer()->getId())
-            && $this->_coreRegistry->registry(RegistryConstants::CURRENT_CUSTOMER_ID)
-        ) {
-            $customerId = $this->_coreRegistry->registry(RegistryConstants::CURRENT_CUSTOMER_ID);
-            $this->priceHelper->setCustomer($this->_customerAccountService->getCustomer($customerId));
-        }
-
-        $_request = $this->priceHelper->getRateRequest(false, false, false);
-        $_request->setProductClassId($currentProduct->getTaxClassId());
-        $defaultTax = $this->priceHelper->getRate($_request);
-
-        $_request = $this->priceHelper->getRateRequest();
-        $_request->setProductClassId($currentProduct->getTaxClassId());
-        $currentTax = $this->priceHelper->getRate($_request);
 
-        $taxConfig = array(
-            'includeTax' => $taxHelper->priceIncludesTax(),
-            'showIncludeTax' => $taxHelper->displayPriceIncludingTax(),
-            'showBothPrices' => $taxHelper->displayBothPrices(),
-            'defaultTax' => $defaultTax,
-            'currentTax' => $currentTax,
-            'inclTaxTitle' => __('Incl. Tax')
-        );
+        /**
+         * @var \Magento\ConfigurableProduct\Pricing\Price\AttributePrice $attributePrice
+         */
+        $attributePrice = $currentProduct
+            ->getPriceInfo()
+            ->getPrice('attribute_price');
+        $options = $this->helper->getOptions($currentProduct, $this->getAllowProducts());
+        $attributes = $attributePrice->prepareAttributes($options);
 
         $config = array(
-            'attributes' => $attributes,
+            'attributes' => $attributes['priceOptions'],
             'template' => str_replace('%s', '#{price}', $store->getCurrentCurrency()->getOutputFormat()),
             'basePrice' => $this->_registerJsPrice($this->_convertPrice($currentProduct->getFinalPrice())),
             'oldPrice' => $this->_registerJsPrice($this->_convertPrice($currentProduct->getPrice())),
             'productId' => $currentProduct->getId(),
             'chooseText' => __('Choose an Option...'),
-            'taxConfig' => $taxConfig,
+            'taxConfig' => $attributePrice->getTaxConfig(),
             'images' => $options['images']
         );
 
-        if ($preConfiguredFlag && !empty($defaultValues)) {
-            $config['defaultValues'] = $defaultValues;
+        if ($currentProduct->hasPreconfiguredValues() && !empty($attributes['defaultValues'])) {
+            $config['defaultValues'] = $attributes['defaultValues'];
         }
 
         $config = array_merge($config, $this->_getAdditionalConfig());
 
-        return $this->_jsonEncoder->encode($config);
-    }
-
-    /**
-     * Validating of super product option value
-     *
-     * @param int $attributeId
-     * @param array $value
-     * @param array $options
-     * @return bool
-     */
-    protected function _validateAttributeValue($attributeId, &$value, &$options)
-    {
-        if (isset($options[$attributeId][$value['value_index']])) {
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Validation of super product option
-     *
-     * @param array $info
-     * @return bool
-     */
-    protected function _validateAttributeInfo(&$info)
-    {
-        if (count($info['options']) > 0) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Calculation real price
-     *
-     * @param float $price
-     * @param bool $isPercent
-     * @return string
-     */
-    protected function _preparePrice($price, $isPercent = false)
-    {
-        if ($isPercent && !empty($price)) {
-            $price = $this->getProduct()->getFinalPrice() * $price / 100;
-        }
-
-        return $this->_registerJsPrice($this->_convertPrice($price, true));
-    }
-
-    /**
-     * Calculation price before special price
-     *
-     * @param float $price
-     * @param bool $isPercent
-     * @return string
-     */
-    protected function _prepareOldPrice($price, $isPercent = false)
-    {
-        if ($isPercent && !empty($price)) {
-            $price = $this->getProduct()->getPrice() * $price / 100;
-        }
-
-        return $this->_registerJsPrice($this->_convertPrice($price, true));
+        return $this->jsonEncoder->encode($config);
     }
 
     /**
diff --git a/app/code/Magento/ConfigurableProduct/Helper/Data.php b/app/code/Magento/ConfigurableProduct/Helper/Data.php
new file mode 100644
index 0000000000000000000000000000000000000000..27c228e07528b649d0c7d0fb461aa6b2be2c9604
--- /dev/null
+++ b/app/code/Magento/ConfigurableProduct/Helper/Data.php
@@ -0,0 +1,91 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\ConfigurableProduct\Helper;
+
+use \Magento\Catalog\Model\Product;
+
+/**
+ * Class Data
+ * Helper class for getting options
+ *
+ * @package Magento\ConfigurableProduct\Helper
+ */
+class Data
+{
+    /**
+     * Catalog Image Helper
+     *
+     * @var \Magento\Catalog\Helper\Image
+     */
+    protected $imageHelper;
+
+    /**
+     * @param \Magento\Catalog\Helper\Image $imageHelper
+     */
+    public function __construct(\Magento\Catalog\Helper\Image $imageHelper)
+    {
+        $this->imageHelper = $imageHelper;
+    }
+
+    /**
+     * Get Options for Configurable Product Options
+     *
+     * @param \Magento\Catalog\Model\Product $currentProduct
+     * @param array $allowedProducts
+     * @return array
+     */
+    public function getOptions($currentProduct, $allowedProducts)
+    {
+        $options = array();
+        $baseImageUrl = (string)$this->imageHelper->init($currentProduct, 'image');
+
+        foreach ($allowedProducts as $product) {
+            $productId = $product->getId();
+            $image = (string)$this->imageHelper->init($product, 'image');
+
+            foreach ($this->getAllowAttributes($currentProduct) as $attribute) {
+                $productAttribute = $attribute->getProductAttribute();
+                $productAttributeId = $productAttribute->getId();
+                $attributeValue = $product->getData($productAttribute->getAttributeCode());
+
+                $options[$productAttributeId][$attributeValue][] = $productId;
+                $options['images'][$productAttributeId][$attributeValue][$productId] = $image ? $image : $baseImageUrl;
+            }
+        }
+
+        return $options;
+    }
+
+    /**
+     * Get allowed attributes
+     *
+     * @param \Magento\Catalog\Model\Product $product
+     * @return array
+     */
+    public function getAllowAttributes($product)
+    {
+        return $product->getTypeInstance()->getConfigurableAttributes($product);
+    }
+}
diff --git a/app/code/Magento/ConfigurableProduct/Pricing/Price/AttributePrice.php b/app/code/Magento/ConfigurableProduct/Pricing/Price/AttributePrice.php
new file mode 100644
index 0000000000000000000000000000000000000000..aaae58d768433b18260409ef1873dfac7ae84c88
--- /dev/null
+++ b/app/code/Magento/ConfigurableProduct/Pricing/Price/AttributePrice.php
@@ -0,0 +1,316 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\ConfigurableProduct\Pricing\Price;
+
+use Magento\ConfigurableProduct\Model\Resource\Product\Type\Configurable\Attribute;
+use Magento\Framework\Pricing\Price\AbstractPrice;
+use Magento\ConfigurableProduct\Block\Product\View;
+use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
+use Magento\Catalog\Model\Product;
+use Magento\Catalog\Model\Product\PriceModifierInterface;
+use Magento\Framework\Pricing\Amount\AmountInterface;
+
+/**
+ * Class PriceOptions
+ *
+ * @package Magento\ConfigurableProduct\Block\Product\View\Type
+ */
+class AttributePrice extends AbstractPrice implements AttributePriceInterface
+{
+    /**
+     * Default price type
+     */
+    const PRICE_CODE = 'attribute_price';
+
+    /**
+     * Store manager
+     *
+     * @var \Magento\Store\Model\StoreManagerInterface
+     */
+    protected $storeManager;
+
+    /**
+     * @param Product $saleableItem
+     * @param float $quantity
+     * @param CalculatorInterface $calculator
+     * @param PriceModifierInterface $modifier
+     * @param \Magento\Store\Model\StoreManagerInterface $storeManager
+     */
+    public function __construct(
+        Product $saleableItem,
+        $quantity,
+        CalculatorInterface $calculator,
+        PriceModifierInterface $modifier,
+        \Magento\Store\Model\StoreManagerInterface $storeManager
+    ) {
+        $this->priceModifier = $modifier;
+        $this->storeManager = $storeManager;
+        parent::__construct($saleableItem, $quantity, $calculator);
+    }
+
+    /**
+     * Prepare JsonAttributes with Options Prices
+     *
+     * @param array $options
+     * @return array
+     */
+    public function prepareAttributes(array $options = [])
+    {
+        $defaultValues = [];
+        $attributes = [];
+        $configurableAttributes = $this->product->getTypeInstance()->getConfigurableAttributes($this->product);
+        foreach ($configurableAttributes as $attribute) {
+            $productAttribute = $attribute->getProductAttribute();
+            $attributeId = $productAttribute->getId();
+            $info = [
+                'id' => $attributeId,
+                'code' => $productAttribute->getAttributeCode(),
+                'label' => $attribute->getLabel(),
+                'options' => $this->getPriceOptions($attributeId, $attribute, $options)
+            ];
+            $defaultValues[$attributeId] = $this->getAttributeConfigValue($attributeId);
+            if ($this->validateAttributeInfo($info)) {
+                $attributes[$attributeId] = $info;
+            }
+        }
+        return [
+            'priceOptions' => $attributes,
+            'defaultValues' => $defaultValues
+        ];
+    }
+
+    /**
+     * Returns prices for configurable product options
+     *
+     * @param int $attributeId
+     * @param Attribute $attribute
+     * @param array $options
+     * @return array
+     */
+    public function getPriceOptions($attributeId, $attribute, array $options = [])
+    {
+        $prices = $attribute->getPrices();
+        $optionPrices = [];
+        if (!is_array($prices)) {
+            return $optionPrices;
+        }
+
+        foreach ($prices as $value) {
+            $optionValueModified = $this->getOptionValueModified($value);
+            $optionValueAmount = $this->getOptionValueAmount($value);
+
+            $price = $this->convertPrice($optionValueAmount->getValue());
+            $optionPrices[] = [
+                'id' => $value['value_index'],
+                'label' => $value['label'],
+                'price' => $this->convertDot($optionValueModified->getValue()),
+                'oldPrice' => $this->convertDot($price),
+                'inclTaxPrice' => $this->convertDot($optionValueModified->getValue()),
+                'exclTaxPrice' => $this->convertDot($optionValueModified->getBaseAmount()),
+                'products' => $this->getProductsIndex($attributeId, $options, $value)
+            ];
+        }
+
+        return $optionPrices;
+    }
+
+    /**
+     * Get Option Value including price rule
+     *
+     * @param array $value
+     * @param string $exclude
+     * @return AmountInterface
+     */
+    public function getOptionValueModified(
+        array $value = [],
+        $exclude = \Magento\Weee\Pricing\Adjustment::ADJUSTMENT_CODE
+    ) {
+        $pricingValue = $this->getPricingValue($value);
+        $this->product->setParentId(true);
+        $amount = $this->priceModifier->modifyPrice($pricingValue, $this->product);
+
+        return $this->calculator->getAmount(floatval($amount), $this->product, $exclude);
+    }
+
+    /**
+     * Get Option Value Amount with no Catalog Rules
+     *
+     * @param array $value
+     * @param string $exclude
+     * @return AmountInterface
+     */
+    public function getOptionValueAmount(
+        array $value = [],
+        $exclude = \Magento\Weee\Pricing\Adjustment::ADJUSTMENT_CODE
+    ) {
+        $amount = $this->getPricingValue($value);
+
+        return $this->calculator->getAmount(floatval($amount), $this->product, $exclude);
+    }
+
+    /**
+     * Prepare percent price value
+     *
+     * @param array $value
+     * @return float
+     */
+    protected function preparePrice(array $value = [])
+    {
+        return $this->product
+            ->getPriceInfo()
+            ->getPrice(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE)
+            ->getValue() * $value['pricing_value'] / 100;
+    }
+
+    /**
+     * Get value from array
+     *
+     * @param array $value
+     * @return float
+     */
+    protected function getPricingValue(array $value = [])
+    {
+        if ($value['is_percent'] && !empty($value['pricing_value'])) {
+            return $this->preparePrice($value);
+        } else {
+            return $value['pricing_value'];
+        }
+    }
+
+    /**
+     * Get Products Index
+     *
+     * @param int $attributeId
+     * @param array $options
+     * @param array $value
+     * @return array
+     */
+    protected function getProductsIndex($attributeId, array $options = [], array $value = [])
+    {
+        if (isset($options[$attributeId][$value['value_index']])) {
+            return $options[$attributeId][$value['value_index']];
+        } else {
+            return [];
+        }
+    }
+
+    /**
+     * @param int $attributeId
+     * @return mixed|null
+     */
+    protected function getAttributeConfigValue($attributeId)
+    {
+        if ($this->product->hasPreconfiguredValues()) {
+            return $this->product->getPreconfiguredValues()->getData('super_attribute/' . $attributeId);
+        }
+    }
+
+    /**
+     * Validation of super product option
+     *
+     * @param array $info
+     * @return bool
+     */
+    protected function validateAttributeInfo($info)
+    {
+        if (count($info['options']) > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Replace ',' on '.' for js
+     *
+     * @param float $price
+     * @return string
+     */
+    protected function convertDot($price)
+    {
+        return str_replace(',', '.', $price);
+    }
+
+
+    /**
+     * Convert price from default currency to current currency
+     *
+     * @param float $price
+     * @param bool $round
+     * @return float
+     */
+    protected function convertPrice($price, $round = false)
+    {
+        if (empty($price)) {
+            return 0;
+        }
+
+        $price = $this->storeManager->getStore()->convertPrice($price);
+        if ($round) {
+            $price = $this->storeManager->getStore()->roundPrice($price);
+        }
+
+        return $price;
+    }
+
+    /**
+     * Returns tax config for Configurable options
+     *
+     * @return array
+     */
+    public function getTaxConfig()
+    {
+        $config = $this->prepareAdjustmentConfig();
+        unset($config['product']);
+        return $config;
+    }
+
+    /**
+     * Default values for configurable options
+     *
+     * @return array
+     */
+    public function prepareAdjustmentConfig()
+    {
+        return [
+            'includeTax' => false,
+            'showIncludeTax' => false,
+            'showBothPrices' => false,
+            'defaultTax' => 0,
+            'currentTax' => 0,
+            'inclTaxTitle' => __('Incl. Tax'),
+            'product' => $this->product
+        ];
+    }
+
+    /**
+     * Get price value
+     *
+     * @return float|bool
+     */
+    public function getValue()
+    {
+        // TODO: Implement getValue() method.
+    }
+}
diff --git a/app/code/Magento/ConfigurableProduct/Pricing/Price/AttributePriceInterface.php b/app/code/Magento/ConfigurableProduct/Pricing/Price/AttributePriceInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..8834cfe05d0ec8b774aadcd51190204ecb46699f
--- /dev/null
+++ b/app/code/Magento/ConfigurableProduct/Pricing/Price/AttributePriceInterface.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\ConfigurableProduct\Pricing\Price;
+
+use Magento\Framework\Pricing\Amount\AmountInterface;
+
+/**
+ * Interface CustomOptionPriceInterface for Configurable Product
+ *
+ * @package Magento\ConfigurableProduct\Pricing\Price
+ */
+interface AttributePriceInterface
+{
+    /**
+     * @param array $value
+     * @return AmountInterface
+     */
+    public function getOptionValueAmount(array $value = []);
+
+    /**
+     * @param array $value
+     * @return AmountInterface
+     */
+    public function getOptionValueModified(array $value = []);
+}
diff --git a/app/code/Magento/ConfigurableProduct/etc/di.xml b/app/code/Magento/ConfigurableProduct/etc/di.xml
index 0caab03ce068b46d9fa282d44ff7c5bc6e4c08e4..393226013bed0a07cbcea6cd76502b3848495fb8 100644
--- a/app/code/Magento/ConfigurableProduct/etc/di.xml
+++ b/app/code/Magento/ConfigurableProduct/etc/di.xml
@@ -85,4 +85,27 @@
     <type name="Magento\Catalog\Model\Product\Type">
         <plugin name="configurable_output" type="Magento\ConfigurableProduct\Model\Product\Type\Plugin" />
     </type>
+    <virtualType name="Magento\ConfigurableProduct\Pricing\Price\Pool" type="Magento\Framework\Pricing\Price\Pool">
+        <arguments>
+            <argument name="prices" xsi:type="array">
+                <item name="attribute_price" xsi:type="string">Magento\ConfigurableProduct\Pricing\Price\AttributePrice</item>
+            </argument>
+            <argument name="target" xsi:type="object">Magento\Catalog\Pricing\Price\Pool</argument>
+        </arguments>
+    </virtualType>
+    <virtualType name="Magento\ConfigurableProduct\Pricing\Price\Collection" type="Magento\Framework\Pricing\Price\Collection">
+        <arguments>
+            <argument name="pool" xsi:type="object">Magento\ConfigurableProduct\Pricing\Price\Pool</argument>
+        </arguments>
+    </virtualType>
+    <type name="Magento\Framework\Pricing\PriceInfo\Factory">
+        <arguments>
+            <argument name="types" xsi:type="array">
+                <item name="configurable" xsi:type="array">
+                    <item name="infoClass" xsi:type="string">Magento\Framework\Pricing\PriceInfo\Base</item>
+                    <item name="prices" xsi:type="string">Magento\ConfigurableProduct\Pricing\Price\Collection</item>
+                </item>
+            </argument>
+        </arguments>
+    </type>
 </config>
diff --git a/app/code/Magento/ConfigurableProduct/etc/module.xml b/app/code/Magento/ConfigurableProduct/etc/module.xml
index 51b4413c3aa1bc7f6c3b3f5f0ae877748ca05e8d..ae53a99001587fdc384b9cf564e5911acc2eba15 100644
--- a/app/code/Magento/ConfigurableProduct/etc/module.xml
+++ b/app/code/Magento/ConfigurableProduct/etc/module.xml
@@ -47,6 +47,7 @@
             <module name="Magento_Customer" />
             <module name="Magento_CatalogRule" />
             <module name="Magento_Directory" />
+            <module name="Magento_Weee" />
         </depends>
     </module>
 </config>
diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/catalog/product/edit/super/matrix.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/catalog/product/edit/super/matrix.phtml
index 08cf74a8938fa3231c92ce9a4fa8c4acff96a4e0..c387a5bbf575b117815d645ba49adaa9f70aae2e 100644
--- a/app/code/Magento/ConfigurableProduct/view/adminhtml/catalog/product/edit/super/matrix.phtml
+++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/catalog/product/edit/super/matrix.phtml
@@ -270,7 +270,7 @@ jQuery(function ($) {
     matrix.find('[data-action=upload-image] [name=image]').each(function() {
         $(this).fileupload({
             dataType: 'json',
-            dropZone: $(this),
+            dropZone: $(this).closest('[data-role=row]'),
             acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
             done: function (event, data) {
                 if (!data.result) {
diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/js/configurable.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/js/configurable.js
index 2c076cbf9b6e8dfa27da929a8fb80cbac41e14f0..9ddd2af22cc299c1c601d913dfef396a0bf3db2c 100644
--- a/app/code/Magento/ConfigurableProduct/view/adminhtml/js/configurable.js
+++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/js/configurable.js
@@ -204,26 +204,19 @@ Product.Config.prototype = {
 
     getOptionLabel: function(option, price){
         var price = parseFloat(price);
-        if (this.taxConfig.includeTax) {
-            var tax = price / (100 + this.taxConfig.defaultTax) * this.taxConfig.defaultTax;
-            var excl = price - tax;
-            var incl = excl*(1+(this.taxConfig.currentTax/100));
-        } else {
-            var tax = price * (this.taxConfig.currentTax / 100);
-            var excl = price;
-            var incl = excl + tax;
-        }
+        var includeTax = parseFloat(option.inclTaxPrice);
+        var excludeTax = parseFloat(option.exclTaxPrice);
 
         if (this.taxConfig.showIncludeTax || this.taxConfig.showBothPrices) {
-            price = incl;
+            price = includeTax;
         } else {
-            price = excl;
+            price = excludeTax;
         }
 
         var str = option.label;
         if(price){
             if (this.taxConfig.showBothPrices) {
-                str+= ' ' + this.formatPrice(excl, true) + ' (' + this.formatPrice(price, true) + ' ' + this.taxConfig.inclTaxTitle + ')';
+                str+= ' ' + this.formatPrice(excludeTax, true) + ' (' + this.formatPrice(price, true) + ' ' + this.taxConfig.inclTaxTitle + ')';
             } else {
                 str+= ' ' + this.formatPrice(price, true);
             }
@@ -273,15 +266,26 @@ Product.Config.prototype = {
         }
         var price    = 0;
         var oldPrice = 0;
+        var inclTaxPrice = 0;
+        var exclTaxPrice = 0;
         for(var i=this.settings.length-1;i>=0;i--){
             var selected = this.settings[i].options[this.settings[i].selectedIndex];
             if(selected.config){
-                price    += parseFloat(selected.config.price);
+                price += parseFloat(selected.config.price);
                 oldPrice += parseFloat(selected.config.oldPrice);
+                inclTaxPrice += parseFloat(selected.config.inclTaxPrice);
+                exclTaxPrice += parseFloat(selected.config.exclTaxPrice);
             }
         }
 
-        optionsPrice.changePrice('config', {'price': price, 'oldPrice': oldPrice});
+        optionsPrice.changePrice(
+            'config', {
+                'price': price,
+                'oldPrice': oldPrice,
+                'inclTaxPrice': inclTaxPrice,
+                'exclTaxPrice': exclTaxPrice
+            }
+        );
         optionsPrice.reload();
 
         return price;
diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/product/configurable/stock/disabler.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/product/configurable/stock/disabler.phtml
index 57738a3cb063288af9a587ae0469dec6fd8b72e1..e822663a39d34cc5c5ef9578a9e925bd91807516 100644
--- a/app/code/Magento/ConfigurableProduct/view/adminhtml/product/configurable/stock/disabler.phtml
+++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/product/configurable/stock/disabler.phtml
@@ -24,7 +24,7 @@
 ?>
 <script type="text/javascript">
 (function($) {
-    $('#product_info_tabs_product-details_content').on('stockbeforedisable', function(e) {
+    $('[data-tab-panel=product-details]').on('stockbeforedisable', function(e) {
         if ($('[data-panel=product-variations]').is('.opened')) {
             return false;
         }
diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/js/components.phtml b/app/code/Magento/ConfigurableProduct/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..1127ad43e3ce67690a68f89ed5e3d8ab9d79103e
--- /dev/null
+++ b/app/code/Magento/ConfigurableProduct/view/frontend/js/components.phtml
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            configurable: [
+                '<?php echo $this->getViewFileUrl('jquery/jquery.parsequery.js') ?>',
+                '<?php echo $this->getViewFileUrl('Magento_ConfigurableProduct::js/configurable.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/js/configurable.js b/app/code/Magento/ConfigurableProduct/view/frontend/js/configurable.js
index 04bec6b59b1ee5dc94e21014c1fd51124b5a1a2e..9373c759a5a9d2edeb66ffcf5d002b013667d1f9 100644
--- a/app/code/Magento/ConfigurableProduct/view/frontend/js/configurable.js
+++ b/app/code/Magento/ConfigurableProduct/view/frontend/js/configurable.js
@@ -238,7 +238,7 @@
                 });
             });
 
-            if (galleryElement.length && galleryElement.data('gallery')) {
+            if (galleryElement.length) {
                 if (result.length === 1) {
                     this.initialGalleryImages = this.initialGalleryImages || galleryElement.gallery('option', 'images');
                     galleryElement.gallery('option', 'images', result);
@@ -345,21 +345,25 @@
          */
         _getOptionLabel: function(option, price) {
             price = parseFloat(price);
-            var tax, incl, excl;
+            //todo: use taxes from php config
+            /*
             if (this.options.taxConfig.includeTax) {
                 tax = price / (100 + this.options.taxConfig.defaultTax) * this.options.taxConfig.defaultTax;
-                excl = price - tax;
-                incl = excl * (1 + (this.options.taxConfig.currentTax / 100));
+                excludeTax = price - tax;
+                includeTax = excl * (1 + (this.options.taxConfig.currentTax / 100));
             } else {
                 tax = price * (this.options.taxConfig.currentTax / 100);
-                excl = price;
-                incl = excl + tax;
+                excludeTax = price;
+                includeTax = excl + tax;
             }
-            price = (this.options.taxConfig.showIncludeTax || this.options.taxConfig.showBothPrices) ? incl : excl;
+            */
+            var includeTax = option.inclTaxPrice;
+            var excludeTax = option.exclTaxPrice;
+            price = (this.options.taxConfig.showIncludeTax || this.options.taxConfig.showBothPrices) ? includeTax : excludeTax;
             var str = option.label;
             if (price) {
                 str = (this.options.taxConfig.showBothPrices) ?
-                    str += ' ' + this._formatPrice(excl, true) + ' (' + this._formatPrice(price, true) + ' ' + this.options.taxConfig.inclTaxTitle + ')' :
+                    str += ' ' + this._formatPrice(excludeTax, true) + ' (' + this._formatPrice(price, true) + ' ' + this.options.taxConfig.inclTaxTitle + ')' :
                     str += ' ' + this._formatPrice(price, true);
             }
             return str;
diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/layout/catalog_product_view_type_configurable.xml b/app/code/Magento/ConfigurableProduct/view/frontend/layout/catalog_product_view_type_configurable.xml
index 992f181eef5c2de2ab3bac92c691d7f165061dad..1e51e658aae43020d1897704e50c29e91558a0ac 100644
--- a/app/code/Magento/ConfigurableProduct/view/frontend/layout/catalog_product_view_type_configurable.xml
+++ b/app/code/Magento/ConfigurableProduct/view/frontend/layout/catalog_product_view_type_configurable.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="configurableproduct_product_view_head_components" template="Magento_ConfigurableProduct::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="root">
         <action method="addBodyClass">
             <argument name="value" xsi:type="string">type-configurable</argument>
diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/product/view/type/options/configurable.phtml b/app/code/Magento/ConfigurableProduct/view/frontend/product/view/type/options/configurable.phtml
index 4ac6e31202c0f3d1380712b1b1f5f935677ac801..aef2e4f74c37015ed983f6ed9981929fb5de2ceb 100644
--- a/app/code/Magento/ConfigurableProduct/view/frontend/product/view/type/options/configurable.phtml
+++ b/app/code/Magento/ConfigurableProduct/view/frontend/product/view/type/options/configurable.phtml
@@ -46,10 +46,9 @@ $_attributes = $this->decorateArray($this->getAllowAttributes());
     <?php endforeach; ?>
     <script type="text/javascript">
         (function ($) {
-            head.js("<?php echo $this->getViewFileUrl('jquery/jquery.parsequery.js') ?>",
-                "<?php echo $this->getViewFileUrl('Magento_ConfigurableProduct::js/configurable.js') ?>", function () {
-                    $('#product_addtocart_form').configurable({"spConfig":<?php echo $this->getJsonConfig() ?>});
-                })
+            $('#product_addtocart_form').mage('configurable', {
+                "spConfig":<?php echo $this->getJsonConfig() ?>
+            });
         })(jQuery);
     </script>
 <?php endif;?>
diff --git a/app/code/Magento/Contact/view/frontend/form.phtml b/app/code/Magento/Contact/view/frontend/form.phtml
index e9a8e7369a977193acb827f803065918a4282fde..3e9dce45fd048223fd3b7031a71622270005c4c0 100644
--- a/app/code/Magento/Contact/view/frontend/form.phtml
+++ b/app/code/Magento/Contact/view/frontend/form.phtml
@@ -23,7 +23,12 @@
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
 ?>
-<form class="form contact" action="<?php echo $this->getFormAction(); ?>" id="contact-form" method="post" data-hasrequired="<?php echo __('* Required Fields') ?>">
+<form class="form contact"
+      action="<?php echo $this->getFormAction(); ?>"
+      id="contact-form"
+      method="post"
+      data-hasrequired="<?php echo __('* Required Fields') ?>"
+      data-mage-init='{"validation":{}}'>
     <fieldset class="fieldset">
         <legend class="legend"><span><?php echo __('Contact Information') ?></span></legend><br />
         <div class="field name required">
@@ -61,13 +66,3 @@
         </div>
     </div>
 </form>
-<script type="text/javascript">
-    (function($) {
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>", function() {
-                $('#contact-form').validation();
-            });
-    })(jQuery);
-</script>
diff --git a/app/code/Magento/Core/etc/di.xml b/app/code/Magento/Core/etc/di.xml
index c733bf6781dadf080fd3906e262fa8da36682d6f..fe465164a60a35c075522c98318d2e8b79283c3b 100644
--- a/app/code/Magento/Core/etc/di.xml
+++ b/app/code/Magento/Core/etc/di.xml
@@ -61,7 +61,7 @@
     <preference for="Magento\Framework\Url\RouteParamsResolverInterface" type="Magento\Core\Model\Url\RouteParamsResolver" />
     <preference for="Magento\Framework\Url\QueryParamsResolverInterface" type="Magento\Framework\Url\QueryParamsResolver" />
     <preference for="Magento\Framework\Url\ScopeResolverInterface" type="Magento\Core\Model\Url\ScopeResolver" />
-    <preference for="Magento\Framework\Url\SecurityInfoInterface" type="Magento\Core\Model\Url\SecurityInfo" />
+    <preference for="Magento\Framework\Url\SecurityInfoInterface" type="Magento\Core\Model\Url\SecurityInfo\Proxy" />
     <preference for="Magento\Framework\Mview\ConfigInterface" type="Magento\Framework\Mview\Config" />
     <preference for="Magento\Framework\Mview\ViewInterface" type="Magento\Framework\Mview\View" />
     <preference for="Magento\Framework\Mview\ProcessorInterface" type="Magento\Framework\Mview\Processor" />
diff --git a/app/code/Magento/Core/view/frontend/require_cookie.phtml b/app/code/Magento/Core/view/frontend/require_cookie.phtml
index 13c1fec3d8a5fca02bb6e6914d2b5eb678e820bd..f6054ddb1bf2d8af20dce9c3e1130c6b4019af44 100644
--- a/app/code/Magento/Core/view/frontend/require_cookie.phtml
+++ b/app/code/Magento/Core/view/frontend/require_cookie.phtml
@@ -26,9 +26,7 @@
 <script type="text/javascript">
     //<![CDATA[
     (function ($) {
-        head.js("<?php echo $this->getViewFileUrl('Magento_Core::js/require-cookie.js')?>", function () {
-            $('body').requireCookie(<?php echo $this->getScriptOptions(); ?>);
-        });
+        $('body').mage('requireCookie', <?php echo $this->getScriptOptions(); ?>);
     })(jQuery);
     //]]>
 </script>
\ No newline at end of file
diff --git a/app/code/Magento/Cron/Model/Config/Converter/Db.php b/app/code/Magento/Cron/Model/Config/Converter/Db.php
index e754e5b13818241e419934de183ed6e16efa7d3c..744c5dfb5d3366db4c622e5d7828606e15cc9695 100644
--- a/app/code/Magento/Cron/Model/Config/Converter/Db.php
+++ b/app/code/Magento/Cron/Model/Config/Converter/Db.php
@@ -38,7 +38,7 @@ class Db implements \Magento\Framework\Config\ConverterInterface
      */
     public function convert($source)
     {
-        $jobs = isset($source['crontab']['jobs']) ? $source['crontab']['jobs'] : array();
+        $jobs = isset($source['crontab']['default']['jobs']) ? $source['crontab']['default']['jobs'] : array();
 
         if (empty($jobs)) {
             return $jobs;
diff --git a/app/code/Magento/Cron/Model/Config/Converter/Xml.php b/app/code/Magento/Cron/Model/Config/Converter/Xml.php
index b6e17982f7015ef29d0758d0ee7946fd697d0439..d5f3431935cc560e2e44faa446bf92c8d7ae4ebb 100644
--- a/app/code/Magento/Cron/Model/Config/Converter/Xml.php
+++ b/app/code/Magento/Cron/Model/Config/Converter/Xml.php
@@ -65,6 +65,7 @@ class Xml implements \Magento\Framework\Config\ConverterInterface
                 $config['name'] = $jobName;
                 $config += $this->convertCronConfig($jobConfig);
                 $config += $this->convertCronSchedule($jobConfig);
+                $config += $this->convertCronConfigPath($jobConfig);
 
                 $output[$group->getAttribute('id')][$jobName] = $config;
             }
@@ -116,4 +117,27 @@ class Xml implements \Magento\Framework\Config\ConverterInterface
 
         return $result;
     }
+
+    /**
+     * Convert schedule cron configurations
+     *
+     * @param \DOMElement $jobConfig
+     * @return array
+     */
+    protected function convertCronConfigPath(\DOMElement $jobConfig)
+    {
+        $result = array();
+        /** @var \DOMText $schedules */
+        foreach ($jobConfig->childNodes as $schedules) {
+            if ($schedules->nodeName == 'config_path') {
+                if (!empty($schedules->nodeValue)) {
+                    $result['config_path'] = $schedules->nodeValue;
+                    break;
+                }
+            }
+            continue;
+        }
+
+        return $result;
+    }
 }
diff --git a/app/code/Magento/Cron/Model/Observer.php b/app/code/Magento/Cron/Model/Observer.php
index 8cf2f860fcd64aba7d104ec9f7024d47b75c4e8f..dde3e3164a38e2b61c7dfd79001a0b84c2708912 100644
--- a/app/code/Magento/Cron/Model/Observer.php
+++ b/app/code/Magento/Cron/Model/Observer.php
@@ -321,11 +321,9 @@ class Observer
                     $jobConfig['config_path'],
                     \Magento\Store\Model\ScopeInterface::SCOPE_STORE
                 );
-            } elseif (empty($cronExpr) && isset($jobConfig['schedule'])) {
+            } elseif (isset($jobConfig['schedule'])) {
                 $cronExpr = $jobConfig['schedule'];
-            }
-
-            if (!$cronExpr) {
+            } else {
                 continue;
             }
 
diff --git a/app/code/Magento/Cron/Model/Schedule.php b/app/code/Magento/Cron/Model/Schedule.php
index f2f5068fad4c22cff9165a28709bb8b8f152a6bb..c0cc44aa7dc169265918811384036b3a977210ff 100644
--- a/app/code/Magento/Cron/Model/Schedule.php
+++ b/app/code/Magento/Cron/Model/Schedule.php
@@ -133,22 +133,11 @@ class Schedule extends \Magento\Framework\Model\AbstractModel
 
         $d = getdate($this->_date->timestamp($time));
 
-        $match = $this->matchCronExpression(
-            $e[0],
-            $d['minutes']
-        ) && $this->matchCronExpression(
-            $e[1],
-            $d['hours']
-        ) && $this->matchCronExpression(
-            $e[2],
-            $d['mday']
-        ) && $this->matchCronExpression(
-            $e[3],
-            $d['mon']
-        ) && $this->matchCronExpression(
-            $e[4],
-            $d['wday']
-        );
+        $match = $this->matchCronExpression($e[0], $d['minutes'])
+            && $this->matchCronExpression($e[1], $d['hours'])
+            && $this->matchCronExpression($e[2], $d['mday'])
+            && $this->matchCronExpression($e[3], $d['mon'])
+            && $this->matchCronExpression($e[4], $d['wday']);
 
         if ($match) {
             $this->setCreatedAt(strftime('%Y-%m-%d %H:%M:%S', time()));
diff --git a/app/code/Magento/Cron/etc/crontab.xsd b/app/code/Magento/Cron/etc/crontab.xsd
index b940e9df8090edc0a683ce178583c18bfcaa62ce..3a5aad9f97db258cd9c9918a597ff2c92e721318 100644
--- a/app/code/Magento/Cron/etc/crontab.xsd
+++ b/app/code/Magento/Cron/etc/crontab.xsd
@@ -66,6 +66,7 @@
         </xs:annotation>
         <xs:sequence>
             <xs:element name="schedule" type="scheduleDeclaration" minOccurs="0" maxOccurs="1"/>
+            <xs:element name="config_path" type="xs:string" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
         <xs:attribute name="name" type="xs:string" use="required"/>
         <xs:attribute name="instance" type="xs:string" use="required"/>
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index.php b/app/code/Magento/Customer/Controller/Adminhtml/Index.php
index e3915e946fd69d2747174db3df8f5a6f71d2a0eb..bb26232ad64fcb2d66c81e3df4121bba82fedf5d 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index.php
@@ -175,11 +175,11 @@ class Index extends \Magento\Backend\App\Action
         $customer = $this->_objectManager->create('Magento\Customer\Model\Customer');
         if ($customerId) {
             $customer->load($customerId);
+            $this->_coreRegistry->register(RegistryConstants::CURRENT_CUSTOMER_ID, $customerId);
         }
 
         // TODO: Investigate if any piece of code still relies on this; remove if not.
         $this->_coreRegistry->register(RegistryConstants::CURRENT_CUSTOMER, $customer);
-        $this->_coreRegistry->register(RegistryConstants::CURRENT_CUSTOMER_ID, $customerId);
         return $customerId;
     }
 
diff --git a/app/code/Magento/Customer/Model/Resource/Group.php b/app/code/Magento/Customer/Model/Resource/Group.php
index fa7c1c5085de2e9233010e0a1b48fe4ab7995cbd..4a7ee2082660524a1861c7708372b3eb1399760d 100644
--- a/app/code/Magento/Customer/Model/Resource/Group.php
+++ b/app/code/Magento/Customer/Model/Resource/Group.php
@@ -111,7 +111,8 @@ class Group extends \Magento\Framework\Model\Resource\Db\AbstractDb
             $group->getId()
         )->load();
         foreach ($customerCollection as $customer) {
-            $customer->load();
+            /** @var $customer \Magento\Customer\Model\Customer */
+            $customer->load($customer->getId());
             $defaultGroupId = $this->_customerData->getDefaultCustomerGroupId($customer->getStoreId());
             $customer->setGroupId($defaultGroupId);
             $customer->save();
diff --git a/app/code/Magento/Customer/view/frontend/address/book.phtml b/app/code/Magento/Customer/view/frontend/address/book.phtml
index ef4cf8335b60ef9556299856f5311eb165cac094..c1b2c3f06a81b1ce20a988079fa31ac5186fdd59 100644
--- a/app/code/Magento/Customer/view/frontend/address/book.phtml
+++ b/app/code/Magento/Customer/view/frontend/address/book.phtml
@@ -101,12 +101,10 @@
     </div>
 </div>
 <script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('Magento_Customer::address.js'); ?>", function() {
-        jQuery('.page.main').address({
-            deleteAddress: "li.item a[role='delete-address']",
-            deleteUrlPrefix: '<?php echo $this->getDeleteUrl() ?>id/',
-            addAddress: "button[role='add-address']",
-            addAddressLocation: '<?php echo $this->getAddAddressUrl() ?>'
-        });
+    jQuery('.page.main').mage('address', {
+        deleteAddress: "li.item a[role='delete-address']",
+        deleteUrlPrefix: '<?php echo $this->getDeleteUrl() ?>id/',
+        addAddress: "button[role='add-address']",
+        addAddressLocation: '<?php echo $this->getAddAddressUrl() ?>'
     });
 </script>
diff --git a/app/code/Magento/Customer/view/frontend/address/edit.phtml b/app/code/Magento/Customer/view/frontend/address/edit.phtml
index 04fb8940ef18c90df1c586a6755a6261d6e4dd0e..8668046403204b68fcb022c8393421971e2c5984 100644
--- a/app/code/Magento/Customer/view/frontend/address/edit.phtml
+++ b/app/code/Magento/Customer/view/frontend/address/edit.phtml
@@ -147,23 +147,17 @@
 </form>
 <script type="text/javascript">
     (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-            "<?php echo $this->getViewFileUrl('Magento_Checkout::js/region-updater.js') ?>",
-            function() {
-                $('#country').regionUpdater({
-                    optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
-                    regionListId: '#region_id',
-                    regionInputId: '#region',
-                    postcodeId: '#zip',
-                    form: $('#form-validate').validation(),
-                    regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
-                    defaultRegion: "<?php echo $this->getRegionId() ?>",
-                    countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
-                });
-            });
+        var $form = $('#form-validate');
+        $form.mage('validation');
+        $('#country').mage('regionUpdater', {
+            optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
+            regionListId: '#region_id',
+            regionInputId: '#region',
+            postcodeId: '#zip',
+            form: $form,
+            regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
+            defaultRegion: "<?php echo $this->getRegionId() ?>",
+            countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
+        });
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Customer/view/frontend/form/confirmation.phtml b/app/code/Magento/Customer/view/frontend/form/confirmation.phtml
index 4e7668dc6b04b7be2d736130177f862ce7c69fb1..e384587d6114d2885541a40457e967407cb1919b 100644
--- a/app/code/Magento/Customer/view/frontend/form/confirmation.phtml
+++ b/app/code/Magento/Customer/view/frontend/form/confirmation.phtml
@@ -23,7 +23,7 @@
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
 ?>
-<form action="" method="post" id="form-validate" class="form send confirmation">
+<form action="" method="post" id="form-validate" class="form send confirmation" data-mage-init='{"validation":{}}'>
     <fieldset class="fieldset" data-hasrequired="<?php echo __('* Required Fields') ?>">
         <p class="field note"><?php echo __('Please enter your email below and we will send you the confirmation link for it.') ?></p>
         <div class="field email required">
@@ -42,15 +42,3 @@
         </div>
     </div>
 </form>
-<script type="text/javascript">
-    (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-            function() {
-                $('#form-validate').validation();
-            });
-    })(jQuery);
-</script>
diff --git a/app/code/Magento/Customer/view/frontend/form/edit.phtml b/app/code/Magento/Customer/view/frontend/form/edit.phtml
index fcb8d125af6f68eb171e74059a87c69003762ce7..3340b7b59ca1627a8b402a6826210e4053b97462 100755
--- a/app/code/Magento/Customer/view/frontend/form/edit.phtml
+++ b/app/code/Magento/Customer/view/frontend/form/edit.phtml
@@ -86,46 +86,36 @@
 </form>
 <script type="text/javascript">
     (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-            "<?php echo $this->getViewFileUrl('Magento_Customer::set-password.js') ?>",
-            <?php if ($_dob->isEnabled()): ?>
-            "<?php echo $this->getViewFileUrl('mage/validation/dob-rule.js') ?>",
-            <?php endif ?>
-            function() {
-                $('#change-password').setPassword({
-                    currentPasswordId: '#current-password',
-                    passwordId: '#password',
-                    confirmationId: '#confirmation',
-                    passwordContainer: 'fieldset.fieldset.password',
-                    showOnDefault: <?php echo $this->getChangePassword() ? 'true' : 'false' ?>
-                });
-                var dataForm = $('#form-validate'), ignore;
-                <?php if ($_dob->isEnabled()): ?>
-                ignore = 'input[id$="full"]';
-                <?php endif ?>
-                dataForm.validation({
-                    <?php if ($_dob->isEnabled()): ?>
-                    errorPlacement: function(error, element) {
-                        if (element.prop('id').search('full') !== -1) {
-                            var dobElement = $(element).parents('.customer-dob'),
-                                errorClass = error.prop('class');
-                            error.insertAfter(element.parent());
-                            dobElement.find('.validate-custom').addClass(errorClass)
-                                .after('<div class="' + errorClass + '"></div>');
-                        }
-                        else {
-                            error.insertAfter(element);
-                        }
-                    },
-                    ignore: ':hidden:not(' + ignore + ')'
-                    <?php else: ?>
-                    ignore: ignore ? ':hidden:not(' + ignore + ')' : ':hidden'
-                    <?php endif ?>
-                });
-            });
+        $('#change-password').mage('setPassword', {
+            'currentPasswordId': '#current-password',
+            'passwordId': '#password',
+            'confirmationId': '#confirmation',
+            'passwordContainer': 'fieldset.fieldset.password',
+            'showOnDefault': <?php echo $this->getChangePassword() ? 'true' : 'false' ?>
+        });
+
+        var dataForm = $('#form-validate'), ignore;
+        <?php if ($_dob->isEnabled()): ?>
+        ignore = 'input[id$="full"]';
+        <?php endif ?>
+        dataForm.mage('validation', {
+        <?php if ($_dob->isEnabled()): ?>
+            errorPlacement: function(error, element) {
+                if (element.prop('id').search('full') !== -1) {
+                    var dobElement = $(element).parents('.customer-dob'),
+                        errorClass = error.prop('class');
+                    error.insertAfter(element.parent());
+                    dobElement.find('.validate-custom').addClass(errorClass)
+                        .after('<div class="' + errorClass + '"></div>');
+                }
+                else {
+                    error.insertAfter(element);
+                }
+            },
+            ignore: ':hidden:not(' + ignore + ')'
+        <?php else: ?>
+            ignore: ignore ? ':hidden:not(' + ignore + ')' : ':hidden'
+        <?php endif ?>
+        });
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Customer/view/frontend/form/forgotpassword.phtml b/app/code/Magento/Customer/view/frontend/form/forgotpassword.phtml
index 81c847ef9d7da0e4a643e55c58f9d943550bc778..6f7af7d6694dfefc043aac86b3aa74e1d85fec2d 100644
--- a/app/code/Magento/Customer/view/frontend/form/forgotpassword.phtml
+++ b/app/code/Magento/Customer/view/frontend/form/forgotpassword.phtml
@@ -23,7 +23,11 @@
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
 ?>
-<form class="form password forget" action="<?php echo $this->getUrl('*/*/forgotpasswordpost') ?>" method="post" id="form-validate">
+<form class="form password forget"
+      action="<?php echo $this->getUrl('*/*/forgotpasswordpost') ?>"
+      method="post"
+      id="form-validate"
+      data-mage-init='{"validation":{}}'>
     <fieldset class="fieldset" data-hasrequired="<?php echo __('* Required Fields') ?>">
         <p class="field note"><?php echo __('Please enter your email address below. You will receive a link to reset your password.'); ?></p>
         <div class="field email required">
@@ -43,15 +47,3 @@
         </div>
     </div>
 </form>
-<script type="text/javascript">
-    (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-            function() {
-                $('#form-validate').validation();
-            });
-    })(jQuery);
-</script>
diff --git a/app/code/Magento/Customer/view/frontend/form/login.phtml b/app/code/Magento/Customer/view/frontend/form/login.phtml
index 3034b236060bcaa583054b83dae26dd384186980..6b366317814f0f9c4def81cdea5505b64b071ccd 100644
--- a/app/code/Magento/Customer/view/frontend/form/login.phtml
+++ b/app/code/Magento/Customer/view/frontend/form/login.phtml
@@ -36,7 +36,11 @@
 <div class="block customer login">
     <div class="title"><strong><?php echo __('Registered Customers') ?></strong></div>
     <div class="content">
-        <form class="form login" action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
+        <form class="form login"
+              action="<?php echo $this->getPostActionUrl() ?>"
+              method="post"
+              id="login-form"
+              data-mage-init='{"validation":{}}'>
             <?php echo $this->getBlockHtml('formkey'); ?>
             <fieldset class="fieldset login" data-hasrequired="<?php echo __('* Required Fields') ?>">
                 <p class="field note"><?php echo __('If you have an account with us, log in using your email address.') ?></p>
@@ -60,16 +64,4 @@
             </fieldset>
         </form>
     </div>
-    <script type="text/javascript">
-        (function($) {
-            head.js(
-                "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-                "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-                "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-                function() {
-                    $('#login-form').validation();
-                });
-        })(jQuery);
-    </script>
 </div>
diff --git a/app/code/Magento/Customer/view/frontend/form/register.phtml b/app/code/Magento/Customer/view/frontend/form/register.phtml
index 1a3510f3447d2576105b74b63138b1c4a62b70d5..baff908e24bbf517fc3c918d0c41efa9900d31f5 100644
--- a/app/code/Magento/Customer/view/frontend/form/register.phtml
+++ b/app/code/Magento/Customer/view/frontend/form/register.phtml
@@ -175,53 +175,40 @@
 </form>
 <script type="text/javascript">
     (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-            <?php if ($this->getShowAddressFields()): ?>
-            "<?php echo $this->getViewFileUrl('Magento_Checkout::js/region-updater.js') ?>",
-            <?php endif ?>
-            <?php if ($_dob->isEnabled()): ?>
-            "<?php echo $this->getViewFileUrl('mage/validation/dob-rule.js') ?>",
-            <?php endif ?>
-            function() {
-                var dataForm = $('#form-validate'), ignore;
-                <?php if ($_dob->isEnabled()): ?>
-                ignore = 'input[id$="full"]';
-                <?php endif ?>
-                dataForm.validation({
-                    <?php if ($_dob->isEnabled()): ?>
-                    errorPlacement: function(error, element) {
-                        if (element.prop('id').search('full') !== -1) {
-                            var dobElement = $(element).parents('.customer.dob'),
-                                errorClass = error.prop('class');
-                            error.insertAfter(element.parent());
-                            dobElement.find('.validate-custom').addClass(errorClass)
-                                .after('<div class="' + errorClass + '"></div>');
-                        }
-                        else {
-                            error.insertAfter(element);
-                        }
-                    },
-                    ignore: ':hidden:not(' + ignore + ')'
-                    <?php else: ?>
-                    ignore: ignore ? ':hidden:not(' + ignore + ')' : ':hidden'
-                    <?php endif ?>
-                }).find('input:text').attr('autocomplete', 'off');
-                <?php if ($this->getShowAddressFields()): ?>
-                $('#country').regionUpdater({
-                    optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
-                    regionListId: '#region_id',
-                    regionInputId: '#region',
-                    postcodeId: '#zip',
-                    form: dataForm,
-                    regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
-                    defaultRegion: "<?php echo $this->getFormData()->getRegionId() ?>",
-                    countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
-                });
-                <?php endif; ?>
-            });
+        var dataForm = $('#form-validate'), ignore;
+        <?php if ($_dob->isEnabled()): ?>
+            ignore = 'input[id$="full"]';
+        <?php endif ?>
+        dataForm.mage('validation', {
+        <?php if ($_dob->isEnabled()): ?>
+            errorPlacement: function(error, element) {
+                if (element.prop('id').search('full') !== -1) {
+                    var dobElement = $(element).parents('.customer-dob'),
+                        errorClass = error.prop('class');
+                    error.insertAfter(element.parent());
+                    dobElement.find('.validate-custom').addClass(errorClass)
+                        .after('<div class="' + errorClass + '"></div>');
+                }
+                else {
+                    error.insertAfter(element);
+                }
+            },
+            ignore: ':hidden:not(' + ignore + ')'
+        <?php else: ?>
+            ignore: ignore ? ':hidden:not(' + ignore + ')' : ':hidden'
+        <?php endif ?>
+        }).find('input:text').attr('autocomplete', 'off');
+        <?php if ($this->getShowAddressFields()): ?>
+        $('#country').mage('regionUpdater', {
+            optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
+            regionListId: '#region_id',
+            regionInputId: '#region',
+            postcodeId: '#zip',
+            form: dataForm,
+            regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
+            defaultRegion: "<?php echo $this->getFormData()->getRegionId() ?>",
+            countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
+        });
+        <?php endif; ?>
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Customer/view/frontend/form/resetforgottenpassword.phtml b/app/code/Magento/Customer/view/frontend/form/resetforgottenpassword.phtml
index 362f9b39be30829f2602cfdc74cefb72ccee744a..bfb1f4d97083abea4f1b706a69928c501e89f2c4 100644
--- a/app/code/Magento/Customer/view/frontend/form/resetforgottenpassword.phtml
+++ b/app/code/Magento/Customer/view/frontend/form/resetforgottenpassword.phtml
@@ -25,7 +25,11 @@
 
 /** @var \Magento\Customer\Block\Account\Resetpassword $this */
 ?>
-<form action="<?php echo $this->getUrl('*/*/resetpasswordpost', array('_query' => array('id' => $this->getCustomerId(), 'token' => $this->getResetPasswordLinkToken()))); ?>" method="post" id="form-validate" class="form password reset">
+<form action="<?php echo $this->getUrl('*/*/resetpasswordpost', array('_query' => array('id' => $this->getCustomerId(), 'token' => $this->getResetPasswordLinkToken()))); ?>"
+      method="post"
+      id="form-validate"
+      class="form password reset"
+      data-mage-init='{"validation":{}}'>
     <fieldset class="fieldset" data-hasrequired="<?php echo __('* Required Fields'); ?>">
         <div class="field password required">
             <label class="label" for="password"><span><?php echo __('New Password'); ?></span></label>
@@ -46,15 +50,3 @@
         </div>
     </div>
 </form>
-<script type="text/javascript">
-    (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-            function() {
-                $('#form-validate').validation();
-            });
-    })(jQuery);
-</script>
diff --git a/app/code/Magento/Customer/view/frontend/js/components.phtml b/app/code/Magento/Customer/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..8e541cf9582f2e832d3bf5db65ba7110e49a3799
--- /dev/null
+++ b/app/code/Magento/Customer/view/frontend/js/components.phtml
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            validation: [
+                '<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>',
+                '<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>',
+                '<?php echo $this->getViewFileUrl('mage/validation.js')?>',
+                '<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>',
+                '<?php echo $this->getViewFileUrl('mage/validation/dob-rule.js') ?>'
+            ],
+            regionUpdater: [
+                '<?php echo $this->getViewFileUrl('Magento_Checkout::js/region-updater.js') ?>'
+            ],
+            requireCookie: [
+                '<?php echo $this->getViewFileUrl('Magento_Core::js/require-cookie.js') ?>'
+            ],
+            address: [
+                '<?php echo $this->getViewFileUrl('Magento_Customer::address.js') ?>'
+            ],
+            setPassword: [
+                '<?php echo $this->getViewFileUrl('Magento_Customer::set-password.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_create.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_create.xml
index 4fc1e6530559205968758b4e99712090558c8429..ab02ec14615f2f374b1e5c02952db466db6e3047 100644
--- a/app/code/Magento/Customer/view/frontend/layout/customer_account_create.xml
+++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_create.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="customer_account_create_head_components" template="Magento_Customer::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="root">
         <action method="setTemplate">
             <argument name="template" xsi:type="string">1column.phtml</argument>
diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_edit.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_edit.xml
index 03d42c7ed9704673207f5b183e7963a2f9555404..2b438cacc139b0d8af35b2656d64a9d5eee62690 100644
--- a/app/code/Magento/Customer/view/frontend/layout/customer_account_edit.xml
+++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_edit.xml
@@ -25,6 +25,9 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <update handle="customer_account"/>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="customer_account_edit_head_components" template="Magento_Customer::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="page.main.title">
         <action method="setPageTitle">
             <argument translate="true" name="title" xsi:type="string">Edit Account Information</argument>
diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_address_form.xml b/app/code/Magento/Customer/view/frontend/layout/customer_address_form.xml
index 2bf65f6a457077fb4c2db0ac02369710e624c037..376bf9e19baa90a74bbf5f2cb55da083d0cfdd12 100644
--- a/app/code/Magento/Customer/view/frontend/layout/customer_address_form.xml
+++ b/app/code/Magento/Customer/view/frontend/layout/customer_address_form.xml
@@ -25,6 +25,9 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <update handle="customer_account"/>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="customer_page_head_components" template="Magento_Customer::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="customer-account-navigation-address-link">
         <arguments>
             <argument name="is_highlighted" xsi:type="boolean">true</argument>
diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_address_index.xml b/app/code/Magento/Customer/view/frontend/layout/customer_address_index.xml
index e64f69c8d1352181ca8e3d683ca0770415e1410d..8630b72b23f70e2b9124f7c8d4cfa142c3730d1e 100644
--- a/app/code/Magento/Customer/view/frontend/layout/customer_address_index.xml
+++ b/app/code/Magento/Customer/view/frontend/layout/customer_address_index.xml
@@ -25,6 +25,9 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <update handle="customer_account"/>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="customer_address_head_components" template="Magento_Customer::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="page.main.title">
         <block class="Magento\Customer\Block\Address\Book" name="address.book.button" template="address/button.phtml" cacheable="false" />
     </referenceBlock>
diff --git a/app/code/Magento/Customer/view/frontend/set-password.js b/app/code/Magento/Customer/view/frontend/set-password.js
index aebc51c5140bef9baa4c97c69f76ab99e6eee4b4..0605a0fd3084a7f722bed856e7634c89a0fae68e 100644
--- a/app/code/Magento/Customer/view/frontend/set-password.js
+++ b/app/code/Magento/Customer/view/frontend/set-password.js
@@ -25,6 +25,9 @@
 /*jshint browser:true jquery:true expr:true*/
 (function ($) {
     $.widget('mage.setPassword', {
+        options: {
+        },
+
         _create: function() {
             this.element.on('change', $.proxy(function(event) {
                 $(event.target).is(':checked') ? this._showPassword() : this._hidePassword();
diff --git a/app/code/Magento/Downloadable/Block/Catalog/Product/Links.php b/app/code/Magento/Downloadable/Block/Catalog/Product/Links.php
index bc059bafa5d91315c7620da558f8a13563097369..0a970bef5e506817c27a83c3efd012e281dfe783 100644
--- a/app/code/Magento/Downloadable/Block/Catalog/Product/Links.php
+++ b/app/code/Magento/Downloadable/Block/Catalog/Product/Links.php
@@ -25,8 +25,10 @@
  */
 namespace Magento\Downloadable\Block\Catalog\Product;
 
+use Magento\Catalog\Pricing\Price\FinalPrice;
+use Magento\Catalog\Pricing\Price\RegularPrice;
 use Magento\Downloadable\Model\Link;
-use Magento\Customer\Controller\RegistryConstants;
+use Magento\Downloadable\Pricing\Price\LinkPrice;
 
 /**
  * Downloadable Product Links part block
@@ -34,11 +36,6 @@ use Magento\Customer\Controller\RegistryConstants;
  */
 class Links extends \Magento\Catalog\Block\Product\AbstractProduct
 {
-    /**
-     * @var \Magento\Tax\Model\Calculation
-     */
-    protected $calculationModel;
-
     /**
      * @var \Magento\Framework\Json\EncoderInterface
      */
@@ -56,30 +53,21 @@ class Links extends \Magento\Catalog\Block\Product\AbstractProduct
 
     /**
      * @param \Magento\Catalog\Block\Product\Context $context
-     * @param \Magento\Tax\Model\Calculation $calculationModel
-     * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
      * @param \Magento\Core\Helper\Data $coreData
      * @param \Magento\Customer\Service\V1\CustomerAccountServiceInterface $accountService
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
-        \Magento\Tax\Model\Calculation $calculationModel,
-        \Magento\Framework\Json\EncoderInterface $jsonEncoder,
         \Magento\Core\Helper\Data $coreData,
         \Magento\Customer\Service\V1\CustomerAccountServiceInterface $accountService,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
-        $this->calculationModel = $calculationModel;
-        $this->jsonEncoder = $jsonEncoder;
         $this->coreData = $coreData;
         $this->accountService = $accountService;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
         $this->_isScopePrivate = true;
     }
@@ -118,48 +106,6 @@ class Links extends \Magento\Catalog\Block\Product\AbstractProduct
         return $this->getProduct()->getTypeInstance()->getLinks($this->getProduct());
     }
 
-    /**
-     * @param Link $link
-     * @return string
-     */
-    public function getFormattedLinkPrice($link)
-    {
-        $price = $link->getPrice();
-        $store = $this->getProduct()->getStore();
-
-        if (0 == $price) {
-            return '';
-        }
-
-        if (!$this->calculationModel->getCustomerData()->getId()
-            && $this->_coreRegistry->registry(RegistryConstants::CURRENT_CUSTOMER_ID)
-        ) {
-            $customer = $this->accountService
-                ->getCustomer($this->_coreRegistry->registry(RegistryConstants::CURRENT_CUSTOMER_ID));
-            $this->calculationModel->setCustomerData($customer);
-        }
-
-        $taxHelper = $this->_taxData;
-        $coreHelper = $this->coreData;
-        $_priceInclTax = $taxHelper->getPrice($link->getProduct(), $price, true);
-        $_priceExclTax = $taxHelper->getPrice($link->getProduct(), $price);
-
-        $priceStr = '<span class="price-notice">+';
-        if ($taxHelper->displayPriceIncludingTax()) {
-            $priceStr .= $coreHelper->currencyByStore($_priceInclTax, $store);
-        } elseif ($taxHelper->displayPriceExcludingTax()) {
-            $priceStr .= $coreHelper->currencyByStore($_priceExclTax, $store);
-        } elseif ($taxHelper->displayBothPrices()) {
-            $priceStr .= $coreHelper->currencyByStore($_priceExclTax, $store);
-            if ($_priceInclTax != $_priceExclTax) {
-                $priceStr .= ' (+' . $coreHelper->currencyByStore($_priceInclTax, $store) . ' ' . __('Incl. Tax') . ')';
-            }
-        }
-        $priceStr .= '</span>';
-
-        return $priceStr;
-    }
-
     /**
      * Returns price converted to current currency rate
      *
@@ -177,14 +123,41 @@ class Links extends \Magento\Catalog\Block\Product\AbstractProduct
      */
     public function getJsonConfig()
     {
-        $config = array();
+        $priceInfo = $this->getProduct()->getPriceInfo();
+        $finalPrice = $priceInfo->getPrice(FinalPrice::PRICE_CODE);
+        $regularPrice = $priceInfo->getPrice(RegularPrice::PRICE_CODE);
+        $config = [
+            'price' => $this->coreData->currency(
+                $finalPrice->getAmount()->getValue(),
+                false,
+                false
+            ),
+            'oldPrice' => $this->coreData->currency(
+                $regularPrice->getValue(),
+                false,
+                false
+            )
+        ];
+        $config['links'] = $this->getLinksConfig();
 
-        $priceModel = $this->getProduct()->getPriceInfo()->getPrice('final_price');
+        return json_encode($config);
+    }
 
+    /**
+     * Get links price config
+     *
+     * @return array
+     */
+    protected function getLinksConfig()
+    {
+        $finalPrice = $this->getProduct()->getPriceInfo()->getPrice(FinalPrice::PRICE_CODE);
+        $linksConfig = [];
         foreach ($this->getLinks() as $link) {
-            $amount = $priceModel->getCustomAmount($link->getPrice());
-            $config[$link->getId()] = [
-                'price' => $this->coreData->currency($link->getPrice(), false, false),
+            $amount = $finalPrice->getCustomAmount($link->getPrice());
+            $price = $this->coreData->currency($link->getPrice(), false, false);
+            $linksConfig[$link->getId()] = [
+                'price' => $price,
+                'oldPrice' => $price,
                 'inclTaxPrice' => $this->coreData->currency(
                     $amount->getValue(),
                     false,
@@ -197,15 +170,14 @@ class Links extends \Magento\Catalog\Block\Product\AbstractProduct
                 )
             ];
         }
-
-        return $this->jsonEncoder->encode($config);
+        return $linksConfig;
     }
 
     /**
      * @param Link $link
      * @return string
      */
-    public function getLinkSamlpeUrl($link)
+    public function getLinkSampleUrl($link)
     {
         $store = $this->getProduct()->getStore();
         return $store->getUrl('downloadable/download/linkSample', array('link_id' => $link->getId()));
@@ -290,6 +262,6 @@ class Links extends \Magento\Catalog\Block\Product\AbstractProduct
      */
     protected function getPriceType()
     {
-        return $this->getProduct()->getPriceInfo()->getPrice('link_price');
+        return $this->getProduct()->getPriceInfo()->getPrice(LinkPrice::PRICE_CODE);
     }
 }
diff --git a/app/code/Magento/Downloadable/Pricing/Price/LinkPrice.php b/app/code/Magento/Downloadable/Pricing/Price/LinkPrice.php
index bc16691f5cf05cc19783c2e8c5a1b088c06b21c9..1088146f415b94e150f04ab12150fee475f34df1 100644
--- a/app/code/Magento/Downloadable/Pricing/Price/LinkPrice.php
+++ b/app/code/Magento/Downloadable/Pricing/Price/LinkPrice.php
@@ -35,9 +35,9 @@ use Magento\Downloadable\Model\Link;
 class LinkPrice extends RegularPrice implements LinkPriceInterface
 {
     /**
-     * @var string
+     * Default price type
      */
-    protected $priceType = self::PRICE_TYPE;
+    const PRICE_CODE = 'link_price';
 
     /**
      * @param Link $link
diff --git a/app/code/Magento/Downloadable/Pricing/Price/LinkPriceInterface.php b/app/code/Magento/Downloadable/Pricing/Price/LinkPriceInterface.php
index b86b4b84f39f60e92dedaea66fd834bd36d745c0..64bed2d36d99df7b876ee538469e180de42c2f99 100644
--- a/app/code/Magento/Downloadable/Pricing/Price/LinkPriceInterface.php
+++ b/app/code/Magento/Downloadable/Pricing/Price/LinkPriceInterface.php
@@ -24,9 +24,7 @@
 
 namespace Magento\Downloadable\Pricing\Price;
 
-use Magento\Catalog\Pricing\Price\RegularPrice;
 use Magento\Downloadable\Model\Link;
-use Magento\Framework\Pricing\Adjustment\Calculator;
 
 /**
  * Class LinkPrice Model
@@ -34,11 +32,6 @@ use Magento\Framework\Pricing\Adjustment\Calculator;
  */
 interface LinkPriceInterface
 {
-    /**
-     * Default price type
-     */
-    const PRICE_TYPE = 'link_price';
-
     /**
      * @param Link $link
      * @return \Magento\Framework\Pricing\Amount\AmountInterface
diff --git a/app/code/Magento/Downloadable/etc/di.xml b/app/code/Magento/Downloadable/etc/di.xml
index dd90b38bdf404319f8514ab10a7857c723a7f7fe..f2a15bf24b2f54605e9a226a97a5448c748f1293 100644
--- a/app/code/Magento/Downloadable/etc/di.xml
+++ b/app/code/Magento/Downloadable/etc/di.xml
@@ -52,12 +52,25 @@
             </argument>
         </arguments>
     </type>
-    <type name="Magento\Framework\Pricing\PriceComposite">
+    <virtualType name="Magento\Downloadable\Pricing\Price\Pool" type="Magento\Framework\Pricing\Price\Pool">
         <arguments>
-            <argument name="metadata" xsi:type="array">
-                <item name="link_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\Downloadable\Pricing\Price\LinkPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
+            <argument name="prices" xsi:type="array">
+                <item name="link_price" xsi:type="string">Magento\Downloadable\Pricing\Price\LinkPrice</item>
+            </argument>
+            <argument name="target" xsi:type="object">Magento\Catalog\Pricing\Price\Pool</argument>
+        </arguments>
+    </virtualType>
+    <virtualType name="Magento\Downloadable\Pricing\Price\Collection" type="Magento\Framework\Pricing\Price\Collection">
+        <arguments>
+            <argument name="pool" xsi:type="object">Magento\Downloadable\Pricing\Price\Pool</argument>
+        </arguments>
+    </virtualType>
+    <type name="Magento\Framework\Pricing\PriceInfo\Factory">
+        <arguments>
+            <argument name="types" xsi:type="array">
+                <item name="downloadable" xsi:type="array">
+                    <item name="infoClass" xsi:type="string">Magento\Framework\Pricing\PriceInfo\Base</item>
+                    <item name="prices" xsi:type="string">Magento\Downloadable\Pricing\Price\Collection</item>
                 </item>
             </argument>
         </arguments>
diff --git a/app/code/Magento/Downloadable/view/adminhtml/product/composite/fieldset/downloadable.phtml b/app/code/Magento/Downloadable/view/adminhtml/product/composite/fieldset/downloadable.phtml
index f7a0ebedf56c5ad16191fe3cf0fd9484f9410363..042792f40fdfd363bc720937bc82eb3658f36249 100644
--- a/app/code/Magento/Downloadable/view/adminhtml/product/composite/fieldset/downloadable.phtml
+++ b/app/code/Magento/Downloadable/view/adminhtml/product/composite/fieldset/downloadable.phtml
@@ -44,7 +44,7 @@
                     <label for="links_<?php echo $_link->getId() ?>" class="label">
                     <?php echo $this->escapeHtml($_link->getTitle()) ?>
                     <?php if ($_link->getSampleFile() || $_link->getSampleUrl()): ?>
-                        &nbsp;(<a href="<?php echo $this->getLinkSamlpeUrl($_link) ?>" <?php echo $this->getIsOpenInNewWindow()?'onclick="this.target=\'_blank\'"':''; ?>><?php echo __('sample') ?></a>)
+                        &nbsp;(<a href="<?php echo $this->getLinkSampleUrl($_link) ?>" <?php echo $this->getIsOpenInNewWindow()?'onclick="this.target=\'_blank\'"':''; ?>><?php echo __('sample') ?></a>)
                     <?php endif; ?>
                     <?php if ($_linksPurchasedSeparately): ?>
                     <?php echo $this->getFormattedLinkPrice($_link); ?>
diff --git a/app/code/Magento/Downloadable/view/frontend/catalog/product/links.phtml b/app/code/Magento/Downloadable/view/frontend/catalog/product/links.phtml
index 3876174beb55cd41910360260818e918c6515ef0..f64a777e6e2e73537776e375406ad196028db7f4 100644
--- a/app/code/Magento/Downloadable/view/frontend/catalog/product/links.phtml
+++ b/app/code/Magento/Downloadable/view/frontend/catalog/product/links.phtml
@@ -29,7 +29,12 @@
     <?php $_isRequired = $this->getLinkSelectionRequired(); ?>
     <div class="field downloads<?php if ($_isRequired) echo ' required' ?>">
         <label class="label"><span><?php echo $this->getLinksTitle() ?></span></label>
-        <div class="control" id="downloadable-links-list" data-container-for="downloadable-links">
+        <div class="control" id="downloadable-links-list"
+             data-mage-init='{"downloadable":{
+                 "linkElement":"input:checkbox",
+                 "config":<?php echo $this->getJsonConfig() ?>}
+             }'
+             data-container-for="downloadable-links">
             <?php foreach ($_links as $_link): ?>
                 <div class="field choice" data-role="link">
                     <?php if ($_linksPurchasedSeparately): ?>
@@ -43,7 +48,7 @@
                         <span><?php echo $this->escapeHtml($_link->getTitle()); ?></span>
                         <?php if ($_link->getSampleFile() || $_link->getSampleUrl()): ?>
                             <a class="sample link"
-                               href="<?php echo $this->getLinkSamlpeUrl($_link) ?>" <?php echo $this->getIsOpenInNewWindow() ? 'target="_blank"' : ''; ?>>
+                               href="<?php echo $this->getLinkSampleUrl($_link) ?>" <?php echo $this->getIsOpenInNewWindow() ? 'target="_blank"' : ''; ?>>
                                 <?php echo __('sample') ?>
                             </a>
                         <?php endif; ?>
@@ -58,16 +63,4 @@
             <span id="links-advice-container"></span>
         <?php endif;?>
     </div>
-    <script type="text/javascript">
-        //<![CDATA[
-        (function ($) {
-            head.js("<?php echo $this->getViewFileUrl('Magento_Downloadable::downloadable.js') ?>", function () {
-                $('#downloadable-links-list').downloadable({
-                    linkElement: 'input:checkbox',
-                    config: <?php echo $this->getJsonConfig() ?>
-                });
-            });
-        })(jQuery);
-        //]]>
-    </script>
 <?php endif; ?>
diff --git a/app/code/Magento/Downloadable/view/frontend/downloadable.js b/app/code/Magento/Downloadable/view/frontend/downloadable.js
index 9fc9a90e257872dfb05283e12cc84ecfba99d08a..317a1af922e80abffe94ebf4599e755c3b5185a9 100644
--- a/app/code/Magento/Downloadable/view/frontend/downloadable.js
+++ b/app/code/Magento/Downloadable/view/frontend/downloadable.js
@@ -34,16 +34,21 @@
          * @private
          */
         _reloadPrice: function() {
-            var price = 0, inclTaxPrice = 0, exclTaxPrice = 0;
+            var price = 0,
+                oldPrice = 0,
+                inclTaxPrice = 0,
+                exclTaxPrice = 0;
             this.element.find(this.options.linkElement + ':checked').each($.proxy(function(index, element) {
-                price += this.options.config[$(element).val()].price;
-                inclTaxPrice += this.options.config[$(element).val()].inclTaxPrice;
-                exclTaxPrice += this.options.config[$(element).val()].exclTaxPrice;
+                price += this.options.config.links[$(element).val()].price;
+                oldPrice += this.options.config.links[$(element).val()].oldPrice;
+                inclTaxPrice += this.options.config.links[$(element).val()].inclTaxPrice;
+                exclTaxPrice += this.options.config.links[$(element).val()].exclTaxPrice;
             }, this));
             this.element.trigger('changePrice', {
                 'config': 'config',
                 'price': {
                     'price': price,
+                    'oldPrice': oldPrice,
                     'inclTaxPrice': inclTaxPrice,
                     'exclTaxPrice': exclTaxPrice
                 }
diff --git a/app/design/frontend/Magento/plushe/Magento_Catalog/layout/default.xml b/app/code/Magento/Downloadable/view/frontend/js/components.phtml
similarity index 66%
rename from app/design/frontend/Magento/plushe/Magento_Catalog/layout/default.xml
rename to app/code/Magento/Downloadable/view/frontend/js/components.phtml
index 77689376e96a9b93ad39818efa5b0bd875c8baf2..33df3a2f181552b6f3e31096cb29cdd544563ef0 100644
--- a/app/design/frontend/Magento/plushe/Magento_Catalog/layout/default.xml
+++ b/app/code/Magento/Downloadable/view/frontend/js/components.phtml
@@ -1,5 +1,4 @@
-<?xml version="1.0"?>
-<!--
+<?php
 /**
  * Magento
  *
@@ -19,12 +18,23 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    design
+ * @package     base_default
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/Core/etc/layout_single.xsd">
-    <referenceBlock name="header.links">
-        <block class="Magento\Catalog\Block\Product\Compare\Link" name="catalog.compare.link" before="-" template="Magento_Catalog::product/compare/link.phtml"/>
-    </referenceBlock>
-</layout>
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            downloadable: [
+                '<?php echo $this->getViewFileUrl('Magento_Downloadable::downloadable.js')?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Downloadable/view/frontend/layout/catalog_product_view_type_downloadable.xml b/app/code/Magento/Downloadable/view/frontend/layout/catalog_product_view_type_downloadable.xml
index 26e3ba19054684e4050acac7bd5c77e3328f7984..dd483a99be695448e8474058fe3a28454f42c1f5 100644
--- a/app/code/Magento/Downloadable/view/frontend/layout/catalog_product_view_type_downloadable.xml
+++ b/app/code/Magento/Downloadable/view/frontend/layout/catalog_product_view_type_downloadable.xml
@@ -41,4 +41,7 @@
             </block>
         </block>
     </referenceBlock>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="downloadable_page_head_components" template="Magento_Downloadable::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template.php
index b2522ed0d1751c5957c8d8c7fb3e9b16c63f0b76..93dacf05dd09113f69b2fade1b7f98d708def0cc 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template.php
@@ -240,6 +240,7 @@ class Template extends \Magento\Backend\App\Action
      */
     public function defaultTemplateAction()
     {
+        $this->_view->loadLayout();
         $template = $this->_initTemplate('id');
         $templateCode = $this->getRequest()->getParam('code');
         try {
diff --git a/app/code/Magento/Email/Model/Template/Filter.php b/app/code/Magento/Email/Model/Template/Filter.php
index 955f788053b9bad54cdbe6b08574f794bbc7ce1e..df2b2711b98e539512f2aac15024560875c82745 100644
--- a/app/code/Magento/Email/Model/Template/Filter.php
+++ b/app/code/Magento/Email/Model/Template/Filter.php
@@ -28,6 +28,7 @@ namespace Magento\Email\Model\Template;
 /**
  * Core Email Template Filter Model
  *
+ * @SuppressWarnings(PHPMD.TooManyFields)
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
 class Filter extends \Magento\Framework\Filter\Template
@@ -124,6 +125,11 @@ class Filter extends \Magento\Framework\Filter\Template
      */
     protected $_appState;
 
+    /**
+     * @var \Magento\Backend\Model\UrlInterface
+     */
+    protected $backendUrlBuilder;
+    
     /**
      * @param \Magento\Framework\Stdlib\String $string
      * @param \Magento\Framework\Logger $logger
@@ -135,8 +141,9 @@ class Filter extends \Magento\Framework\Filter\Template
      * @param \Magento\Framework\View\LayoutInterface $layout
      * @param \Magento\Framework\View\LayoutFactory $layoutFactory
      * @param \Magento\Framework\App\State $appState
+     * @param \Magento\Backend\Model\UrlInterface $backendUrlBuilder
      * @param array $variables
-     * 
+     *
      * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
     public function __construct(
@@ -150,6 +157,7 @@ class Filter extends \Magento\Framework\Filter\Template
         \Magento\Framework\View\LayoutInterface $layout,
         \Magento\Framework\View\LayoutFactory $layoutFactory,
         \Magento\Framework\App\State $appState,
+        \Magento\Backend\Model\UrlInterface $backendUrlBuilder,
         $variables = array()
     ) {
         $this->_escaper = $escaper;
@@ -162,6 +170,7 @@ class Filter extends \Magento\Framework\Filter\Template
         $this->_layout = $layout;
         $this->_layoutFactory = $layoutFactory;
         $this->_appState = $appState;
+        $this->backendUrlBuilder = $backendUrlBuilder;
         parent::__construct($string, $variables);
     }
 
@@ -411,7 +420,22 @@ class Filter extends \Magento\Framework\Filter\Template
             unset($params['url']);
         }
 
-        return $this->_storeManager->getStore($this->getStoreId())->getUrl($path, $params);
+        return $this->getUrl($path, $params);
+    }
+
+    /**
+     * @param string $path
+     * @param array $params
+     * @return string
+     */
+    protected function getUrl($path, $params)
+    {
+        $isBackendStore = \Magento\Store\Model\Store::DEFAULT_STORE_ID === $this->getStoreId()
+            || \Magento\Store\Model\Store::ADMIN_CODE === $this->getStoreId();
+
+        return $isBackendStore
+            ? $this->backendUrlBuilder->getUrl($path, $params)
+            : $this->_storeManager->getStore($this->getStoreId())->getUrl($path, $params);
     }
 
     /**
diff --git a/app/code/Magento/GiftMessage/view/frontend/inline.phtml b/app/code/Magento/GiftMessage/view/frontend/inline.phtml
index 6e591d818f66546104898986b2058f04a2e38131..e511f8c663fbaba3072a988799656b74169bda2d 100644
--- a/app/code/Magento/GiftMessage/view/frontend/inline.phtml
+++ b/app/code/Magento/GiftMessage/view/frontend/inline.phtml
@@ -26,9 +26,7 @@
 <?php $_giftMessage = false; ?>
 <?php if(!$this->getDontDisplayContainer()): ?>
 <script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('Magento_GiftMessage::extra-options.js') ?>", function() {
-        jQuery('#checkoutSteps').extraOptions({additionalUrl: '<?php echo $this->getAdditionalUrl(); ?>'});
-    });
+    jQuery('#checkoutSteps').mage('extraOptions', {additionalUrl: '<?php echo $this->getAdditionalUrl(); ?>'});
 </script>
 <?php endif ?>
 
@@ -38,7 +36,7 @@
         <legend class="legend"><span><?php echo __('Do you have any gift items in your order?'); ?></span></legend><br>
 
         <div class="field choice" id="add-gift-options-<?php echo $this->getEntity()->getId() ?>">
-            <input type="checkbox" name="allow_gift_options" id="allow_gift_options" value="1" data-selector='{"id":"#allow-gift-options-container"}'<?php if($this->getItemsHasMesssages() || $this->getEntityHasMessage()): ?> checked="checked"<?php endif; ?> class="checkbox" />
+            <input type="checkbox" name="allow_gift_options" id="allow_gift_options" data-mage-init='{"giftOptions":{}}' value="1" data-selector='{"id":"#allow-gift-options-container"}'<?php if($this->getItemsHasMesssages() || $this->getEntityHasMessage()): ?> checked="checked"<?php endif; ?> class="checkbox" />
             <label for="allow_gift_options" class="label"><span><?php echo __('Add gift options') ?></span></label>
         </div>
 
@@ -46,7 +44,7 @@
             <dt id="add-gift-options-for-order-<?php echo $this->getEntity()->getId() ?>" class="order">
                 <div class="title"><span><?php echo __('Gift Options for the Entire Order'); ?></span></div>
                 <div class="field choice">
-                    <input type="checkbox" name="allow_gift_messages_for_order" id="allow_gift_options_for_order" value="1" data-selector='{"id":"#allow-gift-options-for-order-container"}'<?php if($this->getEntityHasMessage()): ?> checked="checked"<?php endif; ?> class="checkbox" />
+                    <input type="checkbox" name="allow_gift_messages_for_order" id="allow_gift_options_for_order" data-mage-init='{"giftOptions":{}}' value="1" data-selector='{"id":"#allow-gift-options-for-order-container"}'<?php if($this->getEntityHasMessage()): ?> checked="checked"<?php endif; ?> class="checkbox" />
                     <label for="allow_gift_options_for_order" class="label"><span><?php echo __('Add gift options for the Entire Order') ?></span></label>
                 </div>
             </dt>
@@ -90,7 +88,7 @@
             <dt id="add-gift-options-for-items-<?php echo $this->getEntity()->getId() ?>" class="individual">
                 <div class="title"><span><?php echo __('Gift Options for Individual Items'); ?></span></div>
                 <div class="field choice">
-                    <input type="checkbox" name="allow_gift_options_for_items" id="allow_gift_options_for_items" value="1" data-selector='{"id":"#allow-gift-options-for-items-container"}'<?php if($this->getItemsHasMesssages()): ?> checked="checked"<?php endif; ?> class="checkbox" />
+                    <input type="checkbox" name="allow_gift_options_for_items" id="allow_gift_options_for_items" data-mage-init='{"giftOptions":{}}' value="1" data-selector='{"id":"#allow-gift-options-for-items-container"}'<?php if($this->getItemsHasMesssages()): ?> checked="checked"<?php endif; ?> class="checkbox" />
                     <label for="allow_gift_options_for_items" class="label"><span><?php echo __('Add gift options for Individual Items') ?></span></label>
                 </div>
             </dt>
@@ -154,13 +152,6 @@
             <dt class="extra-options-container" id="extra-options-container-<?php echo $this->getEntity()->getId() ?>"></dt>
         </dl>
     </fieldset>
-    <script type="text/javascript">
-        head.js("<?php echo $this->getViewFileUrl('Magento_GiftMessage::gift-options.js')?>", function() {
-            jQuery('#allow_gift_options')
-                .add('#allow_gift_options_for_order')
-                .add('#allow_gift_options_for_items').giftOptions();
-        });
-    </script>
 <?php break; ?>
 
 <?php case 'multishipping_address': ?>
@@ -168,7 +159,7 @@
         <legend class="legend"><span><?php echo __('Do you have any gift items in your order?'); ?></span></legend><br>
 
         <div class="field choice" id="add-gift-options-<?php echo $this->getEntity()->getId() ?>">
-            <input type="checkbox" name="allow_gift_options_<?php echo $this->getEntity()->getId() ?>" id="allow_gift_options_<?php echo $this->getEntity()->getId() ?>" value="1" data-selector='{"id":"#allow-gift-options-container-<?php echo $this->getEntity()->getId() ?>"}'<?php if($this->getItemsHasMesssages() || $this->getEntityHasMessage()): ?> checked="checked"<?php endif; ?> class="checkbox" />
+            <input type="checkbox" name="allow_gift_options_<?php echo $this->getEntity()->getId() ?>" id="allow_gift_options_<?php echo $this->getEntity()->getId() ?>" data-mage-init='{"giftOptions":{}}' value="1" data-selector='{"id":"#allow-gift-options-container-<?php echo $this->getEntity()->getId() ?>"}'<?php if($this->getItemsHasMesssages() || $this->getEntityHasMessage()): ?> checked="checked"<?php endif; ?> class="checkbox" />
             <label for="allow_gift_options_<?php echo $this->getEntity()->getId() ?>" class="label"><span><?php echo __('Add gift options') ?></span></label>
         </div>
 
@@ -176,7 +167,7 @@
             <dt id="add-gift-options-for-order-<?php echo $this->getEntity()->getId() ?>" class="order">
                 <div class="title"><span><?php echo __('Gift Options for this address.'); ?></span></div>
                 <div class="field choice">
-                    <input type="checkbox" name="allow_gift_options_for_order_<?php echo $this->getEntity()->getId() ?>" id="allow_gift_options_for_order_<?php echo $this->getEntity()->getId() ?>" value="1" data-selector='{"id":"#allow-gift-options-for-order-container-<?php echo $this->getEntity()->getId() ?>"}'<?php if($this->getEntityHasMessage()): ?> checked="checked"<?php endif; ?> class="checkbox" />
+                    <input type="checkbox" name="allow_gift_options_for_order_<?php echo $this->getEntity()->getId() ?>" id="allow_gift_options_for_order_<?php echo $this->getEntity()->getId() ?>" data-mage-init='{"giftOptions":{}}' value="1" data-selector='{"id":"#allow-gift-options-for-order-container-<?php echo $this->getEntity()->getId() ?>"}'<?php if($this->getEntityHasMessage()): ?> checked="checked"<?php endif; ?> class="checkbox" />
                     <label for="allow_gift_options_for_order_<?php echo $this->getEntity()->getId() ?>" class="label"><span><?php echo __('Add gift options for the Entire Order') ?></span></label>
                 </div>
             </dt>
@@ -218,7 +209,7 @@
             <dt id="add-gift-options-for-items-<?php echo $this->getEntity()->getId() ?>" class="individual">
                 <div class="title"><span><?php echo __('Gift Options for Individual Items'); ?></span></div>
                 <div class="field choice">
-                    <input type="checkbox" name="allow_gift_options_for_items_<?php echo $this->getEntity()->getId() ?>" id="allow_gift_options_for_items_<?php echo $this->getEntity()->getId() ?>" value="1" data-selector='{"id":"#allow-gift-options-for-items-container-<?php echo $this->getEntity()->getId() ?>"}'<?php if($this->getItemsHasMesssages()): ?> checked="checked"<?php endif; ?> class="checkbox" />
+                    <input type="checkbox" name="allow_gift_options_for_items_<?php echo $this->getEntity()->getId() ?>" id="allow_gift_options_for_items_<?php echo $this->getEntity()->getId() ?>" data-mage-init='{"giftOptions":{}}' value="1" data-selector='{"id":"#allow-gift-options-for-items-container-<?php echo $this->getEntity()->getId() ?>"}'<?php if($this->getItemsHasMesssages()): ?> checked="checked"<?php endif; ?> class="checkbox" />
                     <label for="allow_gift_options_for_items_<?php echo $this->getEntity()->getId() ?>" class="label"><span><?php echo __('Add gift options for Individual Items') ?></span></label>
                 </div>
             </dt>
@@ -282,26 +273,10 @@
             <dt class="extra-options-container" id="extra-options-container-<?php echo $this->getEntity()->getId() ?>"></dt>
         </dl>
     </fieldset>
-    <script type="text/javascript">
-        (function($) {
-            $(function() {
-                head.js("<?php echo $this->getViewFileUrl('Magento_GiftMessage::gift-options.js')?>", function() {
-                    $('#allow_gift_options_<?php echo $this->getEntity()->getId() ?>')
-                        .add('#allow_gift_options_for_order_<?php echo $this->getEntity()->getId() ?>')
-                        .add('#allow_gift_options_for_items_<?php echo $this->getEntity()->getId() ?>').giftOptions();
-                });
-            });
-        })(jQuery);
-    </script>
     <?php break; ?>
 <?php endswitch ?>
 <?php if ($_giftMessage): ?>
 <script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-        "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>", function() {
-            jQuery("#shipping_method_form").validation();
-        });
+    jQuery('#shipping_method_form').mage('validation');
 </script>
 <?php endif; ?>
diff --git a/app/code/Magento/GroupedProduct/Block/Adminhtml/Product/Composite/Fieldset/Grouped.php b/app/code/Magento/GroupedProduct/Block/Adminhtml/Product/Composite/Fieldset/Grouped.php
index 09db996c44e20e3f37e54a44a43d2ef9aa7a7638..7363505f28dc62e16cda13133771171aaaea52f2 100644
--- a/app/code/Magento/GroupedProduct/Block/Adminhtml/Product/Composite/Fieldset/Grouped.php
+++ b/app/code/Magento/GroupedProduct/Block/Adminhtml/Product/Composite/Fieldset/Grouped.php
@@ -64,7 +64,6 @@ class Grouped extends \Magento\GroupedProduct\Block\Product\View\Type\Grouped
      * @param \Magento\Core\Helper\Data $coreHelper
      * @param CustomerAccountService $customerAccountService
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
@@ -72,8 +71,7 @@ class Grouped extends \Magento\GroupedProduct\Block\Product\View\Type\Grouped
         \Magento\Catalog\Helper\Product\Price $priceHelper,
         \Magento\Core\Helper\Data $coreHelper,
         CustomerAccountService $customerAccountService,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_customerAccountService = $customerAccountService;
         $this->_coreHelper = $coreHelper;
@@ -81,8 +79,7 @@ class Grouped extends \Magento\GroupedProduct\Block\Product\View\Type\Grouped
         parent::__construct(
             $context,
             $arrayUtils,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/GroupedProduct/Block/Product/View/Type/Grouped.php b/app/code/Magento/GroupedProduct/Block/Product/View/Type/Grouped.php
index 85ea6f8ac7c42e16a95add082d3a297d5bcb6d0e..a7e6ab195189d7160680fbc8b3ba7303232305d8 100644
--- a/app/code/Magento/GroupedProduct/Block/Product/View/Type/Grouped.php
+++ b/app/code/Magento/GroupedProduct/Block/Product/View/Type/Grouped.php
@@ -53,30 +53,4 @@ class Grouped extends \Magento\Catalog\Block\Product\View\AbstractView
         }
         return $this;
     }
-
-    /**
-     * Returns product tier price block html
-     *
-     * @param \Magento\Catalog\Model\Product|null $product
-     * @return string
-     */
-    public function getTierPriceHtml($product = null)
-    {
-        if (is_null($product)) {
-            $product = $this->getProduct();
-        }
-        return $this->_getPriceBlock(
-            $product->getTypeId()
-        )->setTemplate(
-            $this->getTierPriceTemplate()
-        )->setProduct(
-            $product
-        )->setListClass(
-            'tier prices grouped items'
-        )->setShowDetailedPrice(
-            false
-        )->setCanDisplayQty(
-            false
-        )->toHtml();
-    }
 }
diff --git a/app/code/Magento/GroupedProduct/Pricing/Price/FinalPrice.php b/app/code/Magento/GroupedProduct/Pricing/Price/FinalPrice.php
index 3479a8470c3fc3fdaf769f0adcdba5d7a2d7569a..2af33e4fc23a4ac6ab37f7997c81313ea2aa4eac 100644
--- a/app/code/Magento/GroupedProduct/Pricing/Price/FinalPrice.php
+++ b/app/code/Magento/GroupedProduct/Pricing/Price/FinalPrice.php
@@ -26,56 +26,25 @@
 
 namespace Magento\GroupedProduct\Pricing\Price;
 
-use Magento\Framework\Pricing\Adjustment\Calculator;
-use Magento\Framework\Pricing\Amount\AmountInterface;
-use Magento\Framework\Pricing\Object\SaleableInterface;
-use Magento\Catalog\Pricing\Price\FinalPriceInterface;
-use Magento\Framework\Pricing\Price\PriceInterface;
+use Magento\Framework\Pricing\Price\AbstractPrice;
+use Magento\Catalog\Model\Product;
 use Magento\GroupedProduct\Model\Product\Type\Grouped;
-use Magento\Catalog\Model\ProductFactory;
 
 /**
  * Final price model
  */
-class FinalPrice implements FinalPriceInterface, PriceInterface
+class FinalPrice extends AbstractPrice
 {
     /**
-     * @var string
+     * Price type final
      */
-    protected $priceType = self::PRICE_TYPE_FINAL;
+    const PRICE_CODE = 'final_price';
 
     /**
-     * @var \Magento\Framework\Pricing\Object\SaleableInterface
-     */
-    protected $salableItem;
-
-    /**
-     * @var \Magento\Framework\Pricing\Adjustment\Calculator
-     */
-    protected $calculator;
-
-    /**
-     * @var SaleableInterface
+     * @var Product
      */
     protected $minProduct;
 
-    /**
-     * @var AmountInterface
-     */
-    protected $amount;
-
-    /**
-     * @param SaleableInterface $salableItem
-     * @param Calculator $calculator
-     */
-    public function __construct(
-        SaleableInterface $salableItem,
-        Calculator $calculator
-    ) {
-        $this->salableItem = $salableItem;
-        $this->calculator = $calculator;
-    }
-
     /**
      * Return minimal product price
      *
@@ -83,48 +52,24 @@ class FinalPrice implements FinalPriceInterface, PriceInterface
      */
     public function getValue()
     {
-        return $this->getMinProduct()->getPriceInfo()
-            ->getPrice(\Magento\Catalog\Pricing\Price\FinalPriceInterface::PRICE_TYPE_FINAL)->getValue();
-    }
-
-    /**
-     * Get price type code
-     *
-     * @return string
-     */
-    public function getPriceType()
-    {
-        return $this->priceType;
-    }
-
-    /**
-     * Get Price Amount object
-     *
-     * @return AmountInterface
-     */
-    public function getAmount()
-    {
-        if (!$this->amount) {
-            $this->amount = $this->calculator->getAmount($this->getValue(), $this->salableItem);
-        }
-        return $this->amount;
+        return $this->getMinProduct()->getPriceInfo()->getPrice(FinalPrice::PRICE_CODE)->getValue();
     }
 
     /**
      * Returns product with minimal price
      *
-     * @return SaleableInterface
+     * @return Product
      */
     public function getMinProduct()
     {
         if (null === $this->minProduct) {
-            $products = $this->salableItem->getTypeInstance()->getAssociatedProducts($this->salableItem);
+            $products = $this->product->getTypeInstance()->getAssociatedProducts($this->product);
             $minPrice = null;
             foreach ($products as $item) {
                 $product = clone $item;
                 $product->setQty(\Magento\Framework\Pricing\PriceInfoInterface::PRODUCT_QUANTITY_DEFAULT);
                 $price = $product->getPriceInfo()
-                    ->getPrice(FinalPriceInterface::PRICE_TYPE_FINAL)
+                    ->getPrice(FinalPrice::PRICE_CODE)
                     ->getValue();
                 if (($price !== false) && ($price <= (is_null($minPrice) ? $price : $minPrice))) {
                     $this->minProduct = $product;
@@ -134,17 +79,4 @@ class FinalPrice implements FinalPriceInterface, PriceInterface
         }
         return $this->minProduct;
     }
-
-    /**
-     * @param float $amount
-     * @param null|string $exclude
-     * @return AmountInterface
-     */
-    public function getCustomAmount($amount = null, $exclude = null)
-    {
-        if ($amount === null) {
-            $amount = $this->getValue();
-        }
-        return $this->calculator->getAmount($amount, $this->salableItem, $exclude);
-    }
 }
diff --git a/app/code/Magento/GroupedProduct/etc/di.xml b/app/code/Magento/GroupedProduct/etc/di.xml
index 55da7c620a6f7fdfa6496fa038d65aeb2d9eed07..fc518ce0a0e36a8c540c799c35ef35fac217f937 100644
--- a/app/code/Magento/GroupedProduct/etc/di.xml
+++ b/app/code/Magento/GroupedProduct/etc/di.xml
@@ -68,12 +68,25 @@
     <type name="Magento\Catalog\Helper\Product\Configuration">
         <plugin name="grouped_options" type="Magento\GroupedProduct\Helper\Product\Configuration\Plugin\Grouped"/>
     </type>
-    <type name="Magento\Framework\Pricing\PriceComposite">
+    <virtualType name="Magento\GroupedProduct\Pricing\Price\Pool" type="Magento\Framework\Pricing\Price\Pool">
         <arguments>
-            <argument name="metadata" xsi:type="array">
-                <item name="grouped_final_price" xsi:type="array">
-                    <item name="class" xsi:type="string">Magento\GroupedProduct\Pricing\Price\FinalPrice</item>
-                    <item name="include_in_base_price" xsi:type="boolean">false</item>
+            <argument name="prices" xsi:type="array">
+                <item name="final_price" xsi:type="string">Magento\GroupedProduct\Pricing\Price\FinalPrice</item>
+            </argument>
+            <argument name="target" xsi:type="object">Magento\Catalog\Pricing\Price\Pool</argument>
+        </arguments>
+    </virtualType>
+    <virtualType name="Magento\GroupedProduct\Pricing\Price\Collection" type="Magento\Framework\Pricing\Price\Collection">
+        <arguments>
+            <argument name="pool" xsi:type="object">Magento\GroupedProduct\Pricing\Price\Pool</argument>
+        </arguments>
+    </virtualType>
+    <type name="Magento\Framework\Pricing\PriceInfo\Factory">
+        <arguments>
+            <argument name="types" xsi:type="array">
+                <item name="grouped" xsi:type="array">
+                    <item name="infoClass" xsi:type="string">Magento\Framework\Pricing\PriceInfo\Base</item>
+                    <item name="prices" xsi:type="string">Magento\GroupedProduct\Pricing\Price\Collection</item>
                 </item>
             </argument>
         </arguments>
diff --git a/app/code/Magento/GroupedProduct/etc/frontend/di.xml b/app/code/Magento/GroupedProduct/etc/frontend/di.xml
deleted file mode 100644
index 906dd09062f1613bc15cdc4120552bb50cd91435..0000000000000000000000000000000000000000
--- a/app/code/Magento/GroupedProduct/etc/frontend/di.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/Magento/Framework/ObjectManager/etc/config.xsd">
-    <type name="Magento\Catalog\Block\Product\AbstractProduct">
-        <arguments>
-            <argument name="priceBlockTypes" xsi:type="array">
-                <item name="grouped" xsi:type="array">
-                    <item name="block" xsi:type="string">Magento\Catalog\Block\Product\Price</item>
-                    <item name="template" xsi:type="string">Magento_GroupedProduct::product/price.phtml</item>
-                </item>
-            </argument>
-        </arguments>
-    </type>
-    <type name="Magento\Catalog\Block\Product\Price\Template">
-        <arguments>
-            <argument name="priceBlockTypes" xsi:type="array">
-                <item name="grouped" xsi:type="array">
-                    <item name="block" xsi:type="string">Magento\Catalog\Block\Product\Price</item>
-                    <item name="template" xsi:type="string">Magento_GroupedProduct::product/price.phtml</item>
-                </item>
-            </argument>
-        </arguments>
-    </type>
-</config>
diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_grouped.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_grouped.xml
index 3d6fd862df613036b2c1e8e34918ab986b24dce5..b28577b44461b2e6e569c59c2f42f7539ccef303 100644
--- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_grouped.xml
+++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_grouped.xml
@@ -31,6 +31,11 @@
                 <argument name="file" xsi:type="string">Magento_GroupedProduct::css/grouped-product.css</argument>
             </arguments>
         </block>
+        <block class="Magento\Theme\Block\Html\Head\Script" name="magento-grouped-product-js">
+            <arguments>
+                <argument name="file" xsi:type="string">Magento_GroupedProduct::js/grouped-product.js</argument>
+            </arguments>
+        </block>
     </referenceBlock>
     <referenceBlock name="product_tabs">
         <block class="Magento\GroupedProduct\Block\Product\Grouped\AssociatedProducts" name="catalog.product.edit.grouped.container" template="product/grouped/container.phtml">
diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/product/grouped/grouped.phtml b/app/code/Magento/GroupedProduct/view/adminhtml/product/grouped/grouped.phtml
index 8fecdc5018d397e683066022d29bd65c18cc7894..90ad3240b85f39d7baf2c29644716c1830ee440e 100644
--- a/app/code/Magento/GroupedProduct/view/adminhtml/product/grouped/grouped.phtml
+++ b/app/code/Magento/GroupedProduct/view/adminhtml/product/grouped/grouped.phtml
@@ -32,7 +32,7 @@ $_gridPopupBlock->setRowClickCallback('function(){}');
 /** @var $_helper \Magento\Core\Helper\Data */
 $_helper = $this->helper('Magento\Core\Helper\Data');
 ?>
-<div id="grouped-product-container">
+<div id="grouped-product-container" data-mage-init='{"groupedProduct":{"gridPopup":"window.<?php echo $_gridPopupBlock->getJsObjectName() ?>"}}'>
     <div class="no-products-message">
         <?php echo __('There are no grouped products.')?>
     </div>
@@ -41,13 +41,4 @@ $_helper = $this->helper('Magento\Core\Helper\Data');
         <?php echo $this->getChildBlock('catalog.product.group.grid.popup.container')->getChildHtml('grid');?>
     </div>
     <button type="button" data-role="add-product">Add Products to Group</button>
-    <script type="text/javascript">
-        jQuery(function($) {
-            head.js("<?php echo $this->getViewFileUrl('Magento_GroupedProduct::js/grouped-product.js') ?>", function() {
-                $('#grouped-product-container').mage('groupedProduct', {
-                    gridPopup: window.<?php echo $_gridPopupBlock->getJsObjectName() ?>
-                });
-            });
-        });
-    </script>
 </div>
diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/product/stock/disabler.phtml b/app/code/Magento/GroupedProduct/view/adminhtml/product/stock/disabler.phtml
index 19728a542db64dd56e6e50eecc4e72c1c56d0a30..e321e94bfa3a1bd16ce34ad56f81d4ae929f49d2 100644
--- a/app/code/Magento/GroupedProduct/view/adminhtml/product/stock/disabler.phtml
+++ b/app/code/Magento/GroupedProduct/view/adminhtml/product/stock/disabler.phtml
@@ -24,7 +24,7 @@
 ?>
 <script type="text/javascript">
 (function($) {
-    $('#product_info_tabs_product-details_content').on('stockbeforedisable', function(e) {
+    $('[data-tab-panel=product-details]').on('stockbeforedisable', function(e) {
         if (e.productType === 'grouped') {
             return false;
         }
diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/catalog_product_prices.xml b/app/code/Magento/GroupedProduct/view/base/layout/catalog_product_prices.xml
similarity index 100%
rename from app/code/Magento/GroupedProduct/view/frontend/layout/catalog_product_prices.xml
rename to app/code/Magento/GroupedProduct/view/base/layout/catalog_product_prices.xml
diff --git a/app/code/Magento/GroupedProduct/view/frontend/product/price/final_price.phtml b/app/code/Magento/GroupedProduct/view/base/product/price/final_price.phtml
similarity index 95%
rename from app/code/Magento/GroupedProduct/view/frontend/product/price/final_price.phtml
rename to app/code/Magento/GroupedProduct/view/base/product/price/final_price.phtml
index b176bb1767882ea4d58f3823e1694816f26d6152..a1f0c46360243e6602f70ffd8ab6cfb8ae47cc9e 100644
--- a/app/code/Magento/GroupedProduct/view/frontend/product/price/final_price.phtml
+++ b/app/code/Magento/GroupedProduct/view/base/product/price/final_price.phtml
@@ -29,7 +29,7 @@
 <?php
 $minProduct = $this->getSaleableItem()
     ->getPriceInfo()
-    ->getPrice('grouped_final_price')
+    ->getPrice(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE)
     ->getMinProduct();
 $amountRender = $this->getRendererPool()
     ->createAmountRender(
diff --git a/app/code/Magento/GroupedProduct/view/frontend/product/view/type/grouped.phtml b/app/code/Magento/GroupedProduct/view/frontend/product/view/type/grouped.phtml
index a4dd31f769677cb802acc6859b9371cccf2211ea..0f7147f635531aa263efd77aeb0b5d1c7948f9e7 100644
--- a/app/code/Magento/GroupedProduct/view/frontend/product/view/type/grouped.phtml
+++ b/app/code/Magento/GroupedProduct/view/frontend/product/view/type/grouped.phtml
@@ -68,7 +68,7 @@
                 <?php echo $this->getProductPrice($_item) ?>
                     <?php echo $this->getProductPriceHtml(
                         $_item,
-                        \Magento\Catalog\Pricing\Price\TierPriceInterface::PRICE_TYPE_TIER
+                        \Magento\Catalog\Pricing\Price\TierPrice::PRICE_CODE
                     ) ?>
                 <?php endif; ?>
             </td>
diff --git a/app/code/Magento/Install/view/install/begin.phtml b/app/code/Magento/Install/view/install/begin.phtml
index f095221c46a7d7e2ca1b73e0a3a76ed262afe9e4..384476dd0f95bea72f1c935ad9bfd9acffcfbfdd 100644
--- a/app/code/Magento/Install/view/install/begin.phtml
+++ b/app/code/Magento/Install/view/install/begin.phtml
@@ -53,9 +53,9 @@
 <script type="text/javascript">
 //<![CDATA[
 (function($) {
-    head.js("<?php echo $this->getViewFileUrl('Magento_Install::js/install.js') ?>", function() {
+    head.js("<?php echo $this->getViewFileUrl('Magento_Install::js/install.js') ?>", head.ready(function () {
         $.mage.install.begin('#agree', '#submitButton');
-    });
+    }));
 })(jQuery);
 //]]>
 </script>
diff --git a/app/code/Magento/Install/view/install/config.phtml b/app/code/Magento/Install/view/install/config.phtml
index fdc41575654ff3cd7be4a2c14dd1ddfb247e5ec5..064537ced8b055ccb07a61e78144ef62517973da 100644
--- a/app/code/Magento/Install/view/install/config.phtml
+++ b/app/code/Magento/Install/view/install/config.phtml
@@ -156,13 +156,15 @@
 </form>
 <script type="text/javascript">
     (function ($) {
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
+        head.js(
+            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
             "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
             "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
             "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('Magento_Install::js/install.js') ?>", function() {
+            "<?php echo $this->getViewFileUrl('Magento_Install::js/install.js') ?>",
+            head.ready(function () {
                 $.mage.install.configureForm('#form-validate', '#use_secure', '#use_secure_options');
-            });
+            }));
     })(jQuery);
 </script>
 <?php else: ?>
@@ -172,11 +174,11 @@
         <span><?php echo __('Continue') ?></span></button>
     <script type="text/javascript">
     (function($) {
-        head.js("<?php echo $this->getViewFileUrl('Magento_Install::js/install.js')?>", function() {
+        head.js("<?php echo $this->getViewFileUrl('Magento_Install::js/install.js')?>", head.ready(function () {
             $.mage.install.configureContinue(
                 '#btn-continue', '<?php echo $this->getUrl('*/*/*', array('_current' => true)) ?>'
             );
-        });
+        }));
     })(jQuery);
     </script>
 </div>
diff --git a/app/code/Magento/Install/view/install/create_admin.phtml b/app/code/Magento/Install/view/install/create_admin.phtml
index 9dd3e615abec372c5030346e656668d012c455b1..e2f4f14f56495baea92c13acb6aedbd19f62bcf0 100644
--- a/app/code/Magento/Install/view/install/create_admin.phtml
+++ b/app/code/Magento/Install/view/install/create_admin.phtml
@@ -115,12 +115,14 @@
 </form>
 <script type="text/javascript">
     (function ($) {
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
+        head.js(
+            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
             "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
             "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
             "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('Magento_Install::js/install.js') ?>", function() {
+            "<?php echo $this->getViewFileUrl('Magento_Install::js/install.js') ?>",
+            head.ready(function () {
                 $.mage.install.createAdmin('#form-validate');
-            });
+            }));
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Install/view/install/locale.phtml b/app/code/Magento/Install/view/install/locale.phtml
index cc34e2e3a52bbcf5158f84c2cd8f9713301bb00a..dcfa4d06023c24c5581f9ae468473506bf57ee46 100644
--- a/app/code/Magento/Install/view/install/locale.phtml
+++ b/app/code/Magento/Install/view/install/locale.phtml
@@ -65,8 +65,8 @@
 </form>
 <script type="text/javascript">
     (function($) {
-        head.js("<?php echo $this->getViewFileUrl('Magento_Install::js/install.js') ?>", function() {
+        head.js("<?php echo $this->getViewFileUrl('Magento_Install::js/install.js') ?>", head.ready(function () {
             $.mage.install.changeLocale('#locale', '<?php echo $this->getChangeUrl();?>');
-        });
+        }));
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Install/view/install/page.phtml b/app/code/Magento/Install/view/install/page.phtml
index bd15bba5a3f9bafb32d6576744b3fb5f3adfc599..09c374cfea4f2369d99f9fe61e23919d0b410dcb 100644
--- a/app/code/Magento/Install/view/install/page.phtml
+++ b/app/code/Magento/Install/view/install/page.phtml
@@ -41,7 +41,7 @@
     <script type="text/javascript" src="<?php echo $this->getViewFileUrl('jquery/jquery.js') ?>"></script>
     <script type="text/javascript" src="<?php echo $this->getViewFileUrl('jquery/jquery-migrate.js') ?>"></script>
     <script type="text/javascript" src="<?php echo $this->getViewFileUrl('jquery/jquery-ui.js') ?>"></script>
-    <script type="text/javascript" src="<?php echo $this->getViewFileUrl('headjs/head.load.min.js') ?>"></script>
+    <script type="text/javascript" src="<?php echo $this->getViewFileUrl('headjs/head.min.js') ?>"></script>
     <script type="text/javascript" src="<?php echo $this->getViewFileUrl('mage/mage.js') ?>"></script>
     <script type="text/javascript" src="<?php echo $this->getViewFileUrl('mage/translate.js') ?>"></script>
 
diff --git a/app/code/Magento/Multishipping/view/frontend/checkout/address/select.phtml b/app/code/Magento/Multishipping/view/frontend/checkout/address/select.phtml
index 83429561c3366b206275db4516f14f3eb96fba49..99af6b47c4798e43ec57848459fe7b5db12811b1 100644
--- a/app/code/Magento/Multishipping/view/frontend/checkout/address/select.phtml
+++ b/app/code/Magento/Multishipping/view/frontend/checkout/address/select.phtml
@@ -50,10 +50,8 @@
     </div>
 </div>
 <script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('Magento_Customer::address.js'); ?>", function() {
-        jQuery('.actions').address({
-            addAddress: "button[role='add-address']",
-            addAddressLocation: '<?php echo $this->getAddNewUrl() ?>'
-        });
+    jQuery('.actions').mage('address', {
+        addAddress: "button[role='add-address']",
+        addAddressLocation: '<?php echo $this->getAddNewUrl() ?>'
     });
 </script>
diff --git a/app/code/Magento/Multishipping/view/frontend/checkout/addresses.phtml b/app/code/Magento/Multishipping/view/frontend/checkout/addresses.phtml
index eb1d010e7314b292570a1a48f0a79eee6da8e557..1906183f93412681bec1ace282b5a8a410c92ada 100644
--- a/app/code/Magento/Multishipping/view/frontend/checkout/addresses.phtml
+++ b/app/code/Magento/Multishipping/view/frontend/checkout/addresses.phtml
@@ -29,7 +29,7 @@
  * @var $this \Magento\Multishipping\Block\Checkout\Addresses
  */
 ?>
-<form id="checkout_multishipping_form" action="<?php echo $this->getPostActionUrl() ?>" method="post" class="multicheckout address form">
+<form id="checkout_multishipping_form" data-mage-init='{"multiShipping":{}, "validation":{}}' action="<?php echo $this->getPostActionUrl() ?>" method="post" class="multicheckout address form">
     <div class="title">
         <strong><?php echo __('Please select a shipping address for applicable items.') ?></strong>
         <button type="button" title="<?php echo __('Enter a New Address') ?>" class="action add" data-role="add-new-address"><span><?php echo __('Enter a New Address') ?></span></button>
@@ -80,16 +80,3 @@
         <button type="submit" title="<?php echo __('Continue to Shipping Information') ?>" class="action continue<?php if ($this->isContinueDisabled()):?> disabled<?php endif; ?>" data-role="can-continue" data-flag="1"<?php if ($this->isContinueDisabled()):?> disabled="disabled"<?php endif; ?>><span><?php echo __('Continue to Shipping Information') ?></span></button>
     </div>
 </form>
-
-<script type="text/javascript">
-    head.js(
-        "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-        "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-        "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-        "<?php echo $this->getViewFileUrl('Magento_Multishipping::js/multi-shipping.js') ?>",
-        function () {
-            jQuery('#checkout_multishipping_form').multiShipping().validation();
-        }
-    );
-</script>
diff --git a/app/code/Magento/Multishipping/view/frontend/checkout/billing.phtml b/app/code/Magento/Multishipping/view/frontend/checkout/billing.phtml
index a84c1ceade9272b6784abfdc1c9defc3b16ca768..42d83d4dff676a15b8ee8a34bfe5f81ec1ce145d 100644
--- a/app/code/Magento/Multishipping/view/frontend/checkout/billing.phtml
+++ b/app/code/Magento/Multishipping/view/frontend/checkout/billing.phtml
@@ -74,24 +74,18 @@
     </div>
 </form>
 <script type="text/javascript">
-    head.js(
-        "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-        "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-        "<?php echo $this->getViewFileUrl('Magento_Checkout::js/payment.js') ?>",
-        function() {
-            jQuery('#multishipping-billing-form').payment({
-                checkoutPrice: <?php echo (float)$this->getQuoteBaseGrandTotal(); ?>
-            }).validation({
-                errorPlacement: function(error, element) {
-                    if (element.attr('data-validate') && element.attr('data-validate').indexOf('validate-cc-ukss') >= 0) {
-                        element.parents('form').find('[data-validation-msg="validate-cc-ukss"]').html(error);
-                    } else {
-                        element.after(error);
-                    }
-                }
-            });
-        });
+    var addtocartForm = jQuery('#multishipping-billing-form');
+    addtocartForm.mage('payment', {
+        checkoutPrice: <?php echo (float)$this->getQuoteBaseGrandTotal(); ?>
+    });
+    addtocartForm.mage('validation', {
+        errorPlacement: function(error, element) {
+            if (element.attr('data-validate') && element.attr('data-validate').indexOf('validate-cc-ukss') >= 0) {
+                 element.parents('form').find('[data-validation-msg="validate-cc-ukss"]').html(error);
+            } else {
+                 element.after(error);
+            }
+        }
+    });
 </script>
 
diff --git a/app/code/Magento/Multishipping/view/frontend/checkout/overview.phtml b/app/code/Magento/Multishipping/view/frontend/checkout/overview.phtml
index 9acb15c2fa0fcdbbb1ca97563b9b564b4ba360af..acb1a130091805c032300e5f37eed533917e144f 100644
--- a/app/code/Magento/Multishipping/view/frontend/checkout/overview.phtml
+++ b/app/code/Magento/Multishipping/view/frontend/checkout/overview.phtml
@@ -24,7 +24,7 @@
  */
 ?>
 <?php /** @var $this \Magento\Multishipping\Block\Checkout\Overview */ ?>
-<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="review-order-form" class="form multicheckout overview">
+<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="review-order-form" data-mage-init='{"orderOverview": {}}' class="form multicheckout overview">
     <div class="block billing">
         <div class="title"><strong><?php echo __('Billing Information') ?></strong></div>
         <div class="box address">
@@ -178,8 +178,3 @@
         </div>
     </div>
 </form>
-<script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('Magento_Checkout::js/overview.js')?>", function() {
-        jQuery('#review-order-form').orderOverview();
-    });
-</script>
diff --git a/app/code/Magento/Multishipping/view/frontend/js/components.phtml b/app/code/Magento/Multishipping/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..a9a5166f891d6eae304610287b5157927b707a91
--- /dev/null
+++ b/app/code/Magento/Multishipping/view/frontend/js/components.phtml
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            multiShipping: [
+                '<?php echo $this->getViewFileUrl('Magento_Multishipping::js/multi-shipping.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Multishipping/view/frontend/layout/multishipping_checkout_addresses.xml b/app/code/Magento/Multishipping/view/frontend/layout/multishipping_checkout_addresses.xml
index d5323e39011d21ed82d0a9dd062df5f738ca07f1..2668fbd06c27669ee009d3859eb69cc03f029f2f 100644
--- a/app/code/Magento/Multishipping/view/frontend/layout/multishipping_checkout_addresses.xml
+++ b/app/code/Magento/Multishipping/view/frontend/layout/multishipping_checkout_addresses.xml
@@ -40,4 +40,7 @@
         </block>
     </referenceContainer>
     <block class="Magento\Framework\View\Element\Template" name="additional.product.info" template="Magento_Core::template.phtml"/>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Template" name="multishipping_checkout_addresses_page_head_components" template="Magento_Multishipping::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Multishipping/view/frontend/layout/multishipping_checkout_billing.xml b/app/code/Magento/Multishipping/view/frontend/layout/multishipping_checkout_billing.xml
index fdea8ae6ebcbdcb9f132b2dd8ddf5473f6d002c7..39c04becb1d7359567b4015804783d97b154d5a2 100644
--- a/app/code/Magento/Multishipping/view/frontend/layout/multishipping_checkout_billing.xml
+++ b/app/code/Magento/Multishipping/view/frontend/layout/multishipping_checkout_billing.xml
@@ -36,4 +36,7 @@
             <container name="payment_methods_after" label="Payment Methods After"/>
         </block>
     </referenceContainer>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="multishipping_checkout_billing_page_head_components" template="Magento_Checkout::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/design/frontend/Magento/plushe/Magento_Catalog/layout/catalog_product_view.xml b/app/code/Magento/Newsletter/view/frontend/js/components.phtml
similarity index 64%
rename from app/design/frontend/Magento/plushe/Magento_Catalog/layout/catalog_product_view.xml
rename to app/code/Magento/Newsletter/view/frontend/js/components.phtml
index 964aa4638fab991310c852ebbfdda1f15170dff9..2787de961cd63a3f981709b67a3814415c829fda 100644
--- a/app/design/frontend/Magento/plushe/Magento_Catalog/layout/catalog_product_view.xml
+++ b/app/code/Magento/Newsletter/view/frontend/js/components.phtml
@@ -1,5 +1,4 @@
-<?xml version="1.0"?>
-<!--
+<?php
 /**
  * Magento
  *
@@ -19,12 +18,23 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    design
+ * @package     base_default
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/Core/etc/layout_single.xsd">
-    <move element="product.info" destination="product.info.main" after="product.tierprices"/>
-    <move element="page.main.title" destination="product.info.main" before="-"/>
-    <move element="product.info.overview" destination="product.info.details" before="-" as="product_overview"/>
-</layout>
+?>
+    <script type="text/javascript">
+        (function($) {
+            "use strict";
+            /**
+             * Declaration of resources needed for defined components
+             */
+            $.mage.component({
+                newsletter: [
+                    '<?php echo $this->getViewFileUrl('Magento_Newsletter::newsletter.js')?>'
+                ]
+            });
+        })(jQuery);
+    </script>
+<?php echo $this->getChildHtml() ?>
\ No newline at end of file
diff --git a/app/code/Magento/Newsletter/view/frontend/layout/default.xml b/app/code/Magento/Newsletter/view/frontend/layout/default.xml
index ec94be2ae870b008859aa7e9b2ecdca903d0ee3a..4fd3f76cafda0cd56cd3304a587c06fd2079fb6a 100644
--- a/app/code/Magento/Newsletter/view/frontend/layout/default.xml
+++ b/app/code/Magento/Newsletter/view/frontend/layout/default.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="newsletter_head_components" template="Magento_Newsletter::js/components.phtml"/>
+    </referenceBlock>
     <referenceContainer name="footer">
         <block class="Magento\Newsletter\Block\Subscribe" name="form.subscribe" as="subscribe" before="-" template="subscribe.phtml"/>
     </referenceContainer>
diff --git a/app/code/Magento/Newsletter/view/frontend/subscribe.phtml b/app/code/Magento/Newsletter/view/frontend/subscribe.phtml
index 72e17c096819d654465efb624c9a4ffd9de4681e..df99b50994ab432243a4aa2bc43ec80505aea9a5 100644
--- a/app/code/Magento/Newsletter/view/frontend/subscribe.phtml
+++ b/app/code/Magento/Newsletter/view/frontend/subscribe.phtml
@@ -32,6 +32,7 @@
                     <div class="control">
                         <input name="email" type="email" id="newsletter"
                                       placeholder="<?php echo __('Enter your email address') ?>"
+                                      data-mage-init='{"newsletter":{"formSelector": "#newsletter-validate-detail", "placeholder": "<?php echo __('Enter your email address') ?>"}}'
                                       data-validate="{required:true, 'validate-email':true}"/>
                     </div>
                 </div>
@@ -44,20 +45,3 @@
         </form>
     </div>
 </div>
-
-<script type="text/javascript">
-    //<![CDATA[
-    (function($) {
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('Magento_Newsletter::newsletter.js')?>", function() {
-                $('#newsletter').newsletter({
-                    formSelector: '#newsletter-validate-detail',
-                    placeholder: '<?php echo __('Enter your email address') ?>'
-                });
-            });
-    })(jQuery);
-    //]]>
-</script>
diff --git a/app/code/Magento/OfflinePayments/view/frontend/form/ccsave.phtml b/app/code/Magento/OfflinePayments/view/frontend/form/ccsave.phtml
index 5f3abdadc9b4b081c063ee1205399821ea11fbce..cf91b1d931023dac8e13dcf1fef871ba98e34ca8 100644
--- a/app/code/Magento/OfflinePayments/view/frontend/form/ccsave.phtml
+++ b/app/code/Magento/OfflinePayments/view/frontend/form/ccsave.phtml
@@ -34,7 +34,9 @@
     <div class="field type required">
         <label for="<?php echo $_code ?>_cc_type" class="label"><span><?php echo __('Credit Card Type') ?></span></label>
         <div class="control">
-            <select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" title="<?php echo __('Credit Card Type') ?>" data-validate='{required:true, "validate-cc-type-select":"#<?php echo $_code ?>_cc_number"}' class="select">
+            <select id="<?php echo $_code ?>_cc_type"
+                    data-mage-init='{"creditCardType":{"creditCardTypeContainer":"#<?php echo $_code ?>_cc_type_ss_div"}}'
+                    name="payment[cc_type]" title="<?php echo __('Credit Card Type') ?>" data-validate='{required:true, "validate-cc-type-select":"#<?php echo $_code ?>_cc_number"}' class="select">
                 <option value=""><?php echo __('--Please Select--') ?></option>
             <?php $_ccType = $this->getInfoData('cc_type') ?>
             <?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
@@ -135,13 +137,6 @@
             </div>
             <div class="adv container" data-validation-msg="validate-cc-ukss">&nbsp;</div>
         </div>
-        <script type="text/javascript">
-            head.js("<?php echo $this->getViewFileUrl('Magento_Payment::cc-type.js')?>", function() {
-                jQuery('#<?php echo $_code ?>_cc_type').creditCardType({
-                    creditCardTypeContainer: '#<?php echo $_code ?>_cc_type_ss_div'
-                });
-            });
-        </script>
     </div>
     <?php endif; ?>
     <?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/PageCache/view/frontend/javascript.phtml b/app/code/Magento/PageCache/view/frontend/javascript.phtml
index dac67a9a75bbff26e164720b405d4ba519831383..5b7fb5be0fb6be091708527ec863e8b042edb039 100644
--- a/app/code/Magento/PageCache/view/frontend/javascript.phtml
+++ b/app/code/Magento/PageCache/view/frontend/javascript.phtml
@@ -26,9 +26,7 @@
 <script type="text/javascript">
     //<![CDATA[
     (function ($) {
-        head.js("<?php echo $this->getViewFileUrl('Magento_PageCache::js/page-cache.js')?>", function () {
-            $('body').pageCache(<?php echo $this->getScriptOptions(); ?>);
-        });
+        $('body').mage('pageCache', <?php echo $this->getScriptOptions(); ?>);
     })(jQuery);
     //]]>
 </script>
\ No newline at end of file
diff --git a/app/code/Magento/Bundle/view/frontend/layout/catalog_category_view.xml b/app/code/Magento/PageCache/view/frontend/js/components.phtml
similarity index 60%
rename from app/code/Magento/Bundle/view/frontend/layout/catalog_category_view.xml
rename to app/code/Magento/PageCache/view/frontend/js/components.phtml
index 83782e0ab43b59eead6289f2ebde367a6305a21c..c4d3f46b193439436cc9c8026e39b1a3f2c3e29d 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/catalog_category_view.xml
+++ b/app/code/Magento/PageCache/view/frontend/js/components.phtml
@@ -1,5 +1,4 @@
-<?xml version="1.0"?>
-<!--
+<?php
 /**
  * Magento
  *
@@ -19,16 +18,26 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    design
+ * @package     base_default
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <referenceBlock name="product_list">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-        </action>
-    </referenceBlock>
-</layout>
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            formKey: [
+                '<?php echo $this->getViewFileUrl('Magento_PageCache::js/form-key.js') ?>'
+            ],
+            pageCache: [
+                '<?php echo $this->getViewFileUrl('Magento_PageCache::js/page-cache.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/PageCache/view/frontend/layout/default.xml b/app/code/Magento/PageCache/view/frontend/layout/default.xml
index f70f74c36365f2e4ce680bb449df3f5a473a4691..d63532d151f196569b68a3f05257e6806b69c0ca 100644
--- a/app/code/Magento/PageCache/view/frontend/layout/default.xml
+++ b/app/code/Magento/PageCache/view/frontend/layout/default.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="pagecache_page_head_components" template="Magento_PageCache::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="head">
         <block class="Magento\Theme\Block\Html\Head\Script" name="magento-pagecache-comments-js" after="jquery-jquery-js">
             <arguments>
diff --git a/app/code/Magento/Payment/Model/Checks/CanUseCheckout.php b/app/code/Magento/Payment/Model/Checks/CanUseCheckout.php
index 3dede9b3bbe224f0fee0757796609c8a36c1e577..890dfa4143f85d83f9dfe07252ecc9e9f9ba3c11 100644
--- a/app/code/Magento/Payment/Model/Checks/CanUseCheckout.php
+++ b/app/code/Magento/Payment/Model/Checks/CanUseCheckout.php
@@ -26,18 +26,17 @@
 namespace Magento\Payment\Model\Checks;
 
 use Magento\Sales\Model\Quote;
-use Magento\Payment\Model\Method\AbstractMethod;
 
 class CanUseCheckout implements SpecificationInterface
 {
     /**
      * Check whether payment method is applicable to quote
      *
-     * @param \Magento\Payment\Model\Method\AbstractMethod $paymentMethod
+     * @param PaymentMethodChecksInterface $paymentMethod
      * @param \Magento\Sales\Model\Quote $quote
      * @return bool
      */
-    public function isApplicable(AbstractMethod $paymentMethod, Quote $quote)
+    public function isApplicable(PaymentMethodChecksInterface $paymentMethod, Quote $quote)
     {
         return $paymentMethod->canUseCheckout();
     }
diff --git a/app/code/Magento/Payment/Model/Checks/CanUseForCountry.php b/app/code/Magento/Payment/Model/Checks/CanUseForCountry.php
index 2ff38a2ad349577e3cb028fbc032e8d762b71e89..75242196b6aaa15faa891cc7ec46fa8c1a72cb87 100644
--- a/app/code/Magento/Payment/Model/Checks/CanUseForCountry.php
+++ b/app/code/Magento/Payment/Model/Checks/CanUseForCountry.php
@@ -26,17 +26,16 @@
 namespace Magento\Payment\Model\Checks;
 
 use Magento\Sales\Model\Quote;
-use Magento\Payment\Model\Method\AbstractMethod;
 
 class CanUseForCountry implements SpecificationInterface
 {
     /**
      * Check whether payment method is applicable to quote
-     * @param \Magento\Payment\Model\Method\AbstractMethod $paymentMethod
+     * @param PaymentMethodChecksInterface $paymentMethod
      * @param \Magento\Sales\Model\Quote $quote
      * @return bool
      */
-    public function isApplicable(AbstractMethod $paymentMethod, Quote $quote)
+    public function isApplicable(PaymentMethodChecksInterface $paymentMethod, Quote $quote)
     {
         return $paymentMethod->canUseForCountry($quote->getBillingAddress()->getCountry());
     }
diff --git a/app/code/Magento/Payment/Model/Checks/CanUseForCurrency.php b/app/code/Magento/Payment/Model/Checks/CanUseForCurrency.php
index 4c3449699c04192f4983f28494100301efeb2139..90bdc8630b12091766ad5ff1bf6514717db1448a 100644
--- a/app/code/Magento/Payment/Model/Checks/CanUseForCurrency.php
+++ b/app/code/Magento/Payment/Model/Checks/CanUseForCurrency.php
@@ -26,7 +26,6 @@
 namespace Magento\Payment\Model\Checks;
 
 use Magento\Sales\Model\Quote;
-use Magento\Payment\Model\Method\AbstractMethod;
 
 class CanUseForCurrency implements SpecificationInterface
 {
@@ -34,11 +33,11 @@ class CanUseForCurrency implements SpecificationInterface
      * Check whether payment method is applicable to quote
      * Purposed to allow use in controllers some logic that was implemented in blocks only before
      *
-     * @param \Magento\Payment\Model\Method\AbstractMethod $paymentMethod
+     * @param PaymentMethodChecksInterface $paymentMethod
      * @param \Magento\Sales\Model\Quote $quote
      * @return bool
      */
-    public function isApplicable(AbstractMethod $paymentMethod, Quote $quote)
+    public function isApplicable(PaymentMethodChecksInterface $paymentMethod, Quote $quote)
     {
         return $paymentMethod->canUseForCurrency($quote->getStore()->getBaseCurrencyCode());
     }
diff --git a/app/code/Magento/Payment/Model/Checks/CanUseInternal.php b/app/code/Magento/Payment/Model/Checks/CanUseInternal.php
index 47f4fa966edae4955f4f492e2ab8f5d235587460..ee149c89a5108d5b0eb6c6f4fe326cf64a60fbcf 100644
--- a/app/code/Magento/Payment/Model/Checks/CanUseInternal.php
+++ b/app/code/Magento/Payment/Model/Checks/CanUseInternal.php
@@ -26,7 +26,6 @@
 namespace Magento\Payment\Model\Checks;
 
 use Magento\Sales\Model\Quote;
-use Magento\Payment\Model\Method\AbstractMethod;
 
 class CanUseInternal implements SpecificationInterface
 {
@@ -34,11 +33,11 @@ class CanUseInternal implements SpecificationInterface
      * Check whether payment method is applicable to quote
      * Purposed to allow use in controllers some logic that was implemented in blocks only before
      *
-     * @param \Magento\Payment\Model\Method\AbstractMethod $paymentMethod
+     * @param PaymentMethodChecksInterface $paymentMethod
      * @param \Magento\Sales\Model\Quote $quote
      * @return bool
      */
-    public function isApplicable(AbstractMethod $paymentMethod, Quote $quote)
+    public function isApplicable(PaymentMethodChecksInterface $paymentMethod, Quote $quote)
     {
         return $paymentMethod->canUseInternal();
     }
diff --git a/app/code/Magento/Payment/Model/Checks/Composite.php b/app/code/Magento/Payment/Model/Checks/Composite.php
index 1606a8fd7a614ced3e3fbcda63687572d7dca8d5..be0f38ef5f805ed89d2bdbfbeab4410b3fca381f 100644
--- a/app/code/Magento/Payment/Model/Checks/Composite.php
+++ b/app/code/Magento/Payment/Model/Checks/Composite.php
@@ -26,7 +26,6 @@
 namespace Magento\Payment\Model\Checks;
 
 use Magento\Sales\Model\Quote;
-use Magento\Payment\Model\Method\AbstractMethod;
 
 class Composite implements SpecificationInterface
 {
@@ -44,11 +43,11 @@ class Composite implements SpecificationInterface
     /**
      * Check whether payment method is applicable to quote
      *
-     * @param \Magento\Payment\Model\Method\AbstractMethod $paymentMethod
+     * @param PaymentMethodChecksInterface $paymentMethod
      * @param \Magento\Sales\Model\Quote $quote
      * @return bool
      */
-    public function isApplicable(AbstractMethod $paymentMethod, Quote $quote)
+    public function isApplicable(PaymentMethodChecksInterface $paymentMethod, Quote $quote)
     {
         foreach ($this->list as $specification) {
             if (!$specification->isApplicable($paymentMethod, $quote)) {
diff --git a/app/code/Magento/Payment/Model/Checks/PaymentMethodChecksInterface.php b/app/code/Magento/Payment/Model/Checks/PaymentMethodChecksInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..4de32c4f16c619ca82018b02ec1326d461cd50b3
--- /dev/null
+++ b/app/code/Magento/Payment/Model/Checks/PaymentMethodChecksInterface.php
@@ -0,0 +1,78 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+namespace Magento\Payment\Model\Checks;
+
+/**
+ * Payment method interface for specification checks
+ */
+interface PaymentMethodChecksInterface
+{
+    /**
+     * Retrieve payment method code
+     *
+     * @return string
+     */
+    public function getCode();
+
+    /**
+     * Using internal pages for input payment data
+     * Can be used in admin
+     *
+     * @return bool
+     */
+    public function canUseInternal();
+
+    /**
+     * Can be used in regular checkout
+     *
+     * @return bool
+     */
+    public function canUseCheckout();
+
+    /**
+     * To check billing country is allowed for the payment method
+     *
+     * @param string $country
+     * @return bool
+     */
+    public function canUseForCountry($country);
+
+    /**
+     * Check method for processing with base currency
+     *
+     * @param string $currencyCode
+     * @return bool
+     */
+    public function canUseForCurrency($currencyCode);
+
+    /**
+     * Retrieve information from payment configuration
+     *
+     * @param string $field
+     * @param int|string|null|\Magento\Store\Model\Store $storeId
+     *
+     * @return mixed
+     */
+    public function getConfigData($field, $storeId = null);
+}
diff --git a/app/code/Magento/Payment/Model/Checks/SpecificationInterface.php b/app/code/Magento/Payment/Model/Checks/SpecificationInterface.php
index 6204d2f27be140cbc7f5eaed08937254cbadaac6..4de95e48cd80565a7827bbb6cc2ea2557a9725c9 100644
--- a/app/code/Magento/Payment/Model/Checks/SpecificationInterface.php
+++ b/app/code/Magento/Payment/Model/Checks/SpecificationInterface.php
@@ -24,19 +24,18 @@
 namespace Magento\Payment\Model\Checks;
 
 use Magento\Sales\Model\Quote;
-use Magento\Payment\Model\Method\AbstractMethod;
 
 /**
- * Payment method abstract model
+ * Specification checks interface
  */
 interface SpecificationInterface
 {
     /**
      * Check whether payment method is applicable to quote
      *
-     * @param \Magento\Payment\Model\Method\AbstractMethod $paymentMethod
+     * @param PaymentMethodChecksInterface $paymentMethod
      * @param \Magento\Sales\Model\Quote $quote
      * @return bool
      */
-    public function isApplicable(AbstractMethod $paymentMethod, Quote $quote);
+    public function isApplicable(PaymentMethodChecksInterface $paymentMethod, Quote $quote);
 }
diff --git a/app/code/Magento/Payment/Model/Checks/TotalMinMax.php b/app/code/Magento/Payment/Model/Checks/TotalMinMax.php
index 275479f9f8ecbb309ab13c493d148d5b7029b430..ef21dee8cb88af98e89ff5229994d4537a60d52d 100644
--- a/app/code/Magento/Payment/Model/Checks/TotalMinMax.php
+++ b/app/code/Magento/Payment/Model/Checks/TotalMinMax.php
@@ -26,18 +26,17 @@
 namespace Magento\Payment\Model\Checks;
 
 use Magento\Sales\Model\Quote;
-use Magento\Payment\Model\Method\AbstractMethod;
 
 class TotalMinMax implements SpecificationInterface
 {
     /**
      * Check whether payment method is applicable to quote
      *
-     * @param \Magento\Payment\Model\Method\AbstractMethod $paymentMethod
+     * @param PaymentMethodChecksInterface $paymentMethod
      * @param \Magento\Sales\Model\Quote $quote
      * @return bool
      */
-    public function isApplicable(AbstractMethod $paymentMethod, Quote $quote)
+    public function isApplicable(PaymentMethodChecksInterface $paymentMethod, Quote $quote)
     {
         $total = $quote->getBaseGrandTotal();
         $minTotal = $paymentMethod->getConfigData('min_order_total');
diff --git a/app/code/Magento/Payment/Model/Checks/ZeroTotal.php b/app/code/Magento/Payment/Model/Checks/ZeroTotal.php
index 8b2143fa21bdd60dbdd5ece99286415cc7389678..b459dacd42abfd4664a0a814611882a8d57a61a5 100644
--- a/app/code/Magento/Payment/Model/Checks/ZeroTotal.php
+++ b/app/code/Magento/Payment/Model/Checks/ZeroTotal.php
@@ -26,7 +26,6 @@
 namespace Magento\Payment\Model\Checks;
 
 use Magento\Sales\Model\Quote;
-use Magento\Payment\Model\Method\AbstractMethod;
 
 class ZeroTotal implements SpecificationInterface
 {
@@ -34,11 +33,11 @@ class ZeroTotal implements SpecificationInterface
      * Check whether payment method is applicable to quote
      * Purposed to allow use in controllers some logic that was implemented in blocks only before
      *
-     * @param \Magento\Payment\Model\Method\AbstractMethod $paymentMethod
+     * @param PaymentMethodChecksInterface $paymentMethod
      * @param \Magento\Sales\Model\Quote $quote
      * @return bool
      */
-    public function isApplicable(AbstractMethod $paymentMethod, Quote $quote)
+    public function isApplicable(PaymentMethodChecksInterface $paymentMethod, Quote $quote)
     {
         $total = $quote->getBaseSubtotal() + $quote->getShippingAddress()->getBaseShippingAmount();
         return !($total < 0.0001 && $paymentMethod->getCode() != 'free');
diff --git a/app/code/Magento/Payment/Model/Method/AbstractMethod.php b/app/code/Magento/Payment/Model/Method/AbstractMethod.php
index 3faf6d595b280912a4f14d2d8db4416324b92299..e775c0846bb6f3bdcd1a529c5fa7d08cca545c19 100644
--- a/app/code/Magento/Payment/Model/Method/AbstractMethod.php
+++ b/app/code/Magento/Payment/Model/Method/AbstractMethod.php
@@ -25,11 +25,13 @@ namespace Magento\Payment\Model\Method;
 
 use Magento\Sales\Model\Order\Invoice;
 use Magento\Sales\Model\Order\Payment;
+use Magento\Payment\Model\MethodInterface;
+use Magento\Payment\Model\Checks\PaymentMethodChecksInterface;
 
 /**
  * Payment method abstract model
  */
-abstract class AbstractMethod extends \Magento\Framework\Object implements \Magento\Payment\Model\MethodInterface
+abstract class AbstractMethod extends \Magento\Framework\Object implements MethodInterface, PaymentMethodChecksInterface
 {
     const ACTION_ORDER = 'order';
 
diff --git a/app/code/Magento/Payment/view/frontend/form/cc.phtml b/app/code/Magento/Payment/view/frontend/form/cc.phtml
index f00b0f21cbe2c9802162eb7497c6813f2efeb74c..879db9925746a1c15336b1e5cc7a61e8df959c66 100644
--- a/app/code/Magento/Payment/view/frontend/form/cc.phtml
+++ b/app/code/Magento/Payment/view/frontend/form/cc.phtml
@@ -28,7 +28,9 @@
     <div class="field type required">
         <label for="<?php echo $_code ?>_cc_type" class="label"><span><?php echo __('Credit Card Type') ?></span></label>
         <div class="control">
-            <select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" data-validate='{required:true, "validate-cc-type-select":"#<?php echo $_code ?>_cc_number"}' class="select">
+            <select id="<?php echo $_code ?>_cc_type"
+                    data-mage-init='{"creditCardType":{"creditCardTypeContainer":"#<?php echo $_code ?>_cc_type_ss_div"}}'
+                    name="payment[cc_type]" data-validate='{required:true, "validate-cc-type-select":"#<?php echo $_code ?>_cc_number"}' class="select">
                 <option value=""><?php echo __('--Please Select--')?></option>
             <?php $_ccType = $this->getInfoData('cc_type') ?>
             <?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
@@ -127,13 +129,6 @@
             </div>
             <div class="adv container" data-validation-msg="validate-cc-ukss">&nbsp;</div>
         </div>
-        <script type="text/javascript">
-            head.js("<?php echo $this->getViewFileUrl('Magento_Payment::cc-type.js')?>", function() {
-                jQuery('#<?php echo $_code ?>_cc_type').creditCardType({
-                    creditCardTypeContainer: '#<?php echo $_code ?>_cc_type_ss_div'
-                });
-            });
-        </script>
     </div>
     <?php endif; ?>
     <?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Paypal/Block/Adminhtml/Customer/Edit/Tab/Agreement.php b/app/code/Magento/Paypal/Block/Adminhtml/Customer/Edit/Tab/Agreement.php
index 290f245582de7b0916f68f87d8fbe9021455160a..331e610c6242d5fa07f0c81d4ed37cd1c65488d7 100644
--- a/app/code/Magento/Paypal/Block/Adminhtml/Customer/Edit/Tab/Agreement.php
+++ b/app/code/Magento/Paypal/Block/Adminhtml/Customer/Edit/Tab/Agreement.php
@@ -23,6 +23,8 @@
  */
 namespace Magento\Paypal\Block\Adminhtml\Customer\Edit\Tab;
 
+use Magento\Customer\Controller\RegistryConstants;
+
 /**
  * Adminhtml customer billing agreement tab
  */
@@ -97,8 +99,7 @@ class Agreement extends \Magento\Paypal\Block\Adminhtml\Billing\Agreement\Grid i
      */
     public function canShowTab()
     {
-        $customer = $this->_coreRegistry->registry('current_customer');
-        return !is_null($customer);
+        return !is_null($this->_coreRegistry->registry(RegistryConstants::CURRENT_CUSTOMER_ID));
     }
 
     /**
diff --git a/app/code/Magento/Paypal/view/frontend/express/review.phtml b/app/code/Magento/Paypal/view/frontend/express/review.phtml
index c8ca7cd5f0aeac3d02e3c47b9ffc19c1720dad9a..d7b3c204b77acdfeb121a8187c090ecd03523b5a 100644
--- a/app/code/Magento/Paypal/view/frontend/express/review.phtml
+++ b/app/code/Magento/Paypal/view/frontend/express/review.phtml
@@ -104,16 +104,9 @@ $shippingAddress = $this->getShippingAddress();
     </form>
 </div>
 <script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-        "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-        "<?php echo $this->getViewFileUrl('Magento_Paypal::order-review.js') ?>",
-        function () {
-            jQuery('#order-review-form').validation().orderReview({
-                shippingMethodUpdateUrl: '<?php echo $this->escapeHtml($this->getUpdateShippingMethodsUrl()) ?>',
-                updateOrderSubmitUrl: '<?php echo $this->escapeHtml($this->getUpdateOrderSubmitUrl()) ?>',
-                isAjax: <?php echo $this->getUseAjax() ? 'true' : 'false' ?>
-            });
-        });
+    jQuery('#order-review-form').mage('validation', {}).mage('orderReview', {
+        shippingMethodUpdateUrl: '<?php echo $this->escapeHtml($this->getUpdateShippingMethodsUrl()) ?>',
+        updateOrderSubmitUrl: '<?php echo $this->escapeHtml($this->getUpdateOrderSubmitUrl()) ?>',
+        isAjax: <?php echo $this->getUseAjax() ? 'true' : 'false' ?>
+    });
 </script>
diff --git a/app/code/Magento/Paypal/view/frontend/express/review/address.phtml b/app/code/Magento/Paypal/view/frontend/express/review/address.phtml
index e9e7d78e1b71826c71e1acc227a3ef02bfc2498d..082bd6a3eff1de731caaaa91d8076fd4f1c4db39 100644
--- a/app/code/Magento/Paypal/view/frontend/express/review/address.phtml
+++ b/app/code/Magento/Paypal/view/frontend/express/review/address.phtml
@@ -182,22 +182,14 @@ echo $nameWidget
 
 <script type="text/javascript">
     (function ($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('Magento_Checkout::js/region-updater.js') ?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js') ?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js') ?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js') ?>",
-            function () {
-                $('#<?php echo $prefix ?>\\:country_id').regionUpdater({
-                    optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
-                    regionListId: '#<?php echo $prefix ?>\\:region_id',
-                    regionInputId: '#<?php echo $prefix ?>\\:region',
-                    postcodeId: '#<?php echo $prefix ?>\\:postcode',
-                    regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
-                    defaultRegion: "<?php echo $this->getAddress()->getRegionId() ?>",
-                    countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
-                });
-            });
+        $('#<?php echo $prefix ?>\\:country_id').mage('regionUpdater', {
+            optionalRegionAllowed: <?php echo ($this->getConfig('general/region/display_all')? 'true' : 'false'); ?>,
+            regionListId: '#<?php echo $prefix ?>\\\:region_id',
+            regionInputId: '#<?php echo $prefix ?>\\\:region',
+            postcodeId: '#<?php echo $prefix ?>\\\:postcode',
+            regionJson: <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>,
+            defaultRegion: "<?php echo $this->getAddress()->getRegionId() ?>",
+            countriesWithOptionalZip: <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>
+        });
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Paypal/view/frontend/express/shortcut.phtml b/app/code/Magento/Paypal/view/frontend/express/shortcut.phtml
index 0ad486c4f4cd7d692c89e00c10820e4ec0217408..dc8f2026d2672a08ff0e3726797f587c30526142 100644
--- a/app/code/Magento/Paypal/view/frontend/express/shortcut.phtml
+++ b/app/code/Magento/Paypal/view/frontend/express/shortcut.phtml
@@ -53,17 +53,15 @@ if ($this->isOrPositionBefore()) {
     endif; ?>
     <script type="text/javascript">
         (function ($) {
-            head.js(
-                "<?php echo $this->getViewFileUrl('Magento_Paypal::js/paypal-checkout.js') ?>",
-                function () {
-                    $('.paypal-logo').paypalCheckout({
-                        confirmMessage: "<?php echo $this->escapeJsQuote($this->getConfirmationMessage())?>",
-                        confirmUrl: "<?php echo !empty($confirmationUrl) ? $confirmationUrl : false ?>",
-                        isCatalogProduct: "<?php echo !empty($isInCatalogProduct) ? $isInCatalogProduct : false ?>",
-                        paypalCheckoutSelector: '#pp-checkout-url',
-                        productAddToCartForm: '#product_addtocart_form'
-                    });
+            head.js("<?php echo $this->getViewFileUrl('Magento_Paypal::js/paypal-checkout.js') ?>", head.ready(function () {
+                $('.paypal-logo').paypalCheckout({
+                    confirmMessage: "<?php echo $this->escapeJsQuote($this->getConfirmationMessage())?>",
+                    confirmUrl: "<?php echo !empty($confirmationUrl) ? $confirmationUrl : false ?>",
+                    isCatalogProduct: "<?php echo !empty($isInCatalogProduct) ? $isInCatalogProduct : false ?>",
+                    paypalCheckoutSelector: '#pp-checkout-url',
+                    productAddToCartForm: '#product_addtocart_form'
                 });
+            }));
         })(jQuery);
     </script>
 </div>
diff --git a/app/code/Magento/Paypal/view/frontend/js/components.phtml b/app/code/Magento/Paypal/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..a54db67f1558e4c00e9a01ad152616cbdf552e7d
--- /dev/null
+++ b/app/code/Magento/Paypal/view/frontend/js/components.phtml
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            accordion: [
+                '<?php echo $this->getViewFileUrl('Magento_Checkout::js/accordion.js') ?>'
+            ],
+            opcheckoutPaypalIframe: [
+                '<?php echo $this->getViewFileUrl('Magento_Paypal::js/opcheckout.js') ?>'
+            ],
+            orderReview: [
+                '<?php echo $this->getViewFileUrl('Magento_Paypal::order-review.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Paypal/view/frontend/layout/checkout_onepage_index.xml b/app/code/Magento/Paypal/view/frontend/layout/checkout_onepage_index.xml
index 19cd84f498be1586d2ad8aea354bbbb1b220a561..f8ed5a58e7f676ee0b53a9cb6f810925ec1c5cfb 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/checkout_onepage_index.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/checkout_onepage_index.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="paypal_opcheckout_head_components" template="Magento_Paypal::js/components.phtml"/>
+    </referenceBlock>
     <referenceContainer name="content">
         <block class="Magento\Framework\View\Element\Template" name="checkout.onepage.paypal.js" after="checkout.onepage" template="Magento_Paypal::onepage.phtml"/>
     </referenceContainer>
diff --git a/app/code/Magento/Paypal/view/frontend/layout/paypal_express_review.xml b/app/code/Magento/Paypal/view/frontend/layout/paypal_express_review.xml
index 6986d991ad70ad387206418bc6377bc89c28d841..4629e28332c609d8667bc5e3701520248003d0e3 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/paypal_express_review.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/paypal_express_review.xml
@@ -25,6 +25,10 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <update handle="checkout_onepage_review_item_renderers" />
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="paypal_express_review_checkout_head_components" template="Magento_Checkout::js/components.phtml"/>
+        <block class="Magento\Framework\View\Element\Js\Components" name="paypal_express_review_head_components" template="Magento_Paypal::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="root">
         <action method="setTemplate">
             <argument name="template" xsi:type="string">1column.phtml</argument>
diff --git a/app/code/Magento/Paypal/view/frontend/layout/paypal_payflowexpress_review.xml b/app/code/Magento/Paypal/view/frontend/layout/paypal_payflowexpress_review.xml
index d307d447492d7fec5323a5d98ff25660e8cb11c4..c4e09be89b632f954473d98b0005d7aad42c9c4f 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/paypal_payflowexpress_review.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/paypal_payflowexpress_review.xml
@@ -44,4 +44,7 @@
             </block>
         </block>
     </referenceContainer>
+    <referenceBlock name="head">
+        <block class="Magento\Framework\View\Element\Js\Components" name="head.components" as="components" template="Magento_Paypal::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Paypal/view/frontend/onepage.phtml b/app/code/Magento/Paypal/view/frontend/onepage.phtml
index 937f731c16ee961542ed5d0b4b88dd09fc0588bb..4e4e5a15be9670a915522c9eb77f725a6bbd2f39 100644
--- a/app/code/Magento/Paypal/view/frontend/onepage.phtml
+++ b/app/code/Magento/Paypal/view/frontend/onepage.phtml
@@ -24,14 +24,8 @@
 ?>
 <script type="text/javascript">
     (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('Magento_Paypal::js/opcheckout.js')?>",
-            function() {
-                $('#checkoutSteps')
-                    .accordion({
-                        activeSelector: '#opc-<?php echo $this->getActiveStep() ?>'
-                    }).opcheckoutPaypalIframe();
-            }
-        );
+        $('#checkoutSteps').mage('accordion', {
+            'activeSelector': '#opc-<?php echo $this->getActiveStep() ?>'
+        }).mage('opcheckoutPaypalIframe', {});
     })(jQuery);
 </script>
diff --git a/app/code/Magento/Paypal/view/frontend/payflowexpress/review.phtml b/app/code/Magento/Paypal/view/frontend/payflowexpress/review.phtml
index af5ee6bdbd39e75983bfb23d10d52e8f4106a975..ddb2105111822f41302d24384415e7b83ab30fcb 100644
--- a/app/code/Magento/Paypal/view/frontend/payflowexpress/review.phtml
+++ b/app/code/Magento/Paypal/view/frontend/payflowexpress/review.phtml
@@ -149,18 +149,11 @@
     </div>
 </div>
 <script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-        "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-        "<?php echo $this->getViewFileUrl('Magento_Paypal::order-review.js') ?>",
-        function () {
-            jQuery('#order-review-form').validation().orderReview({
-                shippingSubmitFormSelector: '#shipping-method-form',
-                shippingSelector: '#shipping-method',
-                shippingMethodUpdateUrl: '<?php echo $this->escapeHtml($this->getUpdateShippingMethodsUrl()) ?>',
-                updateOrderSubmitUrl: '<?php echo $this->escapeHtml($this->getUpdateOrderSubmitUrl()) ?>',
-                isAjax: <?php echo $this->getUseAjax() ? 'true' : 'false' ?>
-            });
-        });
+    jQuery('#order-review-form').mage('validation', {}).mage('orderReview', {
+        shippingSubmitFormSelector: '#shipping-method-form',
+        shippingSelector: '#shipping-method',
+        shippingMethodUpdateUrl: '<?php echo $this->escapeHtml($this->getUpdateShippingMethodsUrl()) ?>',
+        updateOrderSubmitUrl: '<?php echo $this->escapeHtml($this->getUpdateOrderSubmitUrl()) ?>',
+        isAjax: <?php echo $this->getUseAjax() ? 'true' : 'false' ?>
+    });
 </script>
diff --git a/app/code/Magento/Persistent/view/frontend/js/components.phtml b/app/code/Magento/Persistent/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..7a6e9f667030465aefbdef719dece6f3111f55de
--- /dev/null
+++ b/app/code/Magento/Persistent/view/frontend/js/components.phtml
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            rememberMePopup: [
+                '<?php echo $this->getViewFileUrl('Magento_Persistent::remember-me-popup.js')?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Persistent/view/frontend/layout/checkout_onepage_index.xml b/app/code/Magento/Persistent/view/frontend/layout/checkout_onepage_index.xml
index f92cf75ab7997f121dcc802050a9676dac2156f9..5835257bfd2797b73f9aa2067e86769ebb580bc0 100644
--- a/app/code/Magento/Persistent/view/frontend/layout/checkout_onepage_index.xml
+++ b/app/code/Magento/Persistent/view/frontend/layout/checkout_onepage_index.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="persistent_onepage_head_components" template="Magento_Persistent::js/components.phtml"/>
+    </referenceBlock>
     <referenceContainer name="form.login.additional.info">
         <block class="Magento\Persistent\Block\Form\Remember" name="persistent.remember.me" template="remember_me.phtml" before="-"/>
         <block class="Magento\Framework\View\Element\Template" name="persistent.remember.me.tooltip" template="Magento_Persistent::remember_me_tooltip.phtml"/>
diff --git a/app/code/Magento/Persistent/view/frontend/layout/customer_account_create.xml b/app/code/Magento/Persistent/view/frontend/layout/customer_account_create.xml
index c1f545e5b1337d5af2fd233cb4923a5ce1bf1b63..1347bd0811b578d722806876edc291d84216e1d5 100644
--- a/app/code/Magento/Persistent/view/frontend/layout/customer_account_create.xml
+++ b/app/code/Magento/Persistent/view/frontend/layout/customer_account_create.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="persistent_customer_create_head_components" template="Magento_Persistent::js/components.phtml"/>
+    </referenceBlock>
     <referenceContainer name="form.additional.info">
         <block class="Magento\Persistent\Block\Form\Remember" name="persistent.remember.me" template="remember_me.phtml" before="-"/>
         <block class="Magento\Framework\View\Element\Template" name="persistent.remember.me.tooltip" template="Magento_Persistent::remember_me_tooltip.phtml"/>
diff --git a/app/code/Magento/Persistent/view/frontend/layout/customer_account_login.xml b/app/code/Magento/Persistent/view/frontend/layout/customer_account_login.xml
index c1f545e5b1337d5af2fd233cb4923a5ce1bf1b63..389517c16ecf3692dba58073338acce406577517 100644
--- a/app/code/Magento/Persistent/view/frontend/layout/customer_account_login.xml
+++ b/app/code/Magento/Persistent/view/frontend/layout/customer_account_login.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="persistent_customer_login_head_components" template="Magento_Persistent::js/components.phtml"/>
+    </referenceBlock>
     <referenceContainer name="form.additional.info">
         <block class="Magento\Persistent\Block\Form\Remember" name="persistent.remember.me" template="remember_me.phtml" before="-"/>
         <block class="Magento\Framework\View\Element\Template" name="persistent.remember.me.tooltip" template="Magento_Persistent::remember_me_tooltip.phtml"/>
diff --git a/app/code/Magento/Persistent/view/frontend/remember_me_tooltip.phtml b/app/code/Magento/Persistent/view/frontend/remember_me_tooltip.phtml
index e143906ac1f8424548e0c36c8b1600fa59411fb0..83ff60451c3a273cde78c9f8ec8e1253b9a56c83 100644
--- a/app/code/Magento/Persistent/view/frontend/remember_me_tooltip.phtml
+++ b/app/code/Magento/Persistent/view/frontend/remember_me_tooltip.phtml
@@ -33,14 +33,10 @@
 ?>
 <script type="text/javascript">
     (function($) {
-        head.js(
-            "<?php echo $this->getViewFileUrl('Magento_Persistent::remember-me-popup.js') ?>",
-            function() {
-                $('#remember-me-box').rememberMePopup({
-                    title: '<?php echo __('What is this?');?>',
-                    close: '<?php echo __('Close');?>',
-                    content: '<?php echo __('Check &quot;Remember Me&quot; to access your shopping cart on this computer when you are logged out')?>'
-                });
-            });
+        $('#remember-me-box').mage("rememberMePopup", {
+            title: '<?php echo __('What is this?');?>',
+            close: '<?php echo __('Close');?>',
+            content: '<?php echo __('Check &quot;Remember Me&quot; to access your shopping cart on this computer when you are logged out')?>'
+        });
     })(jQuery);
 </script>
diff --git a/app/code/Magento/ProductAlert/Block/Email/AbstractEmail.php b/app/code/Magento/ProductAlert/Block/Email/AbstractEmail.php
index e5b06eb3555fd3cc1ba8181870958dc668547db0..5619649a8f1c03460e9761944a0158f95693214d 100644
--- a/app/code/Magento/ProductAlert/Block/Email/AbstractEmail.php
+++ b/app/code/Magento/ProductAlert/Block/Email/AbstractEmail.php
@@ -134,4 +134,49 @@ abstract class AbstractEmail extends \Magento\Framework\View\Element\Template
     {
         return array('_scope' => $this->getStore(), '_scope_to_url' => true);
     }
+
+    /**
+     * @return \Magento\Framework\Pricing\Render
+     */
+    protected function getPriceRender()
+    {
+        return $this->_layout->createBlock(
+            'Magento\Framework\Pricing\Render',
+            '',
+            ['data'=> ['price_render_handle' => 'catalog_product_prices']]
+        );
+    }
+
+    /**
+     * Return HTML block with tier price
+     *
+     * @param \Magento\Catalog\Model\Product $product
+     * @param string $priceType
+     * @param string $renderZone
+     * @param array $arguments
+     * @return string
+     */
+    public function getProductPriceHtml(
+        \Magento\Catalog\Model\Product $product,
+        $priceType,
+        $renderZone = \Magento\Framework\Pricing\Render::ZONE_ITEM_LIST,
+        array $arguments = []
+    ) {
+        if (!isset($arguments['zone'])) {
+            $arguments['zone'] = $renderZone;
+        }
+
+        /** @var \Magento\Framework\Pricing\Render $priceRender */
+        $priceRender = $this->getPriceRender();
+        $price = '';
+
+        if ($priceRender) {
+            $price = $priceRender->render(
+                $priceType,
+                $product,
+                $arguments
+            );
+        }
+        return $price;
+    }
 }
diff --git a/app/code/Magento/ProductAlert/Model/Email.php b/app/code/Magento/ProductAlert/Model/Email.php
index 5182a57e706af57dd359196b9f6d63112c2d9131..963f863baf4ce296c8a871df987ba5669a23dd0f 100644
--- a/app/code/Magento/ProductAlert/Model/Email.php
+++ b/app/code/Magento/ProductAlert/Model/Email.php
@@ -352,7 +352,7 @@ class Email extends \Magento\Framework\Model\AbstractModel
                 $product->setCustomerGroupId($this->_customer->getGroupId());
                 $this->_getPriceBlock()->addProduct($product);
             }
-            $block = $this->_getPriceBlock()->toHtml();
+            $block = $this->_getPriceBlock();
             $templateId = $this->_scopeConfig->getValue(
                 self::XML_PATH_EMAIL_PRICE_TEMPLATE,
                 \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
@@ -364,7 +364,7 @@ class Email extends \Magento\Framework\Model\AbstractModel
                 $product->setCustomerGroupId($this->_customer->getGroupId());
                 $this->_getStockBlock()->addProduct($product);
             }
-            $block = $this->_getStockBlock()->toHtml();
+            $block = $this->_getStockBlock();
             $templateId = $this->_scopeConfig->getValue(
                 self::XML_PATH_EMAIL_STOCK_TEMPLATE,
                 \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
@@ -372,6 +372,10 @@ class Email extends \Magento\Framework\Model\AbstractModel
             );
         }
 
+        $alertGrid = $this->_appState->emulateAreaCode(
+            \Magento\Framework\App\Area::AREA_FRONTEND,
+            array($block, 'toHtml')
+        );
         $this->_appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
 
         $transport = $this->_transportBuilder->setTemplateIdentifier(
@@ -379,7 +383,10 @@ class Email extends \Magento\Framework\Model\AbstractModel
         )->setTemplateOptions(
             array('area' => \Magento\Framework\App\Area::AREA_FRONTEND, 'store' => $storeId)
         )->setTemplateVars(
-            array('customerName' => $this->_customerHelper->getCustomerName($this->_customer), 'alertGrid' => $block)
+            array(
+                'customerName' => $this->_customerHelper->getCustomerName($this->_customer),
+                'alertGrid' => $alertGrid
+            )
         )->setFrom(
             $this->_scopeConfig->getValue(
                 self::XML_PATH_EMAIL_IDENTITY,
diff --git a/app/code/Magento/ProductAlert/Model/Observer.php b/app/code/Magento/ProductAlert/Model/Observer.php
index 77fea2809d73d862651d163f3102150c9663244f..b6da42c1d3ab90cc846929e31545215324c72043 100644
--- a/app/code/Magento/ProductAlert/Model/Observer.php
+++ b/app/code/Magento/ProductAlert/Model/Observer.php
@@ -241,6 +241,7 @@ class Observer
                         $customer = $previousCustomer;
                     }
 
+                    /** @var \Magento\Catalog\Model\Product $product */
                     $product = $this->_productFactory->create()->setStoreId(
                         $website->getDefaultStore()->getId()
                     )->load(
diff --git a/app/code/Magento/ProductAlert/etc/crontab.xml b/app/code/Magento/ProductAlert/etc/crontab.xml
index cdb453b3845c51aa9d0cc294a0e48b6dd36ff875..89bb9b70d9f8b0c1bee3e1e9eb0dcf744cf5d2e1 100644
--- a/app/code/Magento/ProductAlert/etc/crontab.xml
+++ b/app/code/Magento/ProductAlert/etc/crontab.xml
@@ -25,6 +25,8 @@
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Cron/etc/crontab.xsd">
     <group id="default">
-        <job name="catalog_product_alert" instance="Magento\ProductAlert\Model\Observer" method="process" />
+        <job name="catalog_product_alert" instance="Magento\ProductAlert\Model\Observer" method="process">
+            <config_path>crontab/default/jobs/catalog_product_alert/schedule/cron_expr</config_path>
+        </job>
     </group>
 </config>
diff --git a/app/code/Magento/ProductAlert/view/frontend/email/price.phtml b/app/code/Magento/ProductAlert/view/frontend/email/price.phtml
index 61494aed8a601a18716a31d263d864d1d6f10ec9..50b586a1dbfd97bba420c7db67324f1564d515ac 100644
--- a/app/code/Magento/ProductAlert/view/frontend/email/price.phtml
+++ b/app/code/Magento/ProductAlert/view/frontend/email/price.phtml
@@ -22,10 +22,13 @@
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
+
+/** @var $this \Magento\ProductAlert\Block\Email\Price */
 ?>
 <?php if ($_products = $this->getProducts()): ?>
 <p><?php echo __('You are receiving this notification because you subscribed to receive alerts when the prices for the following products changed:') ?></p>
 <table>
+<?php /** @var $_product \Magento\Catalog\Model\Product */ ?>
 <?php foreach ($_products as $_product): ?>
     <tr>
         <td class="col photo">
@@ -40,14 +43,18 @@
                 </strong>
             </p>
             <?php if ($shortDescription = $this->escapeHtml($_product->getShortDescription())): ?>
-            <p><small><?php echo $shortDescription ?></small></p>
+                <p><small><?php echo $shortDescription ?></small></p>
             <?php endif; ?>
-            <p><?php if ($_product->getPrice() != $_product->getFinalPrice()): ?>
-                <?php echo __('Regular Price:') ?> <strong style="text-decoration:line-through;"><?php echo $this->helper('Magento\Core\Helper\Data')->currency($_product->getPrice()) ?></strong><br />
-                <strong><?php echo __('Special price:') ?> <span style="color:#FF0000;"><?php echo $this->helper('Magento\Core\Helper\Data')->currency($_product->getFinalPrice()) ?></span></strong>
-            <?php else: ?>
-                <strong><?php echo __('Price:') ?></strong> <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_product->getPrice()) ?>
-            <?php endif; ?></p>
+            <p><?php echo $this->getProductPriceHtml(
+                    $_product,
+                    \Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE,
+                    \Magento\Framework\Pricing\Render::ZONE_EMAIL,
+                    [
+                        'display_label' => __('Price:')
+                    ]
+                );
+                ?>
+            </p>
             <p><small><a href="<?php echo $this->getProductUnsubscribeUrl($_product->getId()) ?>"><?php echo __('Click here not to receive alerts for this product.') ?></a></small></p>
         </td>
     </tr>
diff --git a/app/code/Magento/ProductAlert/view/frontend/email/stock.phtml b/app/code/Magento/ProductAlert/view/frontend/email/stock.phtml
index 85d4800a792d445420b7d1c53766a21686b08f56..ce7238c2e042fdfca551fe86f06c5f28f1fdf1a2 100644
--- a/app/code/Magento/ProductAlert/view/frontend/email/stock.phtml
+++ b/app/code/Magento/ProductAlert/view/frontend/email/stock.phtml
@@ -22,6 +22,8 @@
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
+
+/** @var $this \Magento\ProductAlert\Block\Email\Stock */
 ?>
 <?php if ($_products = $this->getProducts()): ?>
 <p><?php echo __('You are receiving this notification because you subscribed to receive alerts when the following products are back in stock:') ?></p>
@@ -42,12 +44,16 @@
             <?php if ($shortDescription = $this->escapeHtml($_product->getShortDescription())): ?>
             <p><small><?php echo $shortDescription ?></small></p>
             <?php endif; ?>
-            <p><?php if ($_product->getPrice() != $_product->getFinalPrice()): ?>
-                <?php echo __('Regular Price:') ?> <strong style="text-decoration:line-through;"><?php echo $this->helper('Magento\Core\Helper\Data')->currency($_product->getPrice()) ?></strong><br />
-                <strong><?php echo __('Special price:') ?> <span style="color:#FF0000;"><?php echo $this->helper('Magento\Core\Helper\Data')->currency($_product->getFinalPrice()) ?></span></strong>
-            <?php else: ?>
-                <strong><?php echo __('Price:') ?></strong> <?php echo $this->helper('Magento\Core\Helper\Data')->currency($_product->getPrice()) ?>
-            <?php endif; ?></p>
+            <p><?php echo $this->getProductPriceHtml(
+                    $_product,
+                    \Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE,
+                    \Magento\Framework\Pricing\Render::ZONE_EMAIL,
+                    [
+                        'display_label' => __('Price:')
+                    ]
+                );
+                ?>
+            </p>
             <p><small><a href="<?php echo $this->getProductUnsubscribeUrl($_product->getId()) ?>"><?php echo __('Click here not to receive alerts for this product.') ?></a></small></p>
         </td>
     </tr>
diff --git a/app/code/Magento/RecurringPayment/Model/Plugin/ZeroTotal.php b/app/code/Magento/RecurringPayment/Model/Plugin/ZeroTotal.php
index 999c58a2f39d6fe72d01deee4bed58b63bd0bd77..053d3e7feef6ea1cf52848ede9214eaedeac7698 100644
--- a/app/code/Magento/RecurringPayment/Model/Plugin/ZeroTotal.php
+++ b/app/code/Magento/RecurringPayment/Model/Plugin/ZeroTotal.php
@@ -24,7 +24,7 @@
 namespace Magento\RecurringPayment\Model\Plugin;
 
 use Magento\Sales\Model\Quote;
-use Magento\Payment\Model\Method\AbstractMethod;
+use Magento\Payment\Model\Checks\PaymentMethodChecksInterface;
 use Magento\RecurringPayment\Model\Method\RecurringPaymentSpecification;
 
 /**
@@ -54,7 +54,7 @@ class ZeroTotal
     /**
      * @param \Magento\Payment\Model\Checks\ZeroTotal $subject
      * @param callable $proceed
-     * @param AbstractMethod $paymentMethod
+     * @param PaymentMethodChecksInterface $paymentMethod
      * @param Quote $quote
      * @return bool
      *
@@ -63,16 +63,11 @@ class ZeroTotal
     public function aroundIsApplicable(
         \Magento\Payment\Model\Checks\ZeroTotal $subject,
         \Closure $proceed,
-        AbstractMethod $paymentMethod,
+        PaymentMethodChecksInterface $paymentMethod,
         Quote $quote
     ) {
-        return $proceed(
-            $paymentMethod,
-            $quote
-        ) || $this->specification->isSatisfiedBy(
-            $paymentMethod->getCode()
-        ) && $this->filter->hasRecurringItems(
-            $quote
-        );
+        return $proceed($paymentMethod, $quote)
+            || $this->specification->isSatisfiedBy($paymentMethod->getCode())
+            && $this->filter->hasRecurringItems($quote);
     }
 }
diff --git a/app/code/Magento/Reports/Block/Product/AbstractProduct.php b/app/code/Magento/Reports/Block/Product/AbstractProduct.php
index 25455cfd54c2b04a4a266604d9c091f2b2612790..34e23f4c59f821f50b50acf34934b28c8832d6ec 100644
--- a/app/code/Magento/Reports/Block/Product/AbstractProduct.php
+++ b/app/code/Magento/Reports/Block/Product/AbstractProduct.php
@@ -61,19 +61,16 @@ abstract class AbstractProduct extends \Magento\Catalog\Block\Product\AbstractPr
      * @param \Magento\Catalog\Model\Product\Visibility $productVisibility
      * @param \Magento\Reports\Model\Product\Index\Factory $indexFactory
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Catalog\Model\Product\Visibility $productVisibility,
         \Magento\Reports\Model\Product\Index\Factory $indexFactory,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
         $this->_productVisibility = $productVisibility;
         $this->_indexFactory = $indexFactory;
diff --git a/app/code/Magento/Reports/Block/Product/Widget/Compared.php b/app/code/Magento/Reports/Block/Product/Widget/Compared.php
index a8e436b459b1dec0b040de53a30c0ef4e159d273..0a547149ce143081756b10ab18d1d6e915d4abfd 100644
--- a/app/code/Magento/Reports/Block/Product/Widget/Compared.php
+++ b/app/code/Magento/Reports/Block/Product/Widget/Compared.php
@@ -53,10 +53,5 @@ class Compared extends \Magento\Reports\Block\Product\Compared implements \Magen
             'three_columns',
             3
         );
-        $this->addPriceBlockType(
-            'bundle',
-            'Magento\Bundle\Block\Catalog\Product\Price',
-            'catalog/product/price.phtml'
-        );
     }
 }
diff --git a/app/code/Magento/Reports/Block/Product/Widget/Viewed/Item.php b/app/code/Magento/Reports/Block/Product/Widget/Viewed/Item.php
index e28c51eddc496a7f90054b35d852700c50c23f89..9aa322c02c95e09c14fd7013eb6caac835d63e45 100644
--- a/app/code/Magento/Reports/Block/Product/Widget/Viewed/Item.php
+++ b/app/code/Magento/Reports/Block/Product/Widget/Viewed/Item.php
@@ -38,19 +38,4 @@ class Item extends \Magento\Catalog\Block\Product\AbstractProduct implements \Ma
      * @var string
      */
     protected $_indexType = \Magento\Reports\Model\Product\Index\Factory::TYPE_VIEWED;
-
-    /**
-     * Internal constructor
-     *
-     * @return void
-     */
-    protected function _construct()
-    {
-        parent::_construct();
-        $this->addPriceBlockType(
-            'bundle',
-            'Magento\Bundle\Block\Catalog\Product\Price',
-            'catalog/product/price.phtml'
-        );
-    }
 }
diff --git a/app/code/Magento/Reports/data/reports_setup/data-install-1.6.0.0.php b/app/code/Magento/Reports/data/reports_setup/data-install-1.6.0.0.php
index 9ed4558817ac57d20404197037f4770df08c4b5f..c1c85fb46deff0bb01b167fb2824a758fc8a8f36 100644
--- a/app/code/Magento/Reports/data/reports_setup/data-install-1.6.0.0.php
+++ b/app/code/Magento/Reports/data/reports_setup/data-install-1.6.0.0.php
@@ -66,29 +66,7 @@ $installer->endSetup();
 /** @var $cms \Magento\Cms\Model\Page */
 $cms = $installer->getPage()->load('home', 'identifier');
 
-$reportLayoutUpdate = '<!--<referenceContainer name="content">
-        <block class="Magento\Catalog\Block\Product\NewProduct" name="home.catalog.product.new" alias="product_new" template="product/new.phtml" after="cms_page">
-            <action method="addPriceBlockType">
-                <argument name="type" xsi:type="string">bundle</argument>
-                <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-                <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-            </action>
-        </block>
-        <block class="Magento\Reports\Block\Product\Viewed" name="home.reports.product.viewed" alias="product_viewed" template="home_product_viewed.phtml" after="product_new">
-            <action method="addPriceBlockType">
-                <argument name="type" xsi:type="string">bundle</argument>
-                <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-                <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-            </action>
-        </block>
-        <block class="Magento\Reports\Block\Product\Compared" name="home.reports.product.compared" template="home_product_compared.phtml" after="product_viewed">
-            <action method="addPriceBlockType">
-                <argument name="type" xsi:type="string">bundle</argument>
-                <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-                <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-            </action>
-        </block>
-    </referenceContainer>
+$reportLayoutUpdate = '<!--
     <referenceContainer name="right">
         <action method="unsetChild"><argument name="alias" xsi:type="string">right.reports.product.viewed</argument></action>
         <action method="unsetChild"><argument name="alias" xsi:type="string">right.reports.product.compared</argument></action>
diff --git a/app/code/Magento/Reports/etc/module.xml b/app/code/Magento/Reports/etc/module.xml
index a65f3a6fdc7a78cd3cbe99137a89b335a9e3ea9c..07e86cebac68a03be4c591308ef3461d731ed44d 100644
--- a/app/code/Magento/Reports/etc/module.xml
+++ b/app/code/Magento/Reports/etc/module.xml
@@ -41,7 +41,6 @@
             <module name="Magento_Backend"/>
             <module name="Magento_Core"/>
             <module name="Magento_Widget"/>
-            <module name="Magento_Bundle"/>
             <module name="Magento_Log"/>
             <module name="Magento_Wishlist"/>
             <module name="Magento_Review"/>
diff --git a/app/code/Magento/Reports/view/frontend/js/components.phtml b/app/code/Magento/Reports/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..f377ee72ac09765b6f4042948b802ecd2245e0ca
--- /dev/null
+++ b/app/code/Magento/Reports/view/frontend/js/components.phtml
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            recentlyViewedProducts: [
+                '<?php echo $this->getViewFileUrl('Magento_Reports::js/recently-viewed.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
\ No newline at end of file
diff --git a/app/code/Magento/Reports/view/frontend/layout/default.xml b/app/code/Magento/Reports/view/frontend/layout/default.xml
index 06e6c4526fb5cca7b0eaefd5c69ea57415593a27..a61e3c9a6b9d24f2894d84e4429eb6d404b56f9f 100644
--- a/app/code/Magento/Reports/view/frontend/layout/default.xml
+++ b/app/code/Magento/Reports/view/frontend/layout/default.xml
@@ -28,4 +28,7 @@
         <block class="Magento\Reports\Block\Product\Viewed" name="right.reports.product.viewed" template="product_viewed.phtml"/>
         <block class="Magento\Reports\Block\Product\Compared" name="right.reports.product.compared" template="product_compared.phtml"/>
     </referenceContainer>
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="reports_page_head_components" template="Magento_Reports::js/components.phtml"/>
+    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Reports/view/frontend/product/widget/viewed.phtml b/app/code/Magento/Reports/view/frontend/product/widget/viewed.phtml
index 499add8f347807c6aa4f5254fef9fb5344c99134..37209d0dd39cec8db1fa307d2302312c02030eb1 100644
--- a/app/code/Magento/Reports/view/frontend/product/widget/viewed.phtml
+++ b/app/code/Magento/Reports/view/frontend/product/widget/viewed.phtml
@@ -30,7 +30,7 @@ $type = $this->getType() . '-' . $mode;
 $class = 'widget viewed' . ' ' . $mode;
 $title = __('Recently Viewed');
 ?>
-<div class="block <?php echo $class; ?>" id="recently_viewed_container" data-count="<?php echo $this->getCount(); ?>" style="display: none;">
+<div class="block <?php echo $class; ?>" id="recently_viewed_container" data-mage-init='{"recentlyViewedProducts":{}}' data-count="<?php echo $this->getCount(); ?>" style="display: none;">
     <div class="title">
         <strong><?php echo $title; ?></strong>
     </div>
@@ -39,8 +39,3 @@ $title = __('Recently Viewed');
         </ol>
     </div>
 </div>
-<script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('Magento_Reports::js/recently-viewed.js'); ?>", function() {
-        jQuery("#recently_viewed_container").recentlyViewedProducts();
-    });
-</script>
diff --git a/app/code/Magento/Review/Block/Customer/View.php b/app/code/Magento/Review/Block/Customer/View.php
index eebf6f81743c7ddb846812b1fa0768de57b5ed2b..9022f76f36f904e1e65796f2a44b189bbd1ffd87 100644
--- a/app/code/Magento/Review/Block/Customer/View.php
+++ b/app/code/Magento/Review/Block/Customer/View.php
@@ -86,7 +86,6 @@ class View extends \Magento\Catalog\Block\Product\AbstractProduct
      * @param \Magento\Review\Model\RatingFactory $ratingFactory
      * @param \Magento\Customer\Service\V1\CustomerCurrentService $currentCustomer
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
@@ -95,8 +94,7 @@ class View extends \Magento\Catalog\Block\Product\AbstractProduct
         \Magento\Review\Model\Rating\Option\VoteFactory $voteFactory,
         \Magento\Review\Model\RatingFactory $ratingFactory,
         \Magento\Customer\Service\V1\CustomerCurrentService $currentCustomer,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_productFactory = $productFactory;
         $this->_reviewFactory = $reviewFactory;
@@ -106,8 +104,7 @@ class View extends \Magento\Catalog\Block\Product\AbstractProduct
 
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
         $this->_isScopePrivate = true;
     }
diff --git a/app/code/Magento/Review/Block/Product/View.php b/app/code/Magento/Review/Block/Product/View.php
index 01a7779f6a392631d01b3d5b668fa3b62dcf88e5..ddad4780bd300851dc7b807c409557f92b6ca3de 100644
--- a/app/code/Magento/Review/Block/Product/View.php
+++ b/app/code/Magento/Review/Block/Product/View.php
@@ -62,7 +62,6 @@ class View extends \Magento\Catalog\Block\Product\View
      * @param \Magento\Framework\Locale\FormatInterface $localeFormat
      * @param \Magento\Review\Model\Resource\Review\CollectionFactory $collectionFactory
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
@@ -75,8 +74,7 @@ class View extends \Magento\Catalog\Block\Product\View
         \Magento\Catalog\Model\ProductTypes\ConfigInterface $productTypeConfig,
         \Magento\Framework\Locale\FormatInterface $localeFormat,
         \Magento\Review\Model\Resource\Review\CollectionFactory $collectionFactory,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_reviewsColFactory = $collectionFactory;
         parent::__construct(
@@ -89,8 +87,7 @@ class View extends \Magento\Catalog\Block\Product\View
             $productHelper,
             $productTypeConfig,
             $localeFormat,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/Review/Block/View.php b/app/code/Magento/Review/Block/View.php
index 40fed4f3ebe271c81d7ee86a2924e3b5696220a9..d2074aa84a9564e8b39107b8d17c244b07c988ca 100644
--- a/app/code/Magento/Review/Block/View.php
+++ b/app/code/Magento/Review/Block/View.php
@@ -66,23 +66,20 @@ class View extends \Magento\Catalog\Block\Product\AbstractProduct
      * @param \Magento\Review\Model\RatingFactory $ratingFactory
      * @param \Magento\Review\Model\ReviewFactory $reviewFactory
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Review\Model\Rating\Option\VoteFactory $voteFactory,
         \Magento\Review\Model\RatingFactory $ratingFactory,
         \Magento\Review\Model\ReviewFactory $reviewFactory,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_voteFactory = $voteFactory;
         $this->_reviewFactory = $reviewFactory;
 
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/Review/sql/review_setup/install-1.6.0.0.php b/app/code/Magento/Review/sql/review_setup/install-1.6.0.0.php
index 3f44908700abe6919e7b853414c3bdde4f0a972a..d7c2f81b033ae3fad82e14e54b97e02e59feec06 100644
--- a/app/code/Magento/Review/sql/review_setup/install-1.6.0.0.php
+++ b/app/code/Magento/Review/sql/review_setup/install-1.6.0.0.php
@@ -600,9 +600,9 @@ $table = $installer->getConnection()->newTable(
     \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE,
     \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
 )->addForeignKey(
-    $installer->getFkName('rating_option_vote_aggregated', 'store_id', 'core_store', 'store_id'),
+    $installer->getFkName('rating_option_vote_aggregated', 'store_id', 'store', 'store_id'),
     'store_id',
-    $installer->getTable('core_store'),
+    $installer->getTable('store'),
     'store_id',
     \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE,
     \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
@@ -632,9 +632,9 @@ $table = $installer->getConnection()->newTable(
     $installer->getIdxName('rating_store', array('store_id')),
     array('store_id')
 )->addForeignKey(
-    $installer->getFkName('rating_store', 'store_id', 'core_store', 'store_id'),
+    $installer->getFkName('rating_store', 'store_id', 'store', 'store_id'),
     'store_id',
-    $installer->getTable('core_store'),
+    $installer->getTable('store'),
     'store_id',
     \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE,
     \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
@@ -684,9 +684,9 @@ $table = $installer->getConnection()->newTable(
     \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE,
     \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
 )->addForeignKey(
-    $installer->getFkName('rating_title', 'store_id', 'core_store', 'store_id'),
+    $installer->getFkName('rating_title', 'store_id', 'store', 'store_id'),
     'store_id',
-    $installer->getTable('core_store'),
+    $installer->getTable('store'),
     'store_id',
     \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE,
     \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
diff --git a/app/code/Magento/Review/view/adminhtml/js/rating.js b/app/code/Magento/Review/view/adminhtml/js/rating.js
index eca8fd2cdf1a06e56125eb483fa832edc6229f01..fc517b3daea0ed07542ac24e8fb8bddf71e2514e 100644
--- a/app/code/Magento/Review/view/adminhtml/js/rating.js
+++ b/app/code/Magento/Review/view/adminhtml/js/rating.js
@@ -40,8 +40,7 @@
         _bind: function() {
             this._labels.on({
                 click: $.proxy(function(e) {
-                    var elem = $(e.currentTarget);
-                    $('#' + elem.attr('for')).attr('checked', 'checked');
+                    $('[id="' + $(e.currentTarget).attr('for') + '"]').prop('checked', true);
                     this._updateRating();
                 }, this),
 
diff --git a/app/code/Magento/Review/view/adminhtml/rating/detailed.phtml b/app/code/Magento/Review/view/adminhtml/rating/detailed.phtml
index c67c169ef0e26687e41a67481df5c6722f1acc4d..e498ba040a9d33a0a085069878aa2fdde1efcce4 100644
--- a/app/code/Magento/Review/view/adminhtml/rating/detailed.phtml
+++ b/app/code/Magento/Review/view/adminhtml/rating/detailed.phtml
@@ -43,12 +43,11 @@
         <input type="hidden" name="validate_rating" class="validate-rating" value="" />
     </div>
 <script type="text/javascript">
-//@TODO: Fix validation
     (function($) {
         "use strict";
         $.mage.extend('validation', 'validation',
             '<?php echo $this->getViewFileUrl('Magento_Review::rating/validation-rules.js'); ?>');
-        $('[data-widget="ratingControl"]').ratingControl();
+        $('[data-widget=ratingControl]').ratingControl();
     })(jQuery);
 </script>
 <?php else: ?>
diff --git a/app/code/Magento/Review/view/adminhtml/rating/validation-rules.js b/app/code/Magento/Review/view/adminhtml/rating/validation-rules.js
index 64390b7ce4b8a9f16bf05167536d41170a07d369..9b25aebc7fae314e1b536e470866b93cf8b1fc57 100644
--- a/app/code/Magento/Review/view/adminhtml/rating/validation-rules.js
+++ b/app/code/Magento/Review/view/adminhtml/rating/validation-rules.js
@@ -25,26 +25,16 @@
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
 (function ($) {
-    $.validator.addMethod('validate-rating', function() {
-        var ratings = $('#detailed_rating').find('.field-rating');
-        var inputs;
-        var error = 1;
+    $.validator.addMethod(
+        'validate-rating',
+        function () {
+            var ratings = $('#detailed_rating').find('.field-rating'),
+                noError = true;
 
-        ratings.each(function(i, rating) {
-            if (i > 0) {
-                inputs = $(rating).find('input');
-
-                inputs.each(function(j, input) {
-                    if ($(input).is(':checked')) {
-                        error = 0;
-                    }
-                });
-
-                if (error == 1) {
-                    return false;
-                }
-            }
-        });
-        return !error;
-    }, 'Please select one of each ratings above.');
+            ratings.each(function (index, rating) {
+                noError = noError && $(rating).find('input:checked').length > 0;
+            });
+            return noError;
+        },
+        'Please select one of each ratings above.');
 })(jQuery);
diff --git a/app/code/Magento/Review/view/frontend/form.phtml b/app/code/Magento/Review/view/frontend/form.phtml
index 1ba33b81bfe29b1ac412a6d9ec5618a13e259dfe..305655b956b0ba44dcc3ccc7eb29446132a9a6e0 100644
--- a/app/code/Magento/Review/view/frontend/form.phtml
+++ b/app/code/Magento/Review/view/frontend/form.phtml
@@ -97,22 +97,16 @@
 </form>
 <script>
     (function($) {
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-            function() {
-                $('#review-form').validation({
-                    errorPlacement: function (error, element) {
-                        if (element.parents('#product-review-table').length) {
-                            $('#product-review-table').siblings(this.errorElement + '.' + this.errorClass).remove();
-                            $('#product-review-table').after(error);
-                        } else {
-                            element.after(error);
-                        }
-                    }
-                });
-            });
+        $('#review-form').mage('validation', {
+            errorPlacement: function (error, element) {
+                if (element.parents('#product-review-table').length) {
+                    $('#product-review-table').siblings(this.errorElement + '.' + this.errorClass).remove();
+                    $('#product-review-table').after(error);
+                } else {
+                    element.after(error);
+                }
+            }
+        });
     })(jQuery);
 </script>
 <?php else: ?>
diff --git a/app/code/Magento/Rss/Block/Catalog/AbstractCatalog.php b/app/code/Magento/Rss/Block/Catalog/AbstractCatalog.php
index 0558d830293baa669685be0a01cf5e8347a7ab33..18a2538dd978dba1c2959c484a5f71578b449efb 100644
--- a/app/code/Magento/Rss/Block/Catalog/AbstractCatalog.php
+++ b/app/code/Magento/Rss/Block/Catalog/AbstractCatalog.php
@@ -75,67 +75,6 @@ class AbstractCatalog extends \Magento\Rss\Block\AbstractBlock
         $this->_isScopePrivate = true;
     }
 
-    /**
-     * Return Price Block renderer for specified product type
-     *
-     * @param string $type Catalog Product type
-     * @return \Magento\Framework\View\Element\Template
-     * @throws \RuntimeException
-     * @deprecated
-     */
-    protected function _getPriceBlock($type)
-    {
-        if (!isset($this->_priceBlock[$type])) {
-            /** @var \Magento\Framework\View\Element\RendererList $rendererList */
-            $rendererList = $this->getRendererListName() ? $this->getLayout()->getBlock(
-                $this->getRendererListName()
-            ) : $this->getChildBlock(
-                'renderer.list'
-            );
-            if (!$rendererList) {
-                throw new \RuntimeException(
-                    'Renderer list for block "' . $this->getNameInLayout() . '" is not defined'
-                );
-            }
-            $overriddenTemplates = $this->getOverriddenTemplates() ?: array();
-            $template = isset(
-                $overriddenTemplates[$type]
-            ) ? $overriddenTemplates[$type] : $this->getRendererTemplate();
-            $renderer = $rendererList->getRenderer($type, self::DEFAULT_TYPE, $template);
-            $this->_priceBlock[$type] = $renderer;
-        }
-        return $this->_priceBlock[$type];
-    }
-
-    /**
-     * Returns product price html for RSS feed
-     *
-     * @param \Magento\Catalog\Model\Product $product
-     * @param bool $displayMinimalPrice Display "As low as" etc.
-     * @param string $idSuffix Suffix for HTML containers
-     * @return string
-     * @deprecated see renderPriceHtml
-     */
-    public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')
-    {
-        $typeId = $product->getTypeId();
-        if ($this->_catalogData->canApplyMsrp($product)) {
-            $typeId = $this->_mapRenderer;
-        }
-
-        return $this->_getPriceBlock(
-            $typeId
-        )->setProduct(
-            $product
-        )->setDisplayMinimalPrice(
-            $displayMinimalPrice
-        )->setIdSuffix(
-            $idSuffix
-        )->setUseLinkForAsLowAs(
-            $this->_useLinkForAsLowAs
-        )->toHtml();
-    }
-
     /**
      * Get rendered price html
      *
@@ -151,7 +90,7 @@ class AbstractCatalog extends \Magento\Rss\Block\AbstractBlock
         $price = '';
         if ($priceRender) {
             $price = $priceRender->render(
-                \Magento\Catalog\Pricing\Price\FinalPriceInterface::PRICE_TYPE_FINAL,
+                \Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE,
                 $product,
                 [
                     'display_minimal_price'  => $displayMinimalPrice,
diff --git a/app/code/Magento/Rss/Block/Catalog/Category.php b/app/code/Magento/Rss/Block/Catalog/Category.php
index 88828ed37903d7124345d71ddef0923d00d74c8d..c2d48d754d9b00c6ea7169141b1678b74da48a4e 100644
--- a/app/code/Magento/Rss/Block/Catalog/Category.php
+++ b/app/code/Magento/Rss/Block/Catalog/Category.php
@@ -223,8 +223,7 @@ class Category extends \Magento\Rss\Block\Catalog\AbstractCatalog
             $product->getDescription();
 
         if ($product->getAllowedPriceInRss()) {
-            $description .= $this->getPriceHtml($product, true);
-            $description .= 'NEWPRICETEST: ' . $this->renderPriceHtml($product, true) . ' ENDNEWPRICETEST';
+            $description .= $this->renderPriceHtml($product, true);
         }
 
         $description .= '</td></tr></table>';
diff --git a/app/code/Magento/Rss/Block/Catalog/NewCatalog.php b/app/code/Magento/Rss/Block/Catalog/NewCatalog.php
index 20b457ec5279cd01c8caedc962d38e2af9497725..49a6e88e05193a518517411b93beb8aeb9fdbe79 100644
--- a/app/code/Magento/Rss/Block/Catalog/NewCatalog.php
+++ b/app/code/Magento/Rss/Block/Catalog/NewCatalog.php
@@ -224,8 +224,7 @@ class NewCatalog extends \Magento\Rss\Block\Catalog\AbstractCatalog
             $product->getDescription();
 
         if ($allowedPriceInRss) {
-            $description .= $this->getPriceHtml($product, true);
-            $description .= 'NEWPRICETEST: ' . $this->renderPriceHtml($product, true) . ' ENDNEWPRICETEST';
+            $description .= $this->renderPriceHtml($product, true);
         }
 
         $description .= '</td>' . '</tr></table>';
diff --git a/app/code/Magento/Rss/Block/Catalog/Special.php b/app/code/Magento/Rss/Block/Catalog/Special.php
index 5d929bf374daa12770b12dd1430b8cf10f4c1e64..9a0d93816443204d6b804c966ae40b7d45204069 100644
--- a/app/code/Magento/Rss/Block/Catalog/Special.php
+++ b/app/code/Magento/Rss/Block/Catalog/Special.php
@@ -53,9 +53,9 @@ class Special extends \Magento\Rss\Block\Catalog\AbstractCatalog
     protected $_resourceIterator;
 
     /**
-     * @var \Magento\Core\Helper\Data
+     * @var \Magento\Framework\Pricing\PriceCurrencyInterface
      */
-    protected $_coreData;
+    protected $_priceCurrency;
 
     /**
      * @var \Magento\Catalog\Helper\Image
@@ -71,7 +71,7 @@ class Special extends \Magento\Rss\Block\Catalog\AbstractCatalog
      * @param \Magento\Framework\View\Element\Template\Context $context
      * @param \Magento\Framework\App\Http\Context $httpContext
      * @param \Magento\Catalog\Helper\Data $catalogData
-     * @param \Magento\Core\Helper\Data $coreData
+     * @param \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency
      * @param \Magento\Catalog\Model\ProductFactory $productFactory
      * @param \Magento\Rss\Model\RssFactory $rssFactory
      * @param \Magento\Framework\Model\Resource\Iterator $resourceIterator
@@ -83,7 +83,7 @@ class Special extends \Magento\Rss\Block\Catalog\AbstractCatalog
         \Magento\Framework\View\Element\Template\Context $context,
         \Magento\Framework\App\Http\Context $httpContext,
         \Magento\Catalog\Helper\Data $catalogData,
-        \Magento\Core\Helper\Data $coreData,
+        \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency,
         \Magento\Catalog\Model\ProductFactory $productFactory,
         \Magento\Rss\Model\RssFactory $rssFactory,
         \Magento\Framework\Model\Resource\Iterator $resourceIterator,
@@ -93,7 +93,7 @@ class Special extends \Magento\Rss\Block\Catalog\AbstractCatalog
     ) {
         $this->_outputHelper = $outputHelper;
         $this->_imageHelper = $imageHelper;
-        $this->_coreData = $coreData;
+        $this->_priceCurrency = $priceCurrency;
         $this->_productFactory = $productFactory;
         $this->_rssFactory = $rssFactory;
         $this->_resourceIterator = $resourceIterator;
@@ -183,9 +183,9 @@ class Special extends \Magento\Rss\Block\Catalog\AbstractCatalog
                 // render a row for RSS feed
                 $product->setData($result);
                 $html = sprintf(
-                    '<table><tr>
-                    <td><a href="%s"><img src="%s" alt="" border="0" align="left" height="75" width="75" /></a></td>
-                    <td style="text-decoration:none;">%s',
+                    '<table><tr>' .
+                    '<td><a href="%s"><img src="%s" alt="" border="0" align="left" height="75" width="75" /></a></td>' .
+                    '<td style="text-decoration:none;">%s',
                     $product->getProductUrl(),
                     $this->_imageHelper->init($product, 'thumbnail')->resize(75, 75),
                     $this->_outputHelper->productAttribute($product, $product->getDescription(), 'description')
@@ -208,8 +208,8 @@ class Special extends \Magento\Rss\Block\Catalog\AbstractCatalog
                         }
                         $html .= sprintf(
                             '<p>%s %s%s</p>',
-                            __('Price: %1', $this->_coreData->currency($result['price'])),
-                            __('Special Price: %1', $this->_coreData->currency($result['final_price'])),
+                            __('Price: %1', $this->_priceCurrency->convertAndFormat($result['price'])),
+                            __('Special Price: %1', $this->_priceCurrency->convertAndFormat($result['final_price'])),
                             $special
                         );
                     }
diff --git a/app/code/Magento/Rss/Block/Wishlist.php b/app/code/Magento/Rss/Block/Wishlist.php
index 68d28ed139ab31961922adb45e2508e225483cd2..0f78246031999381180cc24d6cc0a61c650d1707 100644
--- a/app/code/Magento/Rss/Block/Wishlist.php
+++ b/app/code/Magento/Rss/Block/Wishlist.php
@@ -70,7 +70,6 @@ class Wishlist extends \Magento\Wishlist\Block\AbstractBlock
      * @param \Magento\Rss\Model\RssFactory $rssFactory
      * @param \Magento\Catalog\Helper\Output $outputHelper
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
@@ -80,14 +79,18 @@ class Wishlist extends \Magento\Wishlist\Block\AbstractBlock
         \Magento\Wishlist\Model\WishlistFactory $wishlistFactory,
         \Magento\Rss\Model\RssFactory $rssFactory,
         \Magento\Catalog\Helper\Output $outputHelper,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_outputHelper = $outputHelper;
         $this->_coreData = $coreData;
         $this->_wishlistFactory = $wishlistFactory;
         $this->_rssFactory = $rssFactory;
-        parent::__construct($context, $httpContext, $productFactory, $data, $priceBlockTypes);
+        parent::__construct(
+            $context,
+            $httpContext,
+            $productFactory,
+            $data
+        );
     }
 
     /**
@@ -180,7 +183,7 @@ class Wishlist extends \Magento\Wishlist\Block\AbstractBlock
                     ) . '<p>';
 
                 if ($product->getAllowedPriceInRss()) {
-                    $description .= $this->getPriceHtml($product, true);
+                    $description .= $this->getProductPrice($product);
                 }
                 $description .= '</p>';
 
@@ -228,19 +231,4 @@ class Wishlist extends \Magento\Wishlist\Block\AbstractBlock
         $additional['_rss'] = true;
         return parent::getProductUrl($product, $additional);
     }
-
-    /**
-     * Adding customized price template for product type, used as action in layouts
-     *
-     * @param string $type Catalog Product Type
-     * @param string $block Block Type
-     * @param string $template Template
-     * @return void
-     */
-    public function addPriceBlockType($type, $block = '', $template = '')
-    {
-        if ($type) {
-            $this->_priceBlockTypes[$type] = array('block' => $block, 'template' => $template);
-        }
-    }
 }
diff --git a/app/code/Magento/Rss/view/frontend/layout/rss_catalog_new.xml b/app/code/Magento/Rss/view/frontend/layout/rss_catalog_new.xml
index 63060f239f24dbdfd1c37afcc69f05380b8fea51..eb952b5fc588619e08536c69ac5a2f59d555fb0a 100644
--- a/app/code/Magento/Rss/view/frontend/layout/rss_catalog_new.xml
+++ b/app/code/Magento/Rss/view/frontend/layout/rss_catalog_new.xml
@@ -26,12 +26,11 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <update handle="catalog_product_rss_feed_renderer_list" />
     <block class="Magento\Rss\Block\Catalog\NewCatalog" output="1" name="rss.catalog.new" cacheable="false">
-        <block class="Magento\Framework\View\Element\RendererList" name="catalog.product.rss.feed.renderer.list" as="renderer.list" />
-    </block>
-    <block class="Magento\Framework\Pricing\Render" name="product.price.render.default">
-        <arguments>
-            <argument name="price_render_handle" xsi:type="string">catalog_product_prices</argument>
-            <!-- set "override" configuration settings here -->
-        </arguments>
+        <block class="Magento\Framework\Pricing\Render" name="product.price.render.default">
+            <arguments>
+                <argument name="price_render_handle" xsi:type="string">catalog_product_prices</argument>
+                <!-- set "override" configuration settings here -->
+            </arguments>
+        </block>
     </block>
 </layout>
diff --git a/app/code/Magento/Rss/view/frontend/layout/rss_index_wishlist.xml b/app/code/Magento/Rss/view/frontend/layout/rss_index_wishlist.xml
index ddf90c9901f05ab7ea773ba0b7e42e77483dbc3d..434dfb0c660e624063f3826602a88b54b9553677 100644
--- a/app/code/Magento/Rss/view/frontend/layout/rss_index_wishlist.xml
+++ b/app/code/Magento/Rss/view/frontend/layout/rss_index_wishlist.xml
@@ -24,11 +24,5 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
-    <block class="Magento\Rss\Block\Wishlist" name="rss.wishlist" output="1" cacheable="false">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">msrp_rss</argument>
-            <argument name="block" xsi:type="string">Magento\Catalog\Block\Product\Price</argument>
-            <argument name="template" xsi:type="string">Magento_Wishlist::render/item/price_msrp_rss.phtml</argument>
-        </action>
-    </block>
-</layout>
+    <block class="Magento\Rss\Block\Wishlist" name="rss.wishlist" output="1" cacheable="false" />
+</layout>
\ No newline at end of file
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php
index 98596e95a9e472e8264bc325f9d332c4776c60a2..9a5f6d40003cf4cba1ea0c078a6b5812255fad89 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Items/Grid.php
@@ -336,13 +336,15 @@ class Grid extends \Magento\Sales\Block\Adminhtml\Order\Create\AbstractCreate
      */
     public function getQtyTitle($item)
     {
-        $prices = $item->getProduct()->getTierPrice();
+        $prices = $item->getProduct()
+            ->getPriceInfo()
+            ->getPrice(\Magento\Catalog\Pricing\Price\TierPrice::PRICE_CODE)
+            ->getTierPriceList();
         if ($prices) {
             $info = array();
             foreach ($prices as $data) {
-                $qty = $data['price_qty'] * 1;
                 $price = $this->convertPrice($data['price']);
-                $info[] = __('Buy %1 for price %2', $qty, $price);
+                $info[] = __('Buy %1 for price %2', $data['price_qty'], $price);
             }
             return implode(', ', $info);
         } else {
diff --git a/app/code/Magento/Sales/view/frontend/guest/form.phtml b/app/code/Magento/Sales/view/frontend/guest/form.phtml
index 3a5cebba6e7a6352b5d9cc780425263e91247e14..f8863c421d20b32f3e03b0133b1d291b8a2c9e25 100644
--- a/app/code/Magento/Sales/view/frontend/guest/form.phtml
+++ b/app/code/Magento/Sales/view/frontend/guest/form.phtml
@@ -23,7 +23,7 @@
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
 ?>
-<form class="form orders search" id="oar-widget-orders-and-returns-form" action="<?php echo $this->getActionUrl() ?>"
+<form class="form orders search" id="oar-widget-orders-and-returns-form" data-mage-init='{"ordersReturns":{}, "validation":{}}' action="<?php echo $this->getActionUrl() ?>"
       method="post" name="guest_post">
     <fieldset class="fieldset">
         <legend class="legend"><span><?php echo __('Order Information') ?></span></legend>
@@ -79,12 +79,3 @@
         </div>
     </div>
 </form>
-<script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-        "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-        "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-        "<?php echo $this->getViewFileUrl('Magento_Sales::orders-returns.js');?>", function () {
-            jQuery('#oar-widget-orders-and-returns-form').ordersReturns().validation();
-        });
-</script>
diff --git a/app/code/Magento/Sales/view/frontend/js/components.phtml b/app/code/Magento/Sales/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..97cace3b45b1f1f55e8593ed29a5537469b51f4c
--- /dev/null
+++ b/app/code/Magento/Sales/view/frontend/js/components.phtml
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            extraOptions: [
+                '<?php echo $this->getViewFileUrl('Magento_GiftMessage::extra-options.js') ?>'
+            ],
+            giftMessage: [
+                '<?php echo $this->getViewFileUrl('Magento_Sales::gift-message.js') ?>'
+            ],
+            giftOptions: [
+                '<?php echo $this->getViewFileUrl('Magento_GiftMessage::gift-options.js') ?>'
+            ],
+            ordersReturns: [
+                '<?php echo $this->getViewFileUrl('Magento_Sales::orders-returns.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Sales/view/frontend/layout/default.xml b/app/code/Magento/Sales/view/frontend/layout/default.xml
index d86ed5d6cdf98f0401ca27b67dd5eab7ad2e46d3..e9fc0c2386cd79788e71e5bb2f1b1543a36e1654 100644
--- a/app/code/Magento/Sales/view/frontend/layout/default.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/default.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="sales_page_head_components" template="Magento_Sales::js/components.phtml"/>
+    </referenceBlock>
     <referenceContainer name="right">
         <block class="Magento\Sales\Block\Reorder\Sidebar" name="sale.reorder.sidebar" as="reorder" template="reorder/sidebar.phtml"/>
     </referenceContainer>
diff --git a/app/code/Magento/Sales/view/frontend/order/items.phtml b/app/code/Magento/Sales/view/frontend/order/items.phtml
index 235b1055068259b5d3d6aca79bb03c26d58d023b..5bf0ff4fc204e3afeccfd1ffac67c40c980c16e3 100644
--- a/app/code/Magento/Sales/view/frontend/order/items.phtml
+++ b/app/code/Magento/Sales/view/frontend/order/items.phtml
@@ -75,8 +75,6 @@
 </div>
 <?php if ($_giftMessage): ?>
     <script type="text/javascript">
-        head.js("<?php echo $this->getViewFileUrl('Magento_Sales::gift-message.js')?>", function() {
-            jQuery('a.action.show').add('a.action.close').giftMessage();
-        });
+        jQuery('a.action.show').add('a.action.close').mage('giftMessage', {});
     </script>
 <?php endif; ?>
diff --git a/app/code/Magento/Sales/view/frontend/reorder/sidebar.phtml b/app/code/Magento/Sales/view/frontend/reorder/sidebar.phtml
index 3cf9f60802208815165ee7a9209c2fdbded748ba..a1459256a1934708aa16ba382bd3a20dea0843b4 100644
--- a/app/code/Magento/Sales/view/frontend/reorder/sidebar.phtml
+++ b/app/code/Magento/Sales/view/frontend/reorder/sidebar.phtml
@@ -71,19 +71,11 @@
     </div>
     <?php echo $this->getPagerHtml(); ?>
     <script type="text/javascript">
-        head.js(
-            "<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-            function() {
-                jQuery('#reorder-validate-detail').validation({
-                    errorPlacement: function(error, element) {
-                        error.appendTo('#cart-sidebar-reorder-advice-container');
-                    }
-                });
+        jQuery('#reorder-validate-detail').mage('validation', {
+            errorPlacement: function(error, element) {
+                error.appendTo('#cart-sidebar-reorder-advice-container');
             }
-        );
+        });
     </script>
 </div>
 <?php endif ?>
diff --git a/app/code/Magento/Sales/view/frontend/widget/guest/form.phtml b/app/code/Magento/Sales/view/frontend/widget/guest/form.phtml
index 5fe6858e8c516daf51d2696c08928b8d0e853638..913f3254a29604790fd65ebfeb861376ff869814 100644
--- a/app/code/Magento/Sales/view/frontend/widget/guest/form.phtml
+++ b/app/code/Magento/Sales/view/frontend/widget/guest/form.phtml
@@ -31,7 +31,7 @@
             <strong><?php echo __('Orders and Returns') ?></strong>
         </div>
         <div class="content">
-            <form id="oar-widget-orders-and-returns-form" action="<?php echo $this->getActionUrl() ?>" method="post"
+            <form id="oar-widget-orders-and-returns-form" data-mage-init='{"ordersReturns":{},"validation":{}}' action="<?php echo $this->getActionUrl() ?>" method="post"
                   class="form orders search" name="guest_post">
                 <div class="field find required">
                     <label class="label"><span><?php echo __('Find Order By:') ?></span></label>
@@ -83,13 +83,4 @@
             </form>
         </div>
     </div>
-    <script type="text/javascript">
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('Magento_Sales::orders-returns.js');?>", function () {
-                jQuery('#oar-widget-orders-and-returns-form').ordersReturns().validation();
-            });
-    </script>
 <?php endif; ?>
diff --git a/app/code/Magento/Sendfriend/view/frontend/send.phtml b/app/code/Magento/Sendfriend/view/frontend/send.phtml
index 23a8fd40596cd3e198635b9a73ff156f9e0e645d..2dfbcd5e5f5730ddf2485b2c72028370160f2f60 100644
--- a/app/code/Magento/Sendfriend/view/frontend/send.phtml
+++ b/app/code/Magento/Sendfriend/view/frontend/send.phtml
@@ -54,7 +54,19 @@
     </fieldset>
 </script>
 
-<form action="<?php echo $this->getSendUrl() ?>" method="post" id="product-sendtofriend-form" class="form send friend" data-hasRequired="<?php echo __('* Required Fields') ?>">
+<form action="<?php echo $this->getSendUrl() ?>" method="post" id="product-sendtofriend-form"
+      data-mage-init='{
+        "rowBuilder":{
+            "rowTemplate":"#add-recipient-tmpl",
+            "rowContainer":"#recipients-options",
+            "rowParentElem":"<div></div>",
+            "btnRemoveSelector":".action.delete",
+            "maxRows":"<?php echo $this->getMaxRecipients() ?>",
+            "maxRowsMsg":"#max-recipient-message",
+            "addRowBtn":"#add-recipient-button",
+            "additionalRowClass":"additional"},
+        "validation":{}}'
+      class="form send friend" data-hasRequired="<?php echo __('* Required Fields') ?>">
     <fieldset class="fieldset sender" id="sender_options">
         <?php echo $this->getBlockHtml('formkey')?>
         <legend class="legend"><span><?php echo __('Sender:') ?></span></legend>
@@ -117,24 +129,6 @@
 </form>
 <script type="text/javascript">
     //<![CDATA[
-    (function($) {
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('Magento_Theme::js/row-builder.js')?>", function() {
-                $('#product-sendtofriend-form').rowBuilder({
-                    rowTemplate: '#add-recipient-tmpl',
-                    rowContainer: '#recipients-options',
-                    rowParentElem: '<div></div>',
-                    btnRemoveSelector: '.action.delete',
-                    maxRows: '<?php echo $this->getMaxRecipients() ?>',
-                    maxRowsMsg: '#max-recipient-message',
-                    addRowBtn: '#add-recipient-button',
-                    additionalRowClass: 'additional'
-                }).validation();
-                $('a[role="back"]').on('click', function() { history.back(); return false; });
-            })
-    })(jQuery);
+        jQuery('a[role="back"]').on('click', function() { history.back(); return false; });
     //]]>
 </script>
diff --git a/app/code/Magento/Store/Model/Storage/Db.php b/app/code/Magento/Store/Model/Storage/Db.php
index fad498b340c99ad3701326d25d89639fbb32747e..1b4088b6fa31392fcc7d8b137cfa1657b00afca5 100644
--- a/app/code/Magento/Store/Model/Storage/Db.php
+++ b/app/code/Magento/Store/Model/Storage/Db.php
@@ -214,7 +214,7 @@ class Db implements \Magento\Store\Model\StoreManagerInterface
             $websiteStores[$store->getWebsiteId()][$store->getId()] = $store;
             $groupStores[$store->getGroupId()][$store->getId()] = $store;
 
-            if (is_null($this->_store) && $store->getCode() === \Magento\Store\Model\Store::DEFAULT_CODE) {
+            if ($this->_hasSingleStore) {
                 $this->_store = $store;
             }
         }
diff --git a/app/code/Magento/Tax/Model/Calculation.php b/app/code/Magento/Tax/Model/Calculation.php
index adfd71dcd5e7f61eaa54ce8652f72dda5a5e0575..f9896b5168edf06b2c712e8abedb28212e42663d 100644
--- a/app/code/Magento/Tax/Model/Calculation.php
+++ b/app/code/Magento/Tax/Model/Calculation.php
@@ -517,17 +517,11 @@ class Calculation extends \Magento\Framework\Model\AbstractModel
         } else {
             $regionId = $address->getRegionId();
         }
-        $request->setCountryId(
-            $address->getCountryId()
-        )->setRegionId(
-            $regionId
-        )->setPostcode(
-            $address->getPostcode()
-        )->setStore(
-            $store
-        )->setCustomerClassId(
-            $customerTaxClass
-        );
+        $request->setCountryId($address->getCountryId())
+            ->setRegionId($regionId)
+            ->setPostcode($address->getPostcode())
+            ->setStore($store)
+            ->setCustomerClassId($customerTaxClass);
         return $request;
     }
 
diff --git a/app/code/Magento/Tax/Pricing/Adjustment.php b/app/code/Magento/Tax/Pricing/Adjustment.php
index fb998a17bfcb953f7abb4515c5861157a7ff8c1b..517809c9187f918eff2deadec115add43071cf12 100644
--- a/app/code/Magento/Tax/Pricing/Adjustment.php
+++ b/app/code/Magento/Tax/Pricing/Adjustment.php
@@ -38,7 +38,7 @@ class Adjustment implements AdjustmentInterface
     /**
      * Adjustment code tax
      */
-    const CODE = 'tax';
+    const ADJUSTMENT_CODE = 'tax';
 
     /**
      * @var TaxHelper
@@ -67,7 +67,7 @@ class Adjustment implements AdjustmentInterface
      */
     public function getAdjustmentCode()
     {
-        return self::CODE;
+        return self::ADJUSTMENT_CODE;
     }
 
     /**
@@ -118,8 +118,7 @@ class Adjustment implements AdjustmentInterface
     public function applyAdjustment($amount, SaleableInterface $saleableItem)
     {
         $includingTax = !$this->taxHelper->priceIncludesTax();
-        $amount = $this->taxHelper->getPrice($saleableItem, $amount, $includingTax);
-        return $amount;
+        return $this->taxHelper->getPrice($saleableItem, $amount, $includingTax);
     }
 
     /**
diff --git a/app/code/Magento/Tax/Pricing/Price/Plugin/AttributePrice.php b/app/code/Magento/Tax/Pricing/Price/Plugin/AttributePrice.php
new file mode 100644
index 0000000000000000000000000000000000000000..65cbc057d6902224d6f6be2b66875255cf35d7dc
--- /dev/null
+++ b/app/code/Magento/Tax/Pricing/Price/Plugin/AttributePrice.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Tax
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+namespace Magento\Tax\Pricing\Price\Plugin;
+
+/**
+ * Class AttributePrice
+ * @package Magento\Tax\Pricing\Price\Plugin
+ */
+class AttributePrice
+{
+    /**
+     * @var \Magento\Tax\Helper\Data
+     */
+    protected $taxHelper;
+
+    /**
+     * @var \Magento\Tax\Model\Calculation
+     */
+    protected $calculation;
+
+    /**
+     * @param \Magento\Tax\Helper\Data $helper
+     * @param \Magento\Tax\Model\Calculation $calculation
+     */
+    public function __construct(
+        \Magento\Tax\Helper\Data $helper,
+        \Magento\Tax\Model\Calculation $calculation
+    ) {
+        $this->taxHelper = $helper;
+        $this->calculation = $calculation;
+    }
+
+    /**
+     * Get Tax Adjustments for configurable product
+     *
+     * @param \Magento\ConfigurableProduct\Pricing\Price\AttributePrice $attribute
+     * @param array $result
+     * @return array
+     */
+    public function afterPrepareAdjustmentConfig(
+        \Magento\ConfigurableProduct\Pricing\Price\AttributePrice $attribute,
+        array $result
+    ) {
+        $product = $result['product'];
+
+        $productClassId = $product->getTaxClassId();
+
+        $defaultValue = $this->applyRate($productClassId, false, false, false);
+        $result['defaultTax'] = $defaultValue + $result['defaultTax'];
+
+        $currentTax = $this->applyRate($productClassId);
+        $result['currentTax'] = $currentTax + $result['currentTax'];
+
+        $adjustment = $product->getPriceInfo()->getAdjustment(\Magento\Tax\Pricing\Adjustment::ADJUSTMENT_CODE);
+
+        $result['includeTax'] = $adjustment->isIncludedInBasePrice();
+        $result['showIncludeTax'] = $this->taxHelper->displayPriceIncludingTax();
+        $result['showBothPrices'] = $this->taxHelper->displayBothPrices();
+        return $result;
+    }
+
+    /**
+     * Apply Tax Rate
+     *
+     * @param int $classId
+     * @param null $shippingAddress
+     * @param null $billingAddress
+     * @param null $customerTaxClass
+     * @return float
+     */
+    protected function applyRate($classId, $shippingAddress = null, $billingAddress = null, $customerTaxClass = null)
+    {
+        $rateRequest = $this->calculation->getRateRequest($shippingAddress, $billingAddress, $customerTaxClass);
+        $rateRequest->setProductClassId($classId);
+        return $this->calculation->getRate($rateRequest);
+    }
+}
diff --git a/app/code/Magento/Tax/Pricing/Render/Adjustment.php b/app/code/Magento/Tax/Pricing/Render/Adjustment.php
index d4aca924dcb6a3d58e8ba9923168e52f8fca2f08..faca5958b2f7c521d21a09604f7c7e6fc6f1d8c2 100644
--- a/app/code/Magento/Tax/Pricing/Render/Adjustment.php
+++ b/app/code/Magento/Tax/Pricing/Render/Adjustment.php
@@ -56,15 +56,15 @@ class Adjustment extends AbstractAdjustment
     }
 
     /**
-     * @return null
+     * @return string
      */
     protected function apply()
     {
-        $html = $this->toHtml();
         if ($this->displayBothPrices()) {
             if ($this->getZone() !== \Magento\Framework\Pricing\Render::ZONE_ITEM_OPTION) {
-                $this->amountRender->setPriceDisplayLabel(__('Excl. Tax:'));
+                $this->amountRender->setPriceDisplayLabel(__('Excl. Tax'));
             }
+            $this->amountRender->setPriceWrapperCss('price-excluding-tax');
             $this->amountRender->setPriceId(
                 $this->buildIdWithPrefix('price-excluding-tax-')
             );
@@ -73,15 +73,12 @@ class Adjustment extends AbstractAdjustment
                 $this->amountRender->getAmount()->getAdjustmentAmount($this->getAdjustmentCode())
             );
         } elseif ($this->displayPriceExcludingTax()) {
-
             $this->amountRender->setDisplayValue(
                 $this->amountRender->getDisplayValue() -
                 $this->amountRender->getAmount()->getAdjustmentAmount($this->getAdjustmentCode())
             );
         }
-        if (trim($html)) {
-            $this->amountRender->addAdjustmentHtml($this->getAdjustmentCode(), $html);
-        }
+        return $this->toHtml();
     }
 
     /**
@@ -92,7 +89,7 @@ class Adjustment extends AbstractAdjustment
     public function getAdjustmentCode()
     {
         //@TODO We can build two model using DI, not code. What about passing it in constructor?
-        return \Magento\Tax\Pricing\Adjustment::CODE;
+        return \Magento\Tax\Pricing\Adjustment::ADJUSTMENT_CODE;
     }
 
     /**
diff --git a/app/code/Magento/Tax/etc/di.xml b/app/code/Magento/Tax/etc/di.xml
index 7ca6b7990aaddf4b0a3039973779ed619f6563f1..f916d6a5490c25a2236f6e5fd9aa8a34ac3ab4e0 100644
--- a/app/code/Magento/Tax/etc/di.xml
+++ b/app/code/Magento/Tax/etc/di.xml
@@ -51,4 +51,7 @@
             </argument>
         </arguments>
     </type>
+    <type name="Magento\ConfigurableProduct\Pricing\Price\AttributePrice">
+        <plugin name="prepareAdjustmentConfig" type="Magento\Tax\Pricing\Price\Plugin\AttributePrice" sortOrder="10"/>
+    </type>
 </config>
diff --git a/app/code/Magento/Tax/etc/module.xml b/app/code/Magento/Tax/etc/module.xml
index ca42eb5853897f13165b32edef9b549c1653bac6..099b9fe5254ed8ac588ebe7fa9cd823aea91c703 100644
--- a/app/code/Magento/Tax/etc/module.xml
+++ b/app/code/Magento/Tax/etc/module.xml
@@ -43,6 +43,7 @@
             <module name="Magento_Sales"/>
             <module name="Magento_Reports"/>
             <module name="Magento_Theme"/>
+            <module name="Magento_ConfigurableProduct"/>
         </depends>
     </module>
 </config>
diff --git a/app/code/Magento/Tax/view/frontend/layout/catalog_product_prices.xml b/app/code/Magento/Tax/view/base/layout/catalog_product_prices.xml
similarity index 100%
rename from app/code/Magento/Tax/view/frontend/layout/catalog_product_prices.xml
rename to app/code/Magento/Tax/view/base/layout/catalog_product_prices.xml
diff --git a/app/code/Magento/Tax/view/frontend/pricing/adjustment.phtml b/app/code/Magento/Tax/view/base/pricing/adjustment.phtml
similarity index 79%
rename from app/code/Magento/Tax/view/frontend/pricing/adjustment.phtml
rename to app/code/Magento/Tax/view/base/pricing/adjustment.phtml
index 13f3a05cf1ada9a2b9ffbb68f24345b2efa86054..d5341d98169ff065f9674b3d412d46bb4e3cba4b 100644
--- a/app/code/Magento/Tax/view/frontend/pricing/adjustment.phtml
+++ b/app/code/Magento/Tax/view/base/pricing/adjustment.phtml
@@ -28,10 +28,9 @@
 <?php /** @var \Magento\Tax\Pricing\Render\Adjustment $this */ ?>
 
 <?php if ($this->displayBothPrices()): ?>
-    <span class="price-including-tax">
-        <span class="label"><?php echo __('Incl. Tax:') ?></span>
-        <span class="price" id="<?php echo $this->buildIdWithPrefix('price-including-tax-') ?>">
-            <?php echo $this->getDisplayAmount(false) ?>
-        </span>
-    </span>
+<span id="<?php echo $this->buildIdWithPrefix('price-including-tax-') ?>"
+      data-label="<?php echo __('Incl. Tax') ?>"
+      class="price-wrapper price-including-tax">
+    <span class="price" ><?php echo $this->getDisplayAmount(false) ?></span>
+</span>
 <?php endif; ?>
diff --git a/app/code/Magento/Tax/view/frontend/pricing/adjustment/bundle.phtml b/app/code/Magento/Tax/view/base/pricing/adjustment/bundle.phtml
similarity index 99%
rename from app/code/Magento/Tax/view/frontend/pricing/adjustment/bundle.phtml
rename to app/code/Magento/Tax/view/base/pricing/adjustment/bundle.phtml
index d9da473cc9ce46950677af825e1d737382ab83a0..9461ca5ef484797f7c2621c38983f4773dfaa6f6 100644
--- a/app/code/Magento/Tax/view/frontend/pricing/adjustment/bundle.phtml
+++ b/app/code/Magento/Tax/view/base/pricing/adjustment/bundle.phtml
@@ -1,4 +1,3 @@
-
 <?php
 /**
  * Magento
diff --git a/app/code/Magento/Tax/view/frontend/pricing/adjustment/downloadable.phtml b/app/code/Magento/Tax/view/base/pricing/adjustment/downloadable.phtml
similarity index 99%
rename from app/code/Magento/Tax/view/frontend/pricing/adjustment/downloadable.phtml
rename to app/code/Magento/Tax/view/base/pricing/adjustment/downloadable.phtml
index 85ef59ded848baf3c738d36285706da632762d6d..03ff1bf3aca12c416fc3b090e1630244452d0116 100644
--- a/app/code/Magento/Tax/view/frontend/pricing/adjustment/downloadable.phtml
+++ b/app/code/Magento/Tax/view/base/pricing/adjustment/downloadable.phtml
@@ -1,4 +1,3 @@
-
 <?php
 /**
  * Magento
@@ -42,4 +41,4 @@
         <?php endif; ?>
         </span>
     <?php endif; ?>
-</span>
\ No newline at end of file
+</span>
diff --git a/app/code/Magento/Theme/view/frontend/html/notices.phtml b/app/code/Magento/Theme/view/frontend/html/notices.phtml
index 885edbd7fad8cb663d74ac63c5384b14916c876f..2d40167f370aad5368c8d3b238bcc340f08d5a44 100644
--- a/app/code/Magento/Theme/view/frontend/html/notices.phtml
+++ b/app/code/Magento/Theme/view/frontend/html/notices.phtml
@@ -87,16 +87,13 @@
     <script type="text/javascript">
         // <![CDATA[
         (function($) {
-            head.js("<?php echo $this->getViewFileUrl('mage/cookies.js')?>",
-                "<?php echo $this->getViewFileUrl('Magento_Theme::js/notices.js')?>", function() {
-                    $('#notice-cookie-block').cookieBlock({
-                        cookieAllowButtonSelector: '#btn-cookie-allow',
-                        cookieName: '<?php echo \Magento\Store\Helper\Cookie::IS_USER_ALLOWED_SAVE_COOKIE ?>',
-                        cookieValue: '<?php echo $this->helper('Magento\Store\Helper\Cookie')->getAcceptedSaveCookiesWebsiteIds() ?>',
-                        cookieLifetime: <?php echo $this->helper('Magento\Store\Helper\Cookie')->getCookieRestrictionLifetime()?>,
-                        noCookiesUrl: '<?php echo $this->getUrl('cms/index/noCookies') ?>'
-                    });
-                });
+            $('#notice-cookie-block').mage('cookieBlock', {
+                cookieAllowButtonSelector: '#btn-cookie-allow',
+                cookieName: '<?php echo \Magento\Store\Helper\Cookie::IS_USER_ALLOWED_SAVE_COOKIE ?>',
+                cookieValue: '<?php echo $this->helper('Magento\Store\Helper\Cookie')->getAcceptedSaveCookiesWebsiteIds() ?>',
+                cookieLifetime: <?php echo $this->helper('Magento\Store\Helper\Cookie')->getCookieRestrictionLifetime()?>,
+                noCookiesUrl: '<?php echo $this->getUrl('cms/index/noCookies') ?>'
+            });
         })(jQuery);
         // ]]>
     </script>
diff --git a/app/code/Magento/Theme/view/frontend/js/components.phtml b/app/code/Magento/Theme/view/frontend/js/components.phtml
index cc3515be3fb5fafd7915281a1112502bd746ae1d..60ef4c182eea46056a1faa7548a4b63ba0559a7e 100644
--- a/app/code/Magento/Theme/view/frontend/js/components.phtml
+++ b/app/code/Magento/Theme/view/frontend/js/components.phtml
@@ -51,6 +51,9 @@
             ],
             redirectUrl: [
                 '<?php echo $this->getViewFileUrl('mage/redirect-url.js') ?>'
+            ],
+            cookieBlock: [
+                '<?php echo $this->getViewFileUrl('Magento_Theme::js/notices.js') ?>'
             ]
         });
     })(jQuery);
diff --git a/app/code/Magento/Theme/view/frontend/js/cookie.phtml b/app/code/Magento/Theme/view/frontend/js/cookie.phtml
index 4d12a89a3d25565d0adbc5d496af0d256f4f6dc1..ee5ef4ebe31c622a6b319ae6f58c68b06f31d7b0 100644
--- a/app/code/Magento/Theme/view/frontend/js/cookie.phtml
+++ b/app/code/Magento/Theme/view/frontend/js/cookie.phtml
@@ -35,16 +35,13 @@
 <script type="text/javascript">
     //<![CDATA[
     (function($) {
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.cookie.js') ?>",
-            "<?php echo $this->getViewFileUrl('mage/cookies.js') ?>", function() {
-            $.extend($.mage.cookies.defaults, {
-                expires: null,
-                path: '<?php echo $this->getPath()?>',
-                domain: '<?php echo $this->getDomain()?>',
-                secure: false
-            });
-            $.extend($.cookie.defaults, $.mage.cookies.defaults);
+        $.extend($.mage.cookies.defaults, {
+            expires: null,
+            path: '<?php echo $this->getPath()?>',
+            domain: '<?php echo $this->getDomain()?>',
+            secure: false
         });
+        $.extend($.cookie.defaults, $.mage.cookies.defaults);
     })(jQuery);
     //]]>
 </script>
diff --git a/app/code/Magento/Theme/view/frontend/layout/default_head_blocks.xml b/app/code/Magento/Theme/view/frontend/layout/default_head_blocks.xml
index 358212b2ebced9cd1df8d1705681d7634e70ed1b..94f1fe9cf0b9ec674ef7669bc3f5542c1c6a34a3 100644
--- a/app/code/Magento/Theme/view/frontend/layout/default_head_blocks.xml
+++ b/app/code/Magento/Theme/view/frontend/layout/default_head_blocks.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Template" name="theme_page_head_components" template="Magento_Theme::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="head">
         <block class="Magento\Theme\Block\Html\Head\Css" name="magento-calendar-css">
             <arguments>
@@ -48,9 +51,9 @@
                 <argument name="file" xsi:type="string">mage/jquery-no-conflict.js</argument>
             </arguments>
         </block>
-        <block class="Magento\Theme\Block\Html\Head\Script" name="head-load-min-js">
+        <block class="Magento\Theme\Block\Html\Head\Script" name="js-head-js">
             <arguments>
-                <argument name="file" xsi:type="string">headjs/head.load.min.js</argument>
+                <argument name="file" xsi:type="string">headjs/head.min.js</argument>
             </arguments>
         </block>
         <block class="Magento\Theme\Block\Html\Head\Script" name="magento-magento-js">
@@ -68,6 +71,11 @@
                 <argument name="file" xsi:type="string">mage/translate.js</argument>
             </arguments>
         </block>
+        <block class="Magento\Theme\Block\Html\Head\Script" name="jquery-jquery-cookie-js">
+            <arguments>
+                <argument name="file" xsi:type="string">jquery/jquery.cookie.js</argument>
+            </arguments>
+        </block>
         <block class="Magento\Theme\Block\Html\Head\Script" name="magento-cookies-js">
             <arguments>
                 <argument name="file" xsi:type="string">mage/cookies.js</argument>
diff --git a/app/code/Magento/User/view/email/password_reset_confirmation.html b/app/code/Magento/User/view/email/password_reset_confirmation.html
index 47a0751ce65da2b732b531a4329152edbc12010e..db52f230594193d112eeb7c515bbf2bb4b4292fa 100644
--- a/app/code/Magento/User/view/email/password_reset_confirmation.html
+++ b/app/code/Magento/User/view/email/password_reset_confirmation.html
@@ -27,7 +27,7 @@ body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif;
                             <td valign="top">
                                 <h1 style="font-size: 22px; font-weight: normal; line-height: 22px; margin: 0 0 11px 0;">Dear {{escapehtml var=$user.name}},</h1>
                                 <p style="font-size: 12px; line-height: 16px; margin: 0 0 8px 0;">There was recently a request to change the password for your account.</p>
-                                <p style="font-size: 12px; line-height: 16px; margin: 0;">If you requested this password change, please click on the following link to reset your password: <a href="{{store url="adminhtml/auth/resetpassword/" _query_id=$user.id _query_token=$user.rp_token}}" style="color:#1E7EC8;">{{store url="adminhtml/auth/resetpassword/" _query_id=$user.id _query_token=$user.rp_token}}</a></p>
+                                <p style="font-size: 12px; line-height: 16px; margin: 0;">If you requested this password change, please click on the following link to reset your password: <a href="{{store url="admin/auth/resetpassword/" _query_id=$user.id _query_token=$user.rp_token}}" style="color:#1E7EC8;">{{store url="admin/auth/resetpassword/" _query_id=$user.id _query_token=$user.rp_token}}</a></p>
                                 <p style="font-size: 12px; line-height: 16px; margin: 0;">If clicking the link does not work, please copy and paste the URL into your browser instead.</p>
                                 <br />
                                 <p style="font-size:12px; line-height:16px; margin:0;">If you did not make this request, you can ignore this message and your password will remain the same.</p>
diff --git a/app/code/Magento/Webapi/view/adminhtml/integration/activate/permissions/tab/webapi.phtml b/app/code/Magento/Webapi/view/adminhtml/integration/activate/permissions/tab/webapi.phtml
index 0f05871cd6c7f2c9138321eaf97baf0039b059a8..9aec659ae5f684e95fe8691199537c65d74b70af 100644
--- a/app/code/Magento/Webapi/view/adminhtml/integration/activate/permissions/tab/webapi.phtml
+++ b/app/code/Magento/Webapi/view/adminhtml/integration/activate/permissions/tab/webapi.phtml
@@ -40,9 +40,11 @@
 <?php if (!$this->isTreeEmpty()): ?>
     <script type="text/javascript">
     jQuery(function($) {
-        head.js('<?php echo $this->getViewFileUrl('jquery/jstree/jquery.hotkeys.js')?>',
+        head.js(
+            '<?php echo $this->getViewFileUrl('jquery/jstree/jquery.hotkeys.js')?>',
             '<?php echo $this->getViewFileUrl('jquery/jstree/jquery.jstree.js')?>',
-            '<?php echo $this->getViewFileUrl('Magento_User::js/roles-tree.js')?>', function() {
+            '<?php echo $this->getViewFileUrl('Magento_User::js/roles-tree.js')?>',
+            head.ready(function () {
                 $.widget('mage.rolesTree', $.mage.rolesTree, {
                     _checkNode: function(event) {},
                     _checkNodes: function() {
@@ -55,7 +57,7 @@
                     'treeInitData': <?php echo $this->getResourcesTreeJson() ?>,
                     'treeInitSelectedData': <?php echo $this->getSelectedResourcesJson() ?>
                 });
-            });
+            }));
     });
     </script>
 <?php endif ?>
diff --git a/app/code/Magento/Weee/Helper/Data.php b/app/code/Magento/Weee/Helper/Data.php
index 40f7de33210cb9be776f4298ca2d33c80124c489..960fc68cb432fa0397953e7a5f19bfedc7505f18 100644
--- a/app/code/Magento/Weee/Helper/Data.php
+++ b/app/code/Magento/Weee/Helper/Data.php
@@ -406,33 +406,6 @@ class Data extends \Magento\Framework\App\Helper\AbstractHelper
         return 0;
     }
 
-    /**
-     * Adds HTML containers and formats tier prices accordingly to the currency used
-     *
-     * @param \Magento\Catalog\Model\Product $product
-     * @param array                          &$tierPrices
-     * @return $this
-     */
-    public function processTierPrices($product, &$tierPrices)
-    {
-        $weeeAmount = $this->getAmountForDisplay($product);
-        $store = $this->_storeManager->getStore();
-        foreach ($tierPrices as $index => &$tier) {
-            $html = $store->formatPrice(
-                $store->convertPrice($this->_taxData->getPrice($product, $tier['website_price'], true) + $weeeAmount),
-                false
-            );
-            $tier['formated_price_incl_weee'] = '<span class="price tier-' . $index . '-incl-tax">' . $html . '</span>';
-            $html = $store->formatPrice(
-                $store->convertPrice($this->_taxData->getPrice($product, $tier['website_price']) + $weeeAmount),
-                false
-            );
-            $tier['formated_price_incl_weee_only'] = '<span class="price tier-' . $index . '">' . $html . '</span>';
-            $tier['formated_weee'] = $store->formatPrice($store->convertPrice($weeeAmount));
-        }
-        return $this;
-    }
-
     /**
      * Check if fixed taxes are used in system
      *
diff --git a/app/code/Magento/Weee/Pricing/Adjustment.php b/app/code/Magento/Weee/Pricing/Adjustment.php
index d23c03acc1b038df5d6442d0e94a5c5658ab7ac2..26f5520f71261fb2673f0d20952278c7086373a9 100644
--- a/app/code/Magento/Weee/Pricing/Adjustment.php
+++ b/app/code/Magento/Weee/Pricing/Adjustment.php
@@ -29,6 +29,7 @@ namespace Magento\Weee\Pricing;
 use Magento\Framework\Pricing\Adjustment\AdjustmentInterface;
 use Magento\Framework\Pricing\Object\SaleableInterface;
 use Magento\Weee\Helper\Data as WeeeHelper;
+use Magento\Tax\Pricing\Adjustment as TaxAdjustment;
 
 /**
  * Weee pricing adjustment
@@ -38,7 +39,7 @@ class Adjustment implements AdjustmentInterface
     /**
      * Adjustment code weee
      */
-    const CODE = 'weee';
+    const ADJUSTMENT_CODE = 'weee';
 
     /**
      * Weee helper
@@ -73,7 +74,7 @@ class Adjustment implements AdjustmentInterface
      */
     public function getAdjustmentCode()
     {
-        return self::CODE;
+        return self::ADJUSTMENT_CODE;
     }
 
     /**
@@ -98,8 +99,7 @@ class Adjustment implements AdjustmentInterface
             [
                 \Magento\Weee\Model\Tax::DISPLAY_INCL,
                 \Magento\Weee\Model\Tax::DISPLAY_INCL_DESCR,
-                \Magento\Weee\Model\Tax::DISPLAY_EXCL_DESCR_INCL,
-                4
+                \Magento\Weee\Model\Tax::DISPLAY_EXCL_DESCR_INCL
             ]
         );
     }
@@ -136,7 +136,7 @@ class Adjustment implements AdjustmentInterface
      */
     public function isExcludedWith($adjustmentCode)
     {
-        return ($adjustmentCode === self::CODE) || $adjustmentCode === \Magento\Tax\Pricing\Adjustment::CODE;
+        return (($adjustmentCode == self::ADJUSTMENT_CODE) || ($adjustmentCode == TaxAdjustment::ADJUSTMENT_CODE));
     }
 
     /**
diff --git a/app/code/Magento/Weee/Pricing/Render/Adjustment.php b/app/code/Magento/Weee/Pricing/Render/Adjustment.php
index d190872dec822f47ab58a118d953ab98d5902dd1..3e491a8e931872938476eea9ac04ee9be9683448 100644
--- a/app/code/Magento/Weee/Pricing/Render/Adjustment.php
+++ b/app/code/Magento/Weee/Pricing/Render/Adjustment.php
@@ -69,23 +69,14 @@ class Adjustment extends AbstractAdjustment
      */
     protected function apply()
     {
-        if ($this->typeOfDisplay(
-            [
-                Tax::DISPLAY_EXCL,
-                Tax::DISPLAY_EXCL_DESCR_INCL
-            ]
-        )
-        ) {
+        if ($this->typeOfDisplay([Tax::DISPLAY_EXCL, Tax::DISPLAY_EXCL_DESCR_INCL])) {
             $this->finalAmount = $this->amountRender->getDisplayValue();
             $this->amountRender->setDisplayValue(
                 $this->amountRender->getDisplayValue() -
                 $this->amountRender->getAmount()->getAdjustmentAmount($this->getAdjustmentCode())
             );
         }
-        $html = $this->toHtml();
-        if (trim($html)) {
-            $this->amountRender->addAdjustmentHtml($this->getAdjustmentCode(), $html);
-        }
+        return $this->toHtml();
     }
 
     /**
@@ -95,8 +86,7 @@ class Adjustment extends AbstractAdjustment
      */
     public function getAdjustmentCode()
     {
-        //@TODO We can build two model using DI, not code. What about passing it in constructor?
-        return \Magento\Weee\Pricing\Adjustment::CODE;
+        return \Magento\Weee\Pricing\Adjustment::ADJUSTMENT_CODE;
     }
 
     /**
@@ -189,13 +179,7 @@ class Adjustment extends AbstractAdjustment
      */
     protected function isDisplayFpt()
     {
-        $isDisplayFpt = $this->typeOfDisplay(
-            [
-                Tax::DISPLAY_INCL_DESCR,
-                Tax::DISPLAY_EXCL_DESCR_INCL
-            ]
-        );
-
+        $isDisplayFpt = $this->typeOfDisplay([Tax::DISPLAY_INCL_DESCR, Tax::DISPLAY_EXCL_DESCR_INCL]);
         return $isDisplayFpt;
     }
 }
diff --git a/app/code/Magento/Weee/view/adminhtml/renderer/tax.phtml b/app/code/Magento/Weee/view/adminhtml/renderer/tax.phtml
index b6a7d87305125b0386cbbf3a5b6e8f38c7abf7a7..f7ba2fcec1930c3a3fde6ee8eb158cef3148bdb6 100644
--- a/app/code/Magento/Weee/view/adminhtml/renderer/tax.phtml
+++ b/app/code/Magento/Weee/view/adminhtml/renderer/tax.phtml
@@ -35,7 +35,7 @@ $data = ['fptAttribute' => [
 ]];
 ?>
 <div id="attribute-<?php echo $this->getElement()->getHtmlId(); ?>-container" class="field"
-     data-element-id="<?php echo $this->getElement()->getHtmlId(); ?>"
+     data-attribute-code="<?php echo $this->getElement()->getHtmlId(); ?>"
      data-mage-init="<?=$this->escapeHtml($this->helper('Magento\Core\Helper\Data')->jsonEncode($data))?>">
     <label class="label"><span><?php echo $this->getElement()->getLabel() ?></span></label>
 
diff --git a/app/code/Magento/Weee/view/frontend/layout/catalog_product_prices.xml b/app/code/Magento/Weee/view/base/layout/catalog_product_prices.xml
similarity index 100%
rename from app/code/Magento/Weee/view/frontend/layout/catalog_product_prices.xml
rename to app/code/Magento/Weee/view/base/layout/catalog_product_prices.xml
diff --git a/app/code/Magento/Weee/view/frontend/pricing/adjustment.phtml b/app/code/Magento/Weee/view/base/pricing/adjustment.phtml
similarity index 93%
rename from app/code/Magento/Weee/view/frontend/pricing/adjustment.phtml
rename to app/code/Magento/Weee/view/base/pricing/adjustment.phtml
index 2f67a786065c265879510cc4ee56c31a4941adcf..da2c8b77d2e4be3483a2e59eef81f8021ffdb79a 100644
--- a/app/code/Magento/Weee/view/frontend/pricing/adjustment.phtml
+++ b/app/code/Magento/Weee/view/base/pricing/adjustment.phtml
@@ -29,10 +29,8 @@
 /** @var \Magento\Weee\Pricing\Render\Adjustment $this */
 
 $weeeSeparator = $openBrace = $closeBrace = '';
-//if ($this->getZone() !== \Magento\Framework\Pricing\Render::ZONE_ITEM_OPTION) {
-    $openBrace = '(';
-    $closeBrace = ')';
-//}
+$openBrace = '(';
+$closeBrace = ')';
 ?>
 
 <?php if ($this->showInclDescr()): // incl. + weee ?>
diff --git a/app/code/Magento/Widget/Block/Adminhtml/Widget.php b/app/code/Magento/Widget/Block/Adminhtml/Widget.php
index 8295f7dc7f5c243747c4866de885340f61fcd067..05135caf5cc93d19eea7a780da0ccb040f3208a8 100644
--- a/app/code/Magento/Widget/Block/Adminhtml/Widget.php
+++ b/app/code/Magento/Widget/Block/Adminhtml/Widget.php
@@ -53,6 +53,7 @@ class Widget extends \Magento\Backend\Block\Widget\Form\Container
         $this->_updateButton('save', 'class', 'add-widget');
         $this->_updateButton('save', 'id', 'insert_button');
         $this->_updateButton('save', 'onclick', 'wWidget.insertWidget()');
+        $this->_updateButton('save', 'region', 'footer');
 
         $this->_formScripts[] = 'wWidget = new WysiwygWidget.Widget(' .
             '"widget_options_form", "select_widget_type", "widget_options", "' .
diff --git a/app/code/Magento/Widget/Model/Template/Filter.php b/app/code/Magento/Widget/Model/Template/Filter.php
index 8fa4f630b715da7ad676f83e2607c527749ca411..02a25137fdafc27c086561b962157223481dbe6b 100644
--- a/app/code/Magento/Widget/Model/Template/Filter.php
+++ b/app/code/Magento/Widget/Model/Template/Filter.php
@@ -51,6 +51,7 @@ class Filter extends \Magento\Cms\Model\Template\Filter
      * @param \Magento\Framework\View\LayoutInterface $layout
      * @param \Magento\Framework\View\LayoutFactory $layoutFactory
      * @param \Magento\Framework\App\State $appState
+     * @param \Magento\Backend\Model\UrlInterface $backendUrlBuilder
      * @param \Magento\Widget\Model\Resource\Widget $widgetResource
      * @param \Magento\Widget\Model\Widget $widget
      */
@@ -65,6 +66,7 @@ class Filter extends \Magento\Cms\Model\Template\Filter
         \Magento\Framework\View\LayoutInterface $layout,
         \Magento\Framework\View\LayoutFactory $layoutFactory,
         \Magento\Framework\App\State $appState,
+        \Magento\Backend\Model\UrlInterface $backendUrlBuilder,
         \Magento\Widget\Model\Resource\Widget $widgetResource,
         \Magento\Widget\Model\Widget $widget
     ) {
@@ -80,7 +82,8 @@ class Filter extends \Magento\Cms\Model\Template\Filter
             $storeManager,
             $layout,
             $layoutFactory,
-            $appState
+            $appState,
+            $backendUrlBuilder
         );
     }
 
diff --git a/app/code/Magento/Wishlist/Block/AbstractBlock.php b/app/code/Magento/Wishlist/Block/AbstractBlock.php
index d2e3a422fc08fe3bfa1f89d576d55222e457b7be..4dc3a810233fc9169a14bc2e1add918175e43721 100644
--- a/app/code/Magento/Wishlist/Block/AbstractBlock.php
+++ b/app/code/Magento/Wishlist/Block/AbstractBlock.php
@@ -24,16 +24,11 @@
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 
+namespace Magento\Wishlist\Block;
 
 /**
  * Wishlist Product Items abstract Block
- *
- * @category   Magento
- * @package    Magento_Wishlist
- * @author     Magento Core Team <core@magentocommerce.com>
  */
-namespace Magento\Wishlist\Block;
-
 abstract class AbstractBlock extends \Magento\Catalog\Block\Product\AbstractProduct
 {
     /**
@@ -65,21 +60,18 @@ abstract class AbstractBlock extends \Magento\Catalog\Block\Product\AbstractProd
      * @param \Magento\Framework\App\Http\Context $httpContext
      * @param \Magento\Catalog\Model\ProductFactory $productFactory
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Framework\App\Http\Context $httpContext,
         \Magento\Catalog\Model\ProductFactory $productFactory,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->httpContext = $httpContext;
         $this->_productFactory = $productFactory;
         parent::__construct(
             $context,
-            $data,
-            $priceBlockTypes
+            $data
         );
         $this->_isScopePrivate = true;
     }
@@ -304,48 +296,6 @@ abstract class AbstractBlock extends \Magento\Catalog\Block\Product\AbstractProd
         return $this->getWishlistItemsCount() > 0;
     }
 
-    /**
-     * Returns product price block html
-     * Overwrites parent price html return to be ready to show configured, partially configured and
-     * non-configured products
-     *
-     * @param \Magento\Catalog\Model\Product $product
-     * @param bool $displayMinimalPrice
-     * @param string $idSuffix
-     *
-     * @return string
-     */
-    public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')
-    {
-        $type_id = $product->getTypeId();
-        if ($this->_catalogData->canApplyMsrp($product)) {
-            $realPriceHtml = $this->_preparePriceRenderer(
-                $type_id
-            )->setProduct(
-                $product
-            )->setDisplayMinimalPrice(
-                $displayMinimalPrice
-            )->setIdSuffix(
-                $idSuffix
-            )->setIsEmulateMode(
-                true
-            )->toHtml();
-            $product->setAddToCartUrl($this->getAddToCartUrl($product));
-            $product->setRealPriceHtml($realPriceHtml);
-            $type_id = $this->_mapRenderer;
-        }
-
-        return $this->_preparePriceRenderer(
-            $type_id
-        )->setProduct(
-            $product
-        )->setDisplayMinimalPrice(
-            $displayMinimalPrice
-        )->setIdSuffix(
-            $idSuffix
-        )->toHtml();
-    }
-
     /**
      * Retrieve URL to item Product
      *
diff --git a/app/code/Magento/Wishlist/Block/Customer/Wishlist.php b/app/code/Magento/Wishlist/Block/Customer/Wishlist.php
index 56ddead98b3e5542d61518dd51f84af0e7eb2b5f..b7c8c30bc0a284b4e27f39245b41c00317118f51 100644
--- a/app/code/Magento/Wishlist/Block/Customer/Wishlist.php
+++ b/app/code/Magento/Wishlist/Block/Customer/Wishlist.php
@@ -60,7 +60,6 @@ class Wishlist extends \Magento\Wishlist\Block\AbstractBlock
      * @param \Magento\Catalog\Helper\Product\ConfigurationPool $helperPool
      * @param \Magento\Framework\Data\Form\FormKey $formKey
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
@@ -68,8 +67,7 @@ class Wishlist extends \Magento\Wishlist\Block\AbstractBlock
         \Magento\Catalog\Model\ProductFactory $productFactory,
         \Magento\Catalog\Helper\Product\ConfigurationPool $helperPool,
         \Magento\Framework\Data\Form\FormKey $formKey,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_formKey = $formKey;
         $this->_helperPool = $helperPool;
@@ -77,8 +75,7 @@ class Wishlist extends \Magento\Wishlist\Block\AbstractBlock
             $context,
             $httpContext,
             $productFactory,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column.php b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column.php
index d96982ad9ca7622faae0a0626713353cba5a283b..f9422452e62cae38e6158c86382f8cbab4cefdb0 100644
--- a/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column.php
+++ b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column.php
@@ -24,15 +24,11 @@
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 
+namespace Magento\Wishlist\Block\Customer\Wishlist\Item;
+
 /**
  * Wishlist block customer item column
- *
- * @category    Magento
- * @package     Magento_Wishlist
- * @author      Magento Core Team <core@magentocommerce.com>
  */
-namespace Magento\Wishlist\Block\Customer\Wishlist\Item;
-
 class Column extends \Magento\Wishlist\Block\AbstractBlock
 {
     /**
diff --git a/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Cart.php b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Cart.php
index c8da2ab2a3cb797c0639c7206281526a88bbc4ef..f4407b01235c673cb961527124b4b46d5d141570 100644
--- a/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Cart.php
+++ b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Column/Cart.php
@@ -24,15 +24,11 @@
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 
+namespace Magento\Wishlist\Block\Customer\Wishlist\Item\Column;
+
 /**
  * Wishlist block customer item cart column
- *
- * @category    Magento
- * @package     Magento_Wishlist
- * @author      Magento Core Team <core@magentocommerce.com>
  */
-namespace Magento\Wishlist\Block\Customer\Wishlist\Item\Column;
-
 class Cart extends \Magento\Wishlist\Block\Customer\Wishlist\Item\Column
 {
     /**
diff --git a/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Options.php b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Options.php
index 389cbd7ab22eaadfa0c37488aed43c69ca5e1400..d1a91bddd726a25e6cd99bef61378aff03277af8 100644
--- a/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Options.php
+++ b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Item/Options.php
@@ -24,15 +24,13 @@
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 
+namespace Magento\Wishlist\Block\Customer\Wishlist\Item;
+
 /**
  * Wishlist block customer items
  *
- * @category   Magento
- * @package    Magento_Wishlist
- * @author     Magento Core Team <core@magentocommerce.com>
+ * @method \Magento\Wishlist\Model\Item getItem()
  */
-namespace Magento\Wishlist\Block\Customer\Wishlist\Item;
-
 class Options extends \Magento\Wishlist\Block\AbstractBlock
 {
     /**
@@ -58,23 +56,20 @@ class Options extends \Magento\Wishlist\Block\AbstractBlock
      * @param \Magento\Catalog\Model\ProductFactory $productFactory
      * @param \Magento\Catalog\Helper\Product\ConfigurationPool $helperPool
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Framework\App\Http\Context $httpContext,
         \Magento\Catalog\Model\ProductFactory $productFactory,
         \Magento\Catalog\Helper\Product\ConfigurationPool $helperPool,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_helperPool = $helperPool;
         parent::__construct(
             $context,
             $httpContext,
             $productFactory,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/Wishlist/Block/Customer/Wishlist/Items.php b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Items.php
index a59540b4f19e8679b40717ee93df682218c842b2..468e30f1c17374542aaa3310fa92301848d3c5cd 100644
--- a/app/code/Magento/Wishlist/Block/Customer/Wishlist/Items.php
+++ b/app/code/Magento/Wishlist/Block/Customer/Wishlist/Items.php
@@ -24,15 +24,11 @@
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 
+namespace Magento\Wishlist\Block\Customer\Wishlist;
+
 /**
  * Wishlist block customer items
- *
- * @category    Magento
- * @package     Magento_Wishlist
- * @author      Magento Core Team <core@magentocommerce.com>
  */
-namespace Magento\Wishlist\Block\Customer\Wishlist;
-
 class Items extends \Magento\Framework\View\Element\Template
 {
     /**
@@ -48,13 +44,13 @@ class Items extends \Magento\Framework\View\Element\Template
     /**
      * Retrieve table column object list
      *
-     * @return array
+     * @return \Magento\Wishlist\Block\Customer\Wishlist\Item\Column[]
      */
     public function getColumns()
     {
         $columns = array();
         foreach ($this->getLayout()->getChildBlocks($this->getNameInLayout()) as $child) {
-            if ($child->isEnabled()) {
+            if ($child instanceof \Magento\Wishlist\Block\Customer\Wishlist\Item\Column && $child->isEnabled()) {
                 $columns[] = $child;
             }
         }
diff --git a/app/code/Magento/Wishlist/Block/Share/Wishlist.php b/app/code/Magento/Wishlist/Block/Share/Wishlist.php
index 04061a839460668c9a715824213fe5509afaa339..55cda9f968199c5f23a8863b178c0e4123c9c0ca 100644
--- a/app/code/Magento/Wishlist/Block/Share/Wishlist.php
+++ b/app/code/Magento/Wishlist/Block/Share/Wishlist.php
@@ -54,23 +54,20 @@ class Wishlist extends \Magento\Wishlist\Block\AbstractBlock
      * @param \Magento\Catalog\Model\ProductFactory $productFactory
      * @param \Magento\Customer\Service\V1\CustomerAccountServiceInterface $customerAccountService
      * @param array $data
-     * @param array $priceBlockTypes
      */
     public function __construct(
         \Magento\Catalog\Block\Product\Context $context,
         \Magento\Framework\App\Http\Context $httpContext,
         \Magento\Catalog\Model\ProductFactory $productFactory,
         \Magento\Customer\Service\V1\CustomerAccountServiceInterface $customerAccountService,
-        array $data = array(),
-        array $priceBlockTypes = array()
+        array $data = array()
     ) {
         $this->_customerAccountService = $customerAccountService;
         parent::__construct(
             $context,
             $httpContext,
             $productFactory,
-            $data,
-            $priceBlockTypes
+            $data
         );
     }
 
diff --git a/app/code/Magento/Wishlist/Model/Item.php b/app/code/Magento/Wishlist/Model/Item.php
index f6d94a7a4fc7fcea2a409da31c10614169206c1f..4801283f29934bbe9038812d2fd091296d36746a 100644
--- a/app/code/Magento/Wishlist/Model/Item.php
+++ b/app/code/Magento/Wishlist/Model/Item.php
@@ -23,6 +23,12 @@
  */
 namespace Magento\Wishlist\Model;
 
+use Magento\Catalog\Model\Product\Configuration\Item\ItemInterface;
+use Magento\Framework\Model\AbstractModel;
+use Magento\Wishlist\Model\Item\Option;
+use Magento\Wishlist\Model\Item\OptionFactory;
+use Magento\Wishlist\Model\Resource\Item\Option\CollectionFactory;
+
 /**
  * Wishlist item model
  *
@@ -38,12 +44,7 @@ namespace Magento\Wishlist\Model;
  * @method string getDescription()
  * @method \Magento\Wishlist\Model\Item setDescription(string $value)
  */
-use Magento\Wishlist\Model\Item\Option;
-use Magento\Wishlist\Model\Item\OptionFactory;
-use Magento\Wishlist\Model\Resource\Item\Option\CollectionFactory;
-
-class Item extends \Magento\Framework\Model\AbstractModel implements
-    \Magento\Catalog\Model\Product\Configuration\Item\ItemInterface
+class Item extends AbstractModel implements ItemInterface
 {
     const EXCEPTION_CODE_NOT_SALABLE = 901;
 
diff --git a/app/code/Magento/Wishlist/view/frontend/item/column/cart.phtml b/app/code/Magento/Wishlist/view/frontend/item/column/cart.phtml
index c29c325fcf2941d353e2c9f69b73b36f863759ff..8ee432496fcbdd39a79b32b472885857fddb6de3 100644
--- a/app/code/Magento/Wishlist/view/frontend/item/column/cart.phtml
+++ b/app/code/Magento/Wishlist/view/frontend/item/column/cart.phtml
@@ -27,13 +27,12 @@
 /* @var \Magento\Wishlist\Model\Item $item */
 $item = $this->getItem();
 $product = $item->getProduct();
-$options = $this->getChildBlock('customer.wishlist.item.options')
-    ->setItem($item)
-    ->getConfiguredOptions();
 ?>
-<?php echo $this->getPriceHtml($product, empty($options));?>
+<?php foreach ($this->getChildNames() as $childName): ?>
+    <?php echo $this->getLayout()->renderElement($childName, false); ?>
+<?php endforeach;?>
 <div class="box tocart">
-    <?php if ($item->canHaveQty() && $item->getProduct()->isVisibleInSiteVisibility()): ?>
+    <?php if ($item->canHaveQty() && $product->isVisibleInSiteVisibility()): ?>
         <input type="number" class="input-text qty" data-validate="{required:true,'validate-greater-than-zero':true}"
                name="qty[<?php echo $item->getId() ?>]" value="<?php echo $this->getAddToCartQty($item) * 1 ?>">
     <?php endif; ?>
@@ -53,9 +52,7 @@ $options = $this->getChildBlock('customer.wishlist.item.options')
         <?php endif; ?>
     <?php endif; ?>
 </div>
-<?php foreach ($this->getChildNames() as $childName): ?>
-    <?php echo $this->getLayout()->renderElement($childName, false); ?>
-<?php endforeach;?>
+
 <?php if ($product->isVisibleInSiteVisibility()): ?>
     <p>
         <a class="action edit" href="<?php echo $this->getItemConfigureUrl($item) ?>">
diff --git a/app/code/Magento/Wishlist/view/frontend/item/configure/addto.phtml b/app/code/Magento/Wishlist/view/frontend/item/configure/addto.phtml
index df087aa314c4c0e3bbce04bfe6e472928010e203..8fc200e90932ef89dd294063891bd28a007baf38 100644
--- a/app/code/Magento/Wishlist/view/frontend/item/configure/addto.phtml
+++ b/app/code/Magento/Wishlist/view/frontend/item/configure/addto.phtml
@@ -39,9 +39,7 @@
     <?php endif; ?>
 </div>
 <script type="text/javascript">
-    head.js("<?php echo $this->getViewFileUrl('Magento_Wishlist::js/add-to-wishlist.js') ?>", function () {
-        jQuery('body').addToWishlist(
-            <?php echo $this->helper('Magento\Core\Helper\Data')->jsonEncode(array('productType' => $_product->getTypeId()))?>
-        );
-    });
+    jQuery('body').mage('addToWishlist',
+        <?php echo $this->helper('Magento\Core\Helper\Data')->jsonEncode(array('productType' => $_product->getTypeId()))?>
+    );
 </script>
\ No newline at end of file
diff --git a/app/code/Magento/Wishlist/view/frontend/item/list.phtml b/app/code/Magento/Wishlist/view/frontend/item/list.phtml
index a74d809fd815764987a5c86251a8eb82394dd652..44b08b72332f0fd28dc9f34889446832cfdd1116 100644
--- a/app/code/Magento/Wishlist/view/frontend/item/list.phtml
+++ b/app/code/Magento/Wishlist/view/frontend/item/list.phtml
@@ -24,6 +24,7 @@
  */
 ?>
 <?php
+/** @var \Magento\Wishlist\Block\Customer\Wishlist\Items $this */
 $columns = $this->getColumns();
 ?>
 <div class="wishlist table wrapper">
diff --git a/app/code/Magento/Wishlist/view/frontend/js/components.phtml b/app/code/Magento/Wishlist/view/frontend/js/components.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..3059c2084b4cb67aeae1252256119d58e488c03a
--- /dev/null
+++ b/app/code/Magento/Wishlist/view/frontend/js/components.phtml
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Academic Free License (AFL 3.0)
+ * that is bundled with this package in the file LICENSE_AFL.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/afl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    design
+ * @package     base_default
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
+ */
+?>
+<script type="text/javascript">
+    (function($) {
+        "use strict";
+        /**
+         * Declaration of resources needed for defined components
+         */
+        $.mage.component({
+            addToWishlist: [
+                '<?php echo $this->getViewFileUrl('Magento_Wishlist::js/add-to-wishlist.js') ?>'
+            ],
+            wishlistSearch: [
+                '<?php echo $this->getViewFileUrl('Magento_Wishlist::js/search.js') ?>'
+            ],
+            configurable: [
+                '<?php echo $this->getViewFileUrl('jquery/jquery.parsequery.js') ?>',
+                '<?php echo $this->getViewFileUrl('Magento_ConfigurableProduct::js/configurable.js') ?>'
+            ]
+        });
+    })(jQuery);
+</script>
+<?php echo $this->getChildHtml() ?>
diff --git a/app/code/Magento/Wishlist/view/frontend/layout/default.xml b/app/code/Magento/Wishlist/view/frontend/layout/default.xml
index 9655a6007e4fb83857d2f76a4e2db39e90179c0b..ad9772e7480d0a38f4e56bef755cb8357ed40961 100644
--- a/app/code/Magento/Wishlist/view/frontend/layout/default.xml
+++ b/app/code/Magento/Wishlist/view/frontend/layout/default.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="wishlist_page_head_components" template="Magento_Wishlist::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="top.links">
         <block class="Magento\Wishlist\Block\Link" name="wish-list-link" after="my-account-link"/>
     </referenceBlock>
diff --git a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_configure_type_bundle.xml b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_configure_type_bundle.xml
index ad14d827fc42ff43fed8e28ea1ffccea94eb25c5..a477b2435679548ee27587965cab17755afc4a67 100644
--- a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_configure_type_bundle.xml
+++ b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_configure_type_bundle.xml
@@ -25,11 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
     <referenceBlock name="head">
-        <block class="Magento\Theme\Block\Html\Head\Script" name="magento-bundle-bundle-js">
-            <arguments>
-                <argument name="file" xsi:type="string">Magento_Bundle::bundle.js</argument>
-            </arguments>
-        </block>
         <block class="Magento\Theme\Block\Html\Head\Script" name="magento-bundle-js-product-summary-js">
             <arguments>
                 <argument name="file" xsi:type="string">Magento_Bundle::js/product-summary.js</argument>
@@ -42,11 +37,13 @@
         </action>
     </referenceBlock>
     <referenceBlock name="product.info">
-        <block class="Magento\Bundle\Block\Catalog\Product\View" name="bundle.summary" as="form_top" template="catalog/product/view/summary.phtml">
-            <block class="Magento\Bundle\Block\Catalog\Product\Price" name="bundle.prices" as="bundle_prices" template="catalog/product/view/price.phtml">
-                <action method="setMAPTemplate">
-                    <argument name="tmpl" xsi:type="string">Magento_Catalog::product/price_msrp_item.phtml</argument>
-                </action>
+        <block class="Magento\Catalog\Block\Product\View" name="bundle.summary" as="form_top" template="Magento_Bundle::catalog/product/view/summary.phtml">
+            <block class="Magento\Catalog\Pricing\Render" name="product.price.render.bundle.customization">
+                <arguments>
+                    <argument name="price_render" xsi:type="string">product.price.render.default</argument>
+                    <argument name="price_type_code" xsi:type="string">configured_price</argument>
+                    <argument name="zone" xsi:type="string">item_view</argument>
+                </arguments>
             </block>
             <block class="Magento\Catalog\Block\Product\View" name="product.info.addtocart.bundle" as="addtocart" template="product/view/addtocart.phtml"/>
             <block class="Magento\Catalog\Block\Product\View" name="product.info.addto.bundle" as="addto" template="product/view/addto.phtml"/>
@@ -61,11 +58,10 @@
             <block class="Magento\Bundle\Block\Catalog\Product\View\Type\Bundle\Option\Checkbox" name="product.info.bundle.options.checkbox" as="checkbox"/>
         </block>
     </referenceBlock>
+    <move element="product.price.tier" destination="product.info.options.wrapper.bottom" before="-" />
     <referenceBlock name="product.info.options.wrapper.bottom">
-        <remove name="product.tierprices"/>
-        <block class="Magento\Bundle\Block\Catalog\Product\View" name="bundle.tierprices" as="tierprices" before="-" template="Magento_Bundle::catalog/product/view/tierprices.phtml"/>
         <block class="Magento\CatalogInventory\Block\Qtyincrements" name="product.info.qtyincrements" before="-" template="qtyincrements.phtml"/>
-        <block class="Magento\Bundle\Block\Catalog\Product\View" name="bundle.back.button" as="backButton" after="-" template="catalog/product/view/backbutton.phtml"/>
+        <block class="Magento\Catalog\Block\Product\View" name="bundle.back.button" as="backButton" after="-" template="Magento_Bundle::catalog/product/view/backbutton.phtml"/>
         <action method="unsetChild">
             <argument name="block" xsi:type="string">product.info.addtocart</argument>
         </action>
@@ -81,21 +77,8 @@
         <move element="product.info" destination="bundle.options.container" before="-"/>
     </referenceContainer>
     <referenceContainer name="product.info.type">
-        <block class="Magento\Bundle\Block\Catalog\Product\View\Type\Bundle" name="product.info.bundle" as="product_type_data" template="catalog/product/view/type/bundle.phtml">
-            <action method="addPriceBlockType">
-                <argument name="type" xsi:type="string">bundle</argument>
-                <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-                <argument name="template" xsi:type="string">catalog/product/price.phtml</argument>
-            </action>
-        </block>
+        <block class="Magento\Bundle\Block\Catalog\Product\View\Type\Bundle" name="product.info.bundle" as="product_type_data" template="catalog/product/view/type/bundle.phtml"/>
         <container name="product.info.bundle.extra" after="product.info.bundle" as="product_type_data_extra" label="Product Extra Info"/>
-        <block class="Magento\Bundle\Block\Catalog\Product\View" name="customize.button" as="customize_button" template="catalog/product/view/customize.phtml"/>
+        <block class="Magento\Catalog\Block\Product\View" name="customize.button" as="customize_button" template="Magento_Bundle::catalog/product/view/customize.phtml"/>
     </referenceContainer>
-    <referenceBlock name="product.clone_prices">
-        <action method="addPriceBlockType">
-            <argument name="type" xsi:type="string">bundle</argument>
-            <argument name="block" xsi:type="string">Magento\Bundle\Block\Catalog\Product\Price</argument>
-            <argument name="template" xsi:type="string">catalog/product/view/price.phtml</argument>
-        </action>
-    </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_configure_type_configurable.xml b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_configure_type_configurable.xml
index 3c266d53bdf78e19f76e68afdfed65f147559c5f..4fcfe46d66654463978d995c43c34da641ecc0b1 100644
--- a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_configure_type_configurable.xml
+++ b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_configure_type_configurable.xml
@@ -24,6 +24,9 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Core/etc/layout_single.xsd">
+    <referenceBlock name="head.components">
+        <block class="Magento\Framework\View\Element\Js\Components" name="wishlist_product_view_head_components" template="Magento_Wishlist::js/components.phtml"/>
+    </referenceBlock>
     <referenceBlock name="root">
         <action method="addBodyClass">
             <argument name="value" xsi:type="string">type-configurable</argument>
diff --git a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_index.xml b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_index.xml
index 736ea4b4bafed7a0953410c444a09d25562823f9..1138642649f3ed04af543067e43549eb3d526e5a 100644
--- a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_index.xml
+++ b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_index.xml
@@ -44,14 +44,14 @@
                         <argument name="col_class" xsi:type="string">actions</argument>
                         <argument name="title" translate="true" xsi:type="string">Add to Cart</argument>
                     </arguments>
-                    <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Options" name="customer.wishlist.item.options" cacheable="false"/>
                     <block class="Magento\Catalog\Pricing\Render" name="product.price.render.wishlist">
                         <arguments>
                             <argument name="price_render" xsi:type="string">product.price.render.default</argument>
-                            <argument name="price_type_code" xsi:type="string">final_price</argument>
+                            <argument name="price_type_code" xsi:type="string">configured_price</argument>
                             <argument name="zone" xsi:type="string">item_list</argument>
                         </arguments>
                     </block>
+                    <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Options" name="customer.wishlist.item.options" cacheable="false"/>
                 </block>
                 <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Remove" name="customer.wishlist.item.remove" template="item/column/remove.phtml" cacheable="false">
                     <arguments>
diff --git a/app/code/Magento/Wishlist/view/frontend/render/item/price_msrp_item.phtml b/app/code/Magento/Wishlist/view/frontend/render/item/price_msrp_item.phtml
index ba18d0229cb4370f1960900efdba82196fb1d70a..694048dea841f47827cf68fb2e245f463481d663 100644
--- a/app/code/Magento/Wishlist/view/frontend/render/item/price_msrp_item.phtml
+++ b/app/code/Magento/Wishlist/view/frontend/render/item/price_msrp_item.phtml
@@ -53,36 +53,21 @@
         <?php $priceElementId = 'product-price-' . $_id . $this->getIdSuffix(); ?>
         <span id="<?php echo $priceElementId ?>" style="display:none"></span>
         <?php $popupId = 'msrp-popup-' . $_id . $this->getRandomString(20); ?>
-        <a href="#" id="<?php echo($popupId);?>"><?php echo __('Click for price'); ?></a>
+        <a href="#"
+           id="<?php echo($popupId);?>"
+           data-mage-init='{"addToCart":{"popupId": "#<?php echo($popupId);?>",
+                                         "productName": "<?php echo $_product->getName() ?>",
+                                         "realPrice": <?php echo $this->getRealPriceJs($_product) ?>,
+                                         "msrpPrice": "<?php echo $_msrpPrice ?>",
+                                         "priceElementId":"<?php echo $priceElementId ?>",
+                                         "popupCartButtonId": "#map-popup-button",
+                                         "cartForm": "#wishlist-view-form"}}'><?php echo __('Click for price') ?>
+        </a>
     <?php else: ?>
         <span class="msrp message">
             <?php echo $_catalogHelper->getMsrpPriceMessage($_product) ?>
         </span>
     <?php endif; ?>
     <?php $helpLinkId = 'msrp-help-' . $_id . $this->getRandomString(20); ?>
-    <a href="#" id="<?php echo($helpLinkId);?>" class="link tip"><?php echo __("What's this?"); ?></a>
+    <a href="#" id="<?php echo($helpLinkId);?>" data-mage-init='{"addToCart":{"helpLinkId": "#<?php echo($helpLinkId);?>", "productName": "<?php echo $_product->getName() ?>"}}' class="link tip"><?php echo __("What's this?"); ?></a>
 </div>
-<script type="text/javascript">
-(function ($) {
-    head.js("<?php echo $this->getViewFileUrl('Magento_Catalog::js/msrp.js') ?>",
-        function () {
-        <?php if ($this->helper('Magento\Catalog\Helper\Data')->isShowPriceOnGesture($_product)): ?>
-            $('#<?php echo($popupId);?>').addToCart({
-                cartForm: "#wishlist-view-form",
-                popupId: "#<?php echo($popupId);?>",
-                productName: '<?php echo $_product->getName() ?>',
-                realPrice: '<?php echo $this->getRealPriceJs($_product) ?>',
-                msrpPrice: '<?php echo $_msrpPrice ?>',
-                priceElementId: '<?php echo $priceElementId ?>',
-                closeButtonId: '#map-popup-close',
-                popupCartButtonId: "#map-popup-button"
-            });
-            <?php endif; ?>
-            $("#<?php echo($helpLinkId);?>").addToCart({
-                helpLinkId: "#<?php echo($helpLinkId);?>",
-                productName: '<?php echo $_product->getName() ?>'
-            });
-        });
-    })(jQuery);
-</script>
-
diff --git a/app/code/Magento/Wishlist/view/frontend/shared.phtml b/app/code/Magento/Wishlist/view/frontend/shared.phtml
index 20c8459fbd1243fda6ed8818a9e644d9813c96ae..3d6ae0f7acd69bbb0d378e686b6e52be2e26c313 100644
--- a/app/code/Magento/Wishlist/view/frontend/shared.phtml
+++ b/app/code/Magento/Wishlist/view/frontend/shared.phtml
@@ -53,7 +53,14 @@ $imageBlock =  $this->getLayout()->createBlock('Magento\Catalog\Block\Product\Im
                                     <?php echo $this->escapeHtml($product->getName()) ?>
                                 </a>
                             </strong>
-                            <?php echo $this->getPriceHtml($product) ?>
+                            <?php
+                                echo $this->getProductPriceHtml(
+                                    $product,
+                                    \Magento\Catalog\Pricing\Price\ConfiguredPriceInterface::CONFIGURED_PRICE_CODE,
+                                    \Magento\Framework\Pricing\Render::ZONE_ITEM_LIST,
+                                    ['item' => $item]
+                                );
+                            ?>
                             <?php echo $this->getDetailsHtml($item) ?>
                         </td>
                         <td class="col comment"><?php echo $this->getEscapedDescription($item) ?></td>
diff --git a/app/code/Magento/Wishlist/view/frontend/sharing.phtml b/app/code/Magento/Wishlist/view/frontend/sharing.phtml
index 4144f095d193b500e77a59b8403f6e76bfdd9c42..37e89a87d317defb0d5975726445f48d0406073e 100644
--- a/app/code/Magento/Wishlist/view/frontend/sharing.phtml
+++ b/app/code/Magento/Wishlist/view/frontend/sharing.phtml
@@ -25,7 +25,12 @@
 
 /** @var $this \Magento\Wishlist\Block\Customer\Sharing */
 ?>
-<form class="form wishlist share" action="<?php echo $this->getSendUrl() ?>" id="form-validate" method="post" data-hasrequired="<?php echo __('* Required Fields') ?>">
+<form class="form wishlist share"
+      action="<?php echo $this->getSendUrl() ?>"
+      id="form-validate"
+      method="post"
+      data-hasrequired="<?php echo __('* Required Fields') ?>"
+      data-mage-init='{"validation":{}}'>
     <fieldset class="fieldset">
         <?php echo $this->getBlockHtml('formkey')?>
         <legend class="legend"><span><?php echo __('Sharing Information') ?></span></legend><br />
@@ -63,13 +68,3 @@
         </div>
     </div>
 </form>
-<script type="text/javascript">
-    (function($) {
-        head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-            "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-            "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>", function() {
-                $('#form-validate').validation();
-            })
-    })(jQuery);
-</script>
diff --git a/app/code/Magento/Wishlist/view/frontend/sidebar.phtml b/app/code/Magento/Wishlist/view/frontend/sidebar.phtml
index eb514f6d8b41614299f1ca4c381ee8342a128f30..60b7e0ac6c4bd8776fbdbd5b590783f1efa04d95 100644
--- a/app/code/Magento/Wishlist/view/frontend/sidebar.phtml
+++ b/app/code/Magento/Wishlist/view/frontend/sidebar.phtml
@@ -42,16 +42,23 @@ $wishlistHelper = $this->helper('Magento\Wishlist\Helper\Data');
             <?php if ($this->hasWishlistItems()): ?>
                 <ol class="items minilist products" id="wishlist-sidebar">
                     <?php $iterator = 1; ?>
-                    <?php foreach ($this->getWishlistItems() as $_item): ?>
-                        <?php $product = $_item->getProduct(); ?>
-                        <?php echo ($iterator++==1) ? '<li class="item product">' : '</li><li class="item product">' ?>
+                    <?php foreach ($this->getWishlistItems() as $item): ?>
+                        <?php $product = $item->getProduct(); ?>
+                        <?php echo ($iterator++ == 1) ? '<li class="item product">' : '</li><li class="item product">' ?>
                         <div class="product">
-                            <a class="product photo" href="<?php echo $this->getProductUrl($_item) ?>" title="<?php echo $this->escapeHtml($product->getName()) ?>">
+                            <a class="product photo" href="<?php echo $this->getProductUrl($item) ?>" title="<?php echo $this->escapeHtml($product->getName()) ?>">
                                 <?php echo $imageBlock->init($product, 'wishlist_sidebar_block')->toHtml() ?>
                             </a>
                             <div class="product details">
-                                <strong class="product name"><a href="<?php echo $this->getProductUrl($_item) ?>"><?php echo $this->escapeHtml($product->getName()) ?></a></strong>
-                                <?php echo $this->getPriceHtml($product, false, '-wishlist') ?>
+                                <strong class="product name"><a href="<?php echo $this->getProductUrl($item) ?>"><?php echo $this->escapeHtml($product->getName()) ?></a></strong>
+                                <?php
+                                    echo $this->getProductPriceHtml(
+                                        $product,
+                                        \Magento\Catalog\Pricing\Price\ConfiguredPriceInterface::CONFIGURED_PRICE_CODE,
+                                        \Magento\Framework\Pricing\Render::ZONE_ITEM_LIST,
+                                        ['item' => $item]
+                                    );
+                                ?>
                                 <div class="product actions">
                                     <?php if ($product->isSaleable() && $product->isVisibleInSiteVisibility()): ?>
                                         <?php if ($product->getTypeInstance()->hasRequiredOptions($product)): ?>
@@ -65,14 +72,14 @@ $wishlistHelper = $this->helper('Magento\Wishlist\Helper\Data');
                                         <?php endif; ?>
                                     <?php endif; ?>
                                     <div class="secondary">
-                                        <a href="#" data-post='<?php echo $this->getItemRemoveParams($_item) ?>' title="<?php echo __('Remove This Item') ?>" class="btn-remove action delete">
+                                        <a href="#" data-post='<?php echo $this->getItemRemoveParams($item) ?>' title="<?php echo __('Remove This Item') ?>" class="btn-remove action delete">
                                             <span><?php echo __('Remove This Item') ?></span>
                                         </a>
                                     </div>
                                 </div>
                             </div>
                         </div>
-                        <?php echo ($iterator==count($this->getWishlistItems())+1) ? '</li>' : '' ?>
+                        <?php echo ($iterator == count($this->getWishlistItems()) + 1) ? '</li>' : '' ?>
                     <?php endforeach; ?>
                 </ol>
                 <div class="actions">
diff --git a/app/code/Magento/Wishlist/view/frontend/view.phtml b/app/code/Magento/Wishlist/view/frontend/view.phtml
index bb5ae1bf6457653f44d19dace827072a7426551c..efc29812c00f4edcde42c399928edf2476f9b9ce 100644
--- a/app/code/Magento/Wishlist/view/frontend/view.phtml
+++ b/app/code/Magento/Wishlist/view/frontend/view.phtml
@@ -31,7 +31,21 @@
             <span><?php echo __('RSS Feed') ?></span>
         </a>
     <?php endif; ?>
-    <form class="form wishlist items" id="wishlist-view-form" action="<?php echo $this->getUrl('*/*/update', array('wishlist_id' => $this->getWishlistInstance()->getId())) ?>" method="post">
+    <form class="form wishlist items" id="wishlist-view-form"
+          data-mage-init='{"wishlist":{
+          "dataAttribute":"item-id",
+          "nameFormat":"qty[{0}]",
+          "btnRemoveSelector":".action.delete",
+          "qtySelector":".qty",
+          "addToCartSelector":".action.tocart",
+          "addAllToCartSelector":".primary > .action.tocart",
+          "commentInputType":"textarea",
+          "infoList":false,
+          "addToCartUrl":"<?php echo $this->getItemAddToCartUrl("%item%");?>",
+          "confirmRemoveMessage":"<?php echo __("Are you sure you want to remove this product from your wishlist?") ?>",
+          "addAllToCartUrl":"<?php echo $this->getAddAllToCartUrl(); ?>",
+          "commentString":""}
+          }' action="<?php echo $this->getUrl('*/*/update', array('wishlist_id' => $this->getWishlistInstance()->getId())) ?>" method="post">
         <?php echo $this->getChildHtml('top'); ?>
         <?php if ($this->hasWishlistItems()): ?>
             <?php echo $this->getBlockHtml('formkey');?>
@@ -61,28 +75,4 @@
             {{if entity}}<input name="entity" value="${entity}">{{/if}}
         </form>
     </script>
-    <script>
-        (function($) {
-            head.js("<?php echo $this->getViewFileUrl('jquery/jquery.validate.js')?>",
-                "<?php echo $this->getViewFileUrl('jquery/jquery.metadata.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/validation.js')?>",
-                "<?php echo $this->getViewFileUrl('mage/validation/validation.js')?>",
-                "<?php echo $this->getViewFileUrl('Magento_Wishlist::wishlist.js')?>", function() {
-                    $('#wishlist-view-form').wishlist({
-                        dataAttribute: 'item-id',
-                        nameFormat: 'qty[{0}]',
-                        btnRemoveSelector: '.action.delete',
-                        qtySelector: '.qty',
-                        addToCartSelector: '.action.tocart',
-                        addAllToCartSelector: '.primary > .action.tocart',
-                        commentInputType: 'textarea',
-                        infoList: false,
-                        addToCartUrl: '<?php echo $this->getItemAddToCartUrl('%item%');?>' ,
-                        confirmRemoveMessage: '<?php echo __('Are you sure you want to remove this product from your wishlist?') ?>',
-                        addAllToCartUrl : '<?php echo $this->getAddAllToCartUrl(); ?>',
-                        commentString : ''
-                    });
-                });
-        })(jQuery);
-    </script>
 <?php endif ?>
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml b/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml
index b88f1b0ab17bb4b107ae0ed713b191280f8047fc..c4e81a31dc96c568c768be2cbfe63e593f985b42 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/layout/default.xml
@@ -94,11 +94,6 @@
                 <argument name="file" xsi:type="string">modernizr/modernizr.js</argument>
             </arguments>
         </block>
-        <block class="Magento\Theme\Block\Html\Head\Script" name="js-head-js">
-            <arguments>
-                <argument name="file" xsi:type="string">headjs/head.min.js</argument>
-            </arguments>
-        </block>
         <block class="Magento\Theme\Block\Html\Head\Script" name="magento-dropdown-js">
             <arguments>
                 <argument name="file" xsi:type="string">mage/dropdown_old.js</argument>
diff --git a/app/design/frontend/Magento/plushe/css/source/clearless/all.less b/app/design/frontend/Magento/blank/css/source/price.less
similarity index 55%
rename from app/design/frontend/Magento/plushe/css/source/clearless/all.less
rename to app/design/frontend/Magento/blank/css/source/price.less
index 60679b51fdf2f448401c657887510679e9fb64c3..daa876ef5bd492ea4d4b7b25100b2508aa1ea742 100644
--- a/app/design/frontend/Magento/plushe/css/source/clearless/all.less
+++ b/app/design/frontend/Magento/blank/css/source/price.less
@@ -18,19 +18,44 @@
 //  * needs please refer to http://www.magentocommerce.com for more information.
 //  *
 //  * @category    design
-//  * @package     magento2_reference
 //  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
 //  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 //  */
-// ==============================================
-// Handily import all ClearLess mixins
-// ==============================================
 
-@import "settings";
-@import "typography";
-@import "resets";
-@import "helpers";
-@import "sprites";
-@import "icons";
-@import "arrows";
-@import "grids";
\ No newline at end of file
+.price-style-1() {
+    .price {
+        &-container {}
+        &-wrapper[data-label]:before {
+            content: attr(data-label)":";
+        }
+        &-tier_price .price-excluding-tax,
+        &-tier_price .price-including-tax {
+            display: inline;
+        }
+        &-tier_price .price-adjustments {
+            font-size: .9em;
+            &:before {
+                content: "(";
+            }
+            &:after {
+                content: ")";
+            }
+        }
+    }
+}
+.price-style-2() {
+    .price {
+        &-including-tax,
+        &-excluding-tax {
+            display: inline !important;
+        }
+        &-including-tax:before {
+            content:" / "
+        }
+        &-including-tax:after {
+            content: "("attr(data-label)")";
+        }
+    }
+}
+
+.price-style-1();
diff --git a/app/design/frontend/Magento/blank/css/styles.less b/app/design/frontend/Magento/blank/css/styles.less
index 9c979ca902e71b1af97437650086426770842e45..e2720a78fe40b02bb0c552d4d94a42feb9e3b8aa 100644
--- a/app/design/frontend/Magento/blank/css/styles.less
+++ b/app/design/frontend/Magento/blank/css/styles.less
@@ -50,6 +50,7 @@
 @import "source/actions-toolbar.less"; // import theme actions-toolbar
 @import "source/breadcrumbs.less"; // import theme breadcrumbs
 @import "source/popups.less"; // import theme popups
+@import "source/price.less"; // import theme popups
 
 // Magento Import instructions
 //@magento_import "source/module.less"; // import theme styles
diff --git a/app/design/frontend/Magento/plushe/Magento_Checkout/layout/checkout_cart_index.xml b/app/design/frontend/Magento/plushe/Magento_Checkout/layout/checkout_cart_index.xml
deleted file mode 100644
index d8cc2bdc93a69e775e0d2dba07fc9d897a582664..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/Magento_Checkout/layout/checkout_cart_index.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/Core/etc/layout_single.xsd">
-    <update handle="page_one_column" />
-    <referenceContainer name="checkout.cart.items">
-        <container name="checkout.cart.container" label="invisible" htmlTag="div" htmlClass="cart container" before="-">
-            <container name="cart.summary" label="Cart Summary Container" htmlTag="div" htmlClass="cart summary" after="-">
-                <block class="Magento\Framework\View\Element\Template" name="checkout.cart.summary.title" before="-" template="Magento_Core::text.phtml">
-                    <arguments>
-                        <argument translate="true" name="text" xsi:type="string">Summary</argument>
-                        <argument name="tag" xsi:type="string">strong</argument>
-                        <argument name="attributes" xsi:type="array">
-                            <item name="title" translate="true" xsi:type="string">Summary</item>
-                        </argument>
-                        <argument name="css_class" xsi:type="string">summary title</argument>
-                    </arguments>
-                </block>
-            </container>
-        </container>
-    </referenceContainer>
-    <move element="checkout.cart.form" destination="checkout.cart.container"/>
-    <move element="checkout.cart.shipping" destination="cart.summary"/>
-    <move element="checkout.cart.coupon" destination="cart.summary" />
-    <move element="checkout.cart.totals" destination="cart.summary"/>
-    <move element="checkout.cart.methods.bottom" destination="cart.summary"/>
-</layout>
diff --git a/app/design/frontend/Magento/plushe/Magento_Customer/layout/default.xml b/app/design/frontend/Magento/plushe/Magento_Customer/layout/default.xml
deleted file mode 100644
index a6c4e24a9a3f8f012d91798cd718eb2f23a0ce54..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/Magento_Customer/layout/default.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/Core/etc/layout_single.xsd">
-    <referenceBlock name="header.links">
-        <block class="Magento\Customer\Block\Account\Customer" name="customer" template="account/customer.phtml" before="-"/>
-        <block class="Magento\Customer\Block\Account\AuthorizationLink" name="authorization-link-login"/>
-    </referenceBlock>
-    <move element="register-link" destination="header.links"/>
-    <move element="top.links" destination="customer"/>
-    <move element="authorization-link" destination="top.links" after="-"/>
-</layout>
diff --git a/app/design/frontend/Magento/plushe/Magento_DesignEditor/controls/image_sizing.xml b/app/design/frontend/Magento/plushe/Magento_DesignEditor/controls/image_sizing.xml
deleted file mode 100644
index ecb7b5efbfecebd7f0ffb8057eae2f464efc6657..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/Magento_DesignEditor/controls/image_sizing.xml
+++ /dev/null
@@ -1,787 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @category    Magento
- * @package     Magento_DesignEditor
- * @subpackage  integration_tests
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
- -->
-<controls xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/DesignEditor/etc/image_sizing.xsd">
-    <control name="product_image_border" title="Product image white borders">
-        <type>white-border</type>
-        <components>
-            <control name="product_image_border:white-border">
-                <type>white-border</type>
-                <var>Magento_Catalog::product_image_white_borders</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="review_page_product_image" title="Review Page Product Image">
-        <type>image-sizing</type>
-        <components>
-            <control name="review_page_product_image-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::review_page_product_image:type</var>
-            </control>
-            <control name="review_page_product_image-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::review_page_product_image:width</var>
-            </control>
-            <control name="review_page_product_image-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::review_page_product_image:ratio</var>
-            </control>
-            <control name="review_page_product_image-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::review_page_product_image:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="customer_account_product_review_page" title="Customer Account: Product Review Page">
-        <type>image-sizing</type>
-        <components>
-            <control name="customer_account_product_review_page-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::customer_account_product_review_page:type</var>
-            </control>
-            <control name="customer_account_product_review_page-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::customer_account_product_review_page:width</var>
-            </control>
-            <control name="customer_account_product_review_page-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::customer_account_product_review_page:ratio</var>
-            </control>
-            <control name="customer_account_product_review_page-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::customer_account_product_review_page:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="category_page_list" title="Category Page - List View">
-        <type>image-sizing</type>
-        <components>
-            <control name="category_page_list-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::category_page_list:type</var>
-            </control>
-            <control name="category_page_list-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::category_page_list:width</var>
-            </control>
-            <control name="category_page_list-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::category_page_list:ratio</var>
-            </control>
-            <control name="category_page_list-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::category_page_list:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="category_page_grid" title="Category Page - Grid View">
-        <type>image-sizing</type>
-        <components>
-            <control name="category_page_grid-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::category_page_grid:type</var>
-            </control>
-            <control name="category_page_grid-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::category_page_grid:width</var>
-            </control>
-            <control name="category_page_grid-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::category_page_grid:ratio</var>
-            </control>
-            <control name="category_page_grid-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::category_page_grid:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="product_comparison_list" title="Product Comparison List">
-        <type>image-sizing</type>
-        <components>
-            <control name="product_comparison_list-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::product_comparison_list:type</var>
-            </control>
-            <control name="product_comparison_list-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::product_comparison_list:width</var>
-            </control>
-            <control name="product_comparison_list-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::product_comparison_list:ratio</var>
-            </control>
-            <control name="product_comparison_list-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::product_comparison_list:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="related_products_list" title="Related Products List">
-        <type>image-sizing</type>
-        <components>
-            <control name="related_products_list-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::related_products_list:type</var>
-            </control>
-            <control name="related_products_list-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::related_products_list:width</var>
-            </control>
-            <control name="related_products_list-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::related_products_list:ratio</var>
-            </control>
-            <control name="related_products_list-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::related_products_list:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="upsell_products_list" title="Up-sell Products List">
-        <type>image-sizing</type>
-        <components>
-            <control name="upsell_products_list-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::upsell_products_list:type</var>
-            </control>
-            <control name="upsell_products_list-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::upsell_products_list:width</var>
-            </control>
-            <control name="upsell_products_list-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::upsell_products_list:ratio</var>
-            </control>
-            <control name="upsell_products_list-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::upsell_products_list:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="product_page_main_image" title="Product Page Main Image">
-        <type>image-sizing</type>
-        <components>
-            <control name="product_page_main_image-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::product_page_main_image:type</var>
-            </control>
-            <control name="product_page_main_image-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::product_page_main_image:width</var>
-            </control>
-            <control name="product_page_main_image-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::product_page_main_image:ratio</var>
-            </control>
-            <control name="product_page_main_image-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::product_page_main_image:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="product_page_main_image_default" title="Product Page Main Image (Default)">
-        <type>image-sizing</type>
-        <components>
-            <control name="product_page_main_image_default-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::product_page_main_image_default:type</var>
-            </control>
-            <control name="product_page_main_image_default-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::product_page_main_image_default:width</var>
-            </control>
-            <control name="product_page_main_image_default-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::product_page_main_image_default:ratio</var>
-            </control>
-            <control name="product_page_main_image_default-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::product_page_main_image_default:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="product_page_more_views" title="Product Page - More Views">
-        <type>image-sizing</type>
-        <components>
-            <control name="product_page_more_views-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::product_page_more_views:type</var>
-            </control>
-            <control name="product_page_more_views-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::product_page_more_views:width</var>
-            </control>
-            <control name="product_page_more_views-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::product_page_more_views:ratio</var>
-            </control>
-            <control name="product_page_more_views-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::product_page_more_views:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="side_column_widget_product_thumbnail" title="Side Column Widget Product Thumbnail">
-        <type>image-sizing</type>
-        <components>
-            <control name="side_column_widget_product_thumbnail-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::side_column_widget_product_thumbnail:type</var>
-            </control>
-            <control name="side_column_widget_product_thumbnail-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::side_column_widget_product_thumbnail:width</var>
-            </control>
-            <control name="side_column_widget_product_thumbnail-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::side_column_widget_product_thumbnail:ratio</var>
-            </control>
-            <control name="side_column_widget_product_thumbnail-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::side_column_widget_product_thumbnail:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="new_products_content_widget_list" title="New Products Content Widget - List View">
-        <type>image-sizing</type>
-        <components>
-            <control name="new_products_content_widget_list-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::new_products_content_widget_list:type</var>
-            </control>
-            <control name="new_products_content_widget_list-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::new_products_content_widget_list:width</var>
-            </control>
-            <control name="new_products_content_widget_list-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::new_products_content_widget_list:ratio</var>
-            </control>
-            <control name="new_products_content_widget_list-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::new_products_content_widget_list:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="new_products_content_widget_grid" title="New Products Content Widget - Grid View">
-        <type>image-sizing</type>
-        <components>
-            <control name="new_products_content_widget_grid-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::new_products_content_widget_grid:type</var>
-            </control>
-            <control name="new_products_content_widget_grid-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::new_products_content_widget_grid:width</var>
-            </control>
-            <control name="new_products_content_widget_grid-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::new_products_content_widget_grid:ratio</var>
-            </control>
-            <control name="new_products_content_widget_grid-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::new_products_content_widget_grid:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="recently_compared_products_images_names_widget" title="Recently Compared Products Images and Names Widget">
-        <type>image-sizing</type>
-        <components>
-            <control name="recently_compared_products_images_names_widget-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::recently_compared_products_images_names_widget:type</var>
-            </control>
-            <control name="recently_compared_products_images_names_widget-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::recently_compared_products_images_names_widget:width</var>
-            </control>
-            <control name="recently_compared_products_images_names_widget-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::recently_compared_products_images_names_widget:ratio</var>
-            </control>
-            <control name="recently_compared_products_images_names_widget-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::recently_compared_products_images_names_widget:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="recently_viewed_products_images_names_widget" title="Recently Viewed Products Images and Names Widget">
-        <type>image-sizing</type>
-        <components>
-            <control name="recently_viewed_products_images_names_widget-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::recently_viewed_products_images_names_widget:type</var>
-            </control>
-            <control name="recently_viewed_products_images_names_widget-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::recently_viewed_products_images_names_widget:width</var>
-            </control>
-            <control name="recently_viewed_products_images_names_widget-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::recently_viewed_products_images_names_widget:ratio</var>
-            </control>
-            <control name="recently_viewed_products_images_names_widget-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::recently_viewed_products_images_names_widget:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="recently_compared_products_images_only_widget" title="Recently Compared Products Images Only Widget">
-        <type>image-sizing</type>
-        <components>
-            <control name="recently_compared_products_images_only_widget-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::recently_compared_products_images_only_widget:type</var>
-            </control>
-            <control name="recently_compared_products_images_only_widget-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::recently_compared_products_images_only_widget:width</var>
-            </control>
-            <control name="recently_compared_products_images_only_widget-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::recently_compared_products_images_only_widget:ratio</var>
-            </control>
-            <control name="recently_compared_products_images_only_widget-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::recently_compared_products_images_only_widget:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="recently_viewed_products_images_only_widget" title="Recently Viewed Products Images Only Widget">
-        <type>image-sizing</type>
-        <components>
-            <control name="recently_viewed_products_images_only_widget-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::recently_viewed_products_images_only_widget:type</var>
-            </control>
-            <control name="recently_viewed_products_images_only_widget-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::recently_viewed_products_images_only_widget:width</var>
-            </control>
-            <control name="recently_viewed_products_images_only_widget-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::recently_viewed_products_images_only_widget:ratio</var>
-            </control>
-            <control name="recently_viewed_products_images_only_widget-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::recently_viewed_products_images_only_widget:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="bundled_product_customization_page" title="Bundle Product - Customization Page">
-        <type>image-sizing</type>
-        <components>
-            <control name="bundled_product_customization_page-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::bundled_product_customization_page:type</var>
-            </control>
-            <control name="bundled_product_customization_page-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::bundled_product_customization_page:width</var>
-            </control>
-            <control name="bundled_product_customization_page-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::bundled_product_customization_page:ratio</var>
-            </control>
-            <control name="bundled_product_customization_page-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::bundled_product_customization_page:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="recently_compared_products_grid_content_widget" title="Recently Compared Products Grid View Content Widget">
-        <type>image-sizing</type>
-        <components>
-            <control name="recently_compared_products_grid_content_widget-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::recently_compared_products_grid_content_widget:type</var>
-            </control>
-            <control name="recently_compared_products_grid_content_widget-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::recently_compared_products_grid_content_widget:width</var>
-            </control>
-            <control name="recently_compared_products_grid_content_widget-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::recently_compared_products_grid_content_widget:ratio</var>
-            </control>
-            <control name="recently_compared_products_grid_content_widget-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::recently_compared_products_grid_content_widget:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="recently_compared_products_list_content_widget" title="Recently Compared Products List View Content Widget">
-        <type>image-sizing</type>
-        <components>
-            <control name="recently_compared_products_list_content_widget-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::recently_compared_products_list_content_widget:type</var>
-            </control>
-            <control name="recently_compared_products_list_content_widget-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::recently_compared_products_list_content_widget:width</var>
-            </control>
-            <control name="recently_compared_products_list_content_widget-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::recently_compared_products_list_content_widget:ratio</var>
-            </control>
-            <control name="recently_compared_products_list_content_widget-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::recently_compared_products_list_content_widget:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="recently_viewed_products_grid_content_widget" title="Recently Viewed Products Grid View Content Widget">
-        <type>image-sizing</type>
-        <components>
-            <control name="recently_viewed_products_grid_content_widget-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::recently_viewed_products_grid_content_widget:type</var>
-            </control>
-            <control name="recently_viewed_products_grid_content_widget-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::recently_viewed_products_grid_content_widget:width</var>
-            </control>
-            <control name="recently_viewed_products_grid_content_widget-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::recently_viewed_products_grid_content_widget:ratio</var>
-            </control>
-            <control name="recently_viewed_products_grid_content_widget-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::recently_viewed_products_grid_content_widget:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="recently_viewed_products_list_content_widget" title="Recently Viewed Products List View Content Widget">
-        <type>image-sizing</type>
-        <components>
-            <control name="recently_viewed_products_list_content_widget-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::recently_viewed_products_list_content_widget:type</var>
-            </control>
-            <control name="recently_viewed_products_list_content_widget-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::recently_viewed_products_list_content_widget:width</var>
-            </control>
-            <control name="recently_viewed_products_list_content_widget-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::recently_viewed_products_list_content_widget:ratio</var>
-            </control>
-            <control name="recently_viewed_products_list_content_widget-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::recently_viewed_products_list_content_widget:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="customer_shared_wishlist" title="Customer's Shared Wishlist">
-        <type>image-sizing</type>
-        <components>
-            <control name="customer_shared_wishlist-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::customer_shared_wishlist:type</var>
-            </control>
-            <control name="customer_shared_wishlist-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::customer_shared_wishlist:width</var>
-            </control>
-            <control name="customer_shared_wishlist-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::customer_shared_wishlist:ratio</var>
-            </control>
-            <control name="customer_shared_wishlist-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::customer_shared_wishlist:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="wishlist_thumbnail" title="Wishlist Thumbnail">
-        <type>image-sizing</type>
-        <components>
-            <control name="wishlist_thumbnail-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::wishlist_thumbnail:type</var>
-            </control>
-            <control name="wishlist_thumbnail-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::wishlist_thumbnail:width</var>
-            </control>
-            <control name="wishlist_thumbnail-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::wishlist_thumbnail:ratio</var>
-            </control>
-            <control name="wishlist_thumbnail-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::wishlist_thumbnail:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="wishlist_sidebar_block" title="Wishlist Sidebar Block">
-        <type>image-sizing</type>
-        <components>
-            <control name="wishlist_sidebar_block-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::wishlist_sidebar_block:type</var>
-            </control>
-            <control name="wishlist_sidebar_block-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::wishlist_sidebar_block:width</var>
-            </control>
-            <control name="wishlist_sidebar_block-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::wishlist_sidebar_block:ratio</var>
-            </control>
-            <control name="wishlist_sidebar_block-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::wishlist_sidebar_block:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="shared_wishlist_email" title="Shared Wishlist Email">
-        <type>image-sizing</type>
-        <components>
-            <control name="shared_wishlist_email-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::shared_wishlist_email:type</var>
-            </control>
-            <control name="shared_wishlist_email-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::shared_wishlist_email:width</var>
-            </control>
-            <control name="shared_wishlist_email-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::shared_wishlist_email:ratio</var>
-            </control>
-            <control name="shared_wishlist_email-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::shared_wishlist_email:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="customer_account_my_tags_tag_view" title="Customer Account: My Tags - Tag View">
-        <type>image-sizing</type>
-        <components>
-            <control name="customer_account_my_tags_tag_view-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::customer_account_my_tags_tag_view:type</var>
-            </control>
-            <control name="customer_account_my_tags_tag_view-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::customer_account_my_tags_tag_view:width</var>
-            </control>
-            <control name="customer_account_my_tags_tag_view-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::customer_account_my_tags_tag_view:ratio</var>
-            </control>
-            <control name="customer_account_my_tags_tag_view-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::customer_account_my_tags_tag_view:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="cart_cross_sell_products" title="Cart Cross-sell Products">
-        <type>image-sizing</type>
-        <components>
-            <control name="cart_cross_sell_products-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::cart_cross_sell_products:type</var>
-            </control>
-            <control name="cart_cross_sell_products-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::cart_cross_sell_products:width</var>
-            </control>
-            <control name="cart_cross_sell_products-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::cart_cross_sell_products:ratio</var>
-            </control>
-            <control name="cart_cross_sell_products-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::cart_cross_sell_products:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="gift_messages_checkout_thumbnail" title="Gift Messages on Checkout (Thumbnail)">
-        <type>image-sizing</type>
-        <components>
-            <control name="gift_messages_checkout_thumbnail-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::gift_messages_checkout_thumbnail:type</var>
-            </control>
-            <control name="gift_messages_checkout_thumbnail-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::gift_messages_checkout_thumbnail:width</var>
-            </control>
-            <control name="gift_messages_checkout_thumbnail-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::gift_messages_checkout_thumbnail:ratio</var>
-            </control>
-            <control name="gift_messages_checkout_thumbnail-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::gift_messages_checkout_thumbnail:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="gift_messages_checkout_small_image" title="Gift Messages on Checkout (Small Image)">
-        <type>image-sizing</type>
-        <components>
-            <control name="gift_messages_checkout_small_image-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::gift_messages_checkout_small_image:type</var>
-            </control>
-            <control name="gift_messages_checkout_small_image-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::gift_messages_checkout_small_image:width</var>
-            </control>
-            <control name="gift_messages_checkout_small_image-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::gift_messages_checkout_small_image:ratio</var>
-            </control>
-            <control name="gift_messages_checkout_small_image-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::gift_messages_checkout_small_image:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="mini_cart_product_thumbnail" title="Mini Cart Product Thumbnail">
-        <type>image-sizing</type>
-        <components>
-            <control name="mini_cart_product_thumbnail-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::mini_cart_product_thumbnail:type</var>
-            </control>
-            <control name="mini_cart_product_thumbnail-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::mini_cart_product_thumbnail:width</var>
-            </control>
-            <control name="mini_cart_product_thumbnail-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::mini_cart_product_thumbnail:ratio</var>
-            </control>
-            <control name="mini_cart_product_thumbnail-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::mini_cart_product_thumbnail:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="new_products_images_only_widget" title="New Products Images Only Widget">
-        <type>image-sizing</type>
-        <components>
-            <control name="new_products_images_only_widget-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::new_products_images_only_widget:type</var>
-            </control>
-            <control name="new_products_images_only_widget-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::new_products_images_only_widget:width</var>
-            </control>
-            <control name="new_products_images_only_widget-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::new_products_images_only_widget:ratio</var>
-            </control>
-            <control name="new_products_images_only_widget-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::new_products_images_only_widget:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="cart_page_product_thumbnail" title="Cart Page - Product Thumbnail">
-        <type>image-sizing</type>
-        <components>
-            <control name="cart_page_product_thumbnail-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::cart_page_product_thumbnail:type</var>
-            </control>
-            <control name="cart_page_product_thumbnail-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::cart_page_product_thumbnail:width</var>
-            </control>
-            <control name="cart_page_product_thumbnail-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::cart_page_product_thumbnail:ratio</var>
-            </control>
-            <control name="cart_page_product_thumbnail-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::cart_page_product_thumbnail:height</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="product_stock_alert_email_product_image" title="Product Stock Alert Email Product Image">
-        <type>image-sizing</type>
-        <components>
-            <control name="product_stock_alert_email_product_image-type">
-                <type>image-type</type>
-                <var>Magento_Catalog::product_stock_alert_email_product_image:type</var>
-            </control>
-            <control name="product_stock_alert_email_product_image-width">
-                <type>image-width</type>
-                <var>Magento_Catalog::product_stock_alert_email_product_image:width</var>
-            </control>
-            <control name="product_stock_alert_email_product_image-ratio">
-                <type>image-ratio</type>
-                <var>Magento_Catalog::product_stock_alert_email_product_image:ratio</var>
-            </control>
-            <control name="product_stock_alert_email_product_image-height">
-                <type>image-height</type>
-                <var>Magento_Catalog::product_stock_alert_email_product_image:height</var>
-            </control>
-        </components>
-    </control>
-</controls>
diff --git a/app/design/frontend/Magento/plushe/Magento_DesignEditor/controls/quick_styles.xml b/app/design/frontend/Magento/plushe/Magento_DesignEditor/controls/quick_styles.xml
deleted file mode 100644
index 44b5f618b18d2411ffc79ce429b7e7cd436b8834..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/Magento_DesignEditor/controls/quick_styles.xml
+++ /dev/null
@@ -1,1116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @category    Magento
- * @package     Magento_DesignEditor
- * @subpackage  integration_tests
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
- -->
-<controls xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/DesignEditor/etc/quick_styles.xsd">
-    <control name="store-name" title="Store Name" tab="header" column="left">
-        <type>logo</type>
-        <components>
-            <control name="store-name:font">
-                <type>font</type>
-                <components>
-                    <control name="store-name:font-picker">
-                        <type>font-picker</type>
-                        <selector><![CDATA[.logo]]></selector>
-                        <attribute>font-family</attribute>
-                        <options>
-                            <option>"marvel"</option>
-                            <option>Tahoma, Geneva, sans-serif</option>
-                            <option>Georgia, serif</option>
-                            <option>Impact, Charcoal, sans-serif</option>
-                            <option>‘Palatino Linotype’, ‘Book Antiqua’, Palatino, serif</option>
-                            <option>Century Gothic, sans-serif</option>
-                            <option>‘Lucida Sans Unicode’, ‘Lucida Grande’, sans-serif</option>
-                            <option>‘Arial Black’, Gadget, sans-serif</option>
-                            <option>‘Times New Roman’, Times, serif</option>
-                            <option>‘Arial Narrow’, sans-serif</option>
-                            <option>Verdana, Geneva, sans-serif</option>
-                            <option>Copperplate / Copperplate Gothic Light, sans-serif</option>
-                            <option>‘Lucida Console’, Monaco, monospace</option>
-                            <option>‘Trebuchet MS’, Helvetica, sans-serif</option>
-                            <option>‘Courier New’, Courier, monospace</option>
-                            <option>Arial, Helvetica, sans-serif</option>
-                        </options>
-                        <var>Magento_DesignEditor::store-name:font-picker</var>
-                    </control>
-                    <control name="store-name:color-picker">
-                        <type>color-picker</type>
-                        <selector><![CDATA[.logo span]]></selector>
-                        <attribute>color</attribute>
-                        <var>Magento_DesignEditor::store-name:color-picker</var>
-                    </control>
-                </components>
-            </control>
-            <control name="store-name:logo-uploader">
-                <type>logo-uploader</type>
-                <selector></selector>
-                <attribute></attribute>
-                <var>Magento_DesignEditor::store-name:logo-uploader</var>
-            </control>
-        </components>
-    </control>
-    <control name="header-background" title="Background" tab="header" column="left">
-        <type>background</type>
-        <components>
-            <control name="header-background:color-picker">
-                <type>color-picker</type>
-                <selector><![CDATA[.header]]></selector>
-                <attribute>background-color</attribute>
-                <var>Magento_DesignEditor::header-background:color-picker</var>
-            </control>
-            <control name="header-background:background-uploader">
-                <type>background-uploader</type>
-                <components>
-                    <control name="header-background:image-uploader">
-                        <type>image-uploader</type>
-                        <selector><![CDATA[.header]]></selector>
-                        <attribute>background-image</attribute>
-                        <var>Magento_DesignEditor::header-background:image-uploader</var>
-                    </control>
-                    <control name="header-background:tile">
-                        <type>checkbox</type>
-                        <selector><![CDATA[.header]]></selector>
-                        <attribute>background-repeat</attribute>
-                        <options>
-                            <option>no-repeat</option>
-                            <option>repeat</option>
-                            <option>repeat-x</option>
-                            <option>repeat-y</option>
-                            <option>inherit</option>
-                        </options>
-                        <var>Magento_DesignEditor::header-background:tile</var>
-                    </control>
-                </components>
-            </control>
-        </components>
-    </control>
-
-    <control name="menu-background" title="Menu Background" tab="header" column="middle">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .navigation > ul > .level-top > .submenu,
-            .navigation > ul > .level-top.more > .submenu > ul,
-            .level-top.more.hover:after,
-            .switcher .options > ul
-        ]]></selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::menu-background</var>
-    </control>
-    <control name="menu-stroke" title="Menu Stroke" tab="header" column="middle">
-        <type>color-picker</type>
-        <selector>
-            .navigation > ul > .level-top > .submenu,
-            .switcher .options > ul
-        </selector>
-        <attribute>border-color</attribute>
-        <var>Magento_DesignEditor::menu-stroke</var>
-    </control>
-    <control name="menu-links" title="Menu Links" tab="header" column="middle">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .navigation > ul > .level-top > .submenu a,
-            .navigation > ul > .level-top > .submenu a span
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::menu-links</var>
-    </control>
-    <control name="menu-links-hover" title="Menu Links Hover" tab="header" column="middle">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .navigation > ul > .level-top > .submenu a:hover,
-            .navigation > ul > .level-top > .submenu a:hover span
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::menu-links-hover</var>
-    </control>
-
-    <control name="header-links" title="Header Links" tab="header" column="right">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .navigation > ul > .level-top > a,
-            .navigation > ul > .level-top > a > span,
-            .action.showcart,
-            .header > .content .links a,
-            .switcher .options > ul a,
-            .action.switch
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::header-links</var>
-    </control>
-    <control name="header-links-hover" title="Header Links Hover" tab="header" column="right">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .navigation > ul > .level-top > a:hover,
-            .navigation > ul > .level-top > a:hover > span,
-            .navigation > ul > .level-top > a:active span,
-            .navigation > ul > .level-top > a:focus span,
-            .navigation > ul > .level-top.hover:hover > a span,
-            .navigation > ul > .level-top.hover.parent.hover > a span,
-            .navigation > ul > .level-top.hover.parent > a span,
-            .action.showcart:hover,
-            .action.showcart:active,
-            .action.showcart:focus,
-            .action.showcart.active,
-            .header > .content .links a:hover,
-            .switcher .options > ul a:hover,
-            .action.switch:focus,
-            .action.switch:hover,
-            .action.switch.active
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::header-links-hover</var>
-    </control>
-    <!--
-    <control name="header-scroll-bar-background" title="Scroll Bar Background" tab="header" column="right">
-        <type>color-picker</type>
-        <selector>.scroll</selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::header-scroll-bar-background</var>
-    </control>
-    <control name="header-scroll-bar-handle" title="Scroll Bar Handle" tab="header" column="right">
-        <type>color-picker</type>
-        <selector>.scroll .handle</selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::header-scroll-bar-handle</var>
-    </control>
--->
-    <control name="search-field" title="Search Field" tab="header" column="right">
-        <type>color-picker</type>
-        <selector>
-            .block.search input,
-            .block.search .action.search
-        </selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::search-field</var>
-    </control>
-    <control name="search-field-text" title="Search Field Text, Search Icon" tab="header" column="right">
-        <type>color-picker</type>
-        <selector>
-            .block.search input,
-            .block.search .action.search span,
-            .block.search input[type="password"]::-webkit-input-placeholder,
-            .block.search input[type="text"]::-webkit-input-placeholder
-        </selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::search-field-text</var>
-    </control>
-    <control name="search-field-stroke" title="Search Field Stroke" tab="header" column="right">
-        <type>color-picker</type>
-        <selector>
-            .block.search input,
-            .block.search .action.search
-        </selector>
-        <attribute>border-color</attribute>
-        <var>Magento_DesignEditor::search-field-stroke</var>
-    </control>
-
-
-    <control name="page-background" title="Page Background" tab="backgrounds" column="left">
-        <type>background</type>
-        <components>
-            <control name="page-background:color-picker">
-                <type>color-picker</type>
-                <selector><![CDATA[
-                    .page.wrapper,
-                    .product.data > .item.title:not(.disabled) > .switch:active,
-                    .product.data > .item.title:not(.disabled) > .switch:focus,
-                    .product.data > .item.title:not(.disabled) > .switch:hover,
-                    .product.data > .item.title.active > .switch,
-                    .footer
-                ]]></selector>
-                <attribute>background-color</attribute>
-                <var>Magento_DesignEditor::page-background:color-picker</var>
-            </control>
-            <control name="page-background:background-uploader">
-                <type>background-uploader</type>
-                <components>
-                    <control name="page-background:image-uploader">
-                        <type>image-uploader</type>
-                        <selector><![CDATA[
-                            .page.wrapper,
-                            .footer
-                        ]]></selector>
-                        <attribute>background-image</attribute>
-                        <var>Magento_DesignEditor::page-background:image-uploader</var>
-                    </control>
-                    <control name="page-background:tile">
-                        <type>checkbox</type>
-                        <selector><![CDATA[
-                            .page.wrapper,
-                            .footer
-                        ]]></selector>
-                        <attribute>background-repeat</attribute>
-                        <options>
-                            <option>no-repeat</option>
-                            <option>repeat</option>
-                            <option>repeat-x</option>
-                            <option>repeat-y</option>
-                            <option>inherit</option>
-                        </options>
-                        <var>Magento_DesignEditor::page-background:tile</var>
-                    </control>
-                </components>
-            </control>
-        </components>
-    </control>
-
-    <control name="form-background" title="Form Background" tab="backgrounds" column="middle">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .login.container,
-            .block.add.review,
-            .opc.wrapper > .opc .section > .step,
-            .opc.wrapper > .opc .section.active > .step-title,
-            .items.data tbody:nth-child(even) tr,
-            .cart.summary,
-            .minicart.wrapper .block.minicart,
-            .prices.tier,
-            .form.send.friend .fieldset,
-            .form.address.edit .fieldset,
-            .form.edit.account .fieldset,
-            .form.search.advanced,
-            .form.orders.search,
-            .form.contact,
-            .form.password.forget .fieldset,
-            .form.create.account .fieldset,
-            .form.wishlist.share .fieldset,
-            .block.dashboard:not(.welcome):not(.orders) .content,
-            .block.reviews.list .item.review:nth-child(odd),
-            .fieldset.bundle.options > .field,
-            .block.bundle.summary,
-            .data.table.reviews tbody tr:nth-child(even) td,
-            .data.table.wishlist tbody tr:nth-child(even),
-            .data.table.tags tbody tr:nth-child(even) td,
-            .data.comparison tr:nth-child(odd) .cell.attribute
-        ]]></selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::form-background</var>
-    </control>
-    <!--
-    <control name="form-stroke" title="Form 1 Stroke" tab="backgrounds" column="middle">
-        <type>color-picker</type>
-        <selector></selector>
-        <attribute>border-color</attribute>
-        <var>Magento_DesignEditor::form-stroke</var>
-    </control>
-    <control name="form2-background" title="Form 2 Background" tab="backgrounds" column="middle">
-        <type>color-picker</type>
-        <selector></selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::form2-background</var>
-    </control>
-    <control name="form2-stroke" title="Form 2 Stroke" tab="backgrounds" column="middle">
-        <type>color-picker</type>
-        <selector></selector>
-        <attribute>border-color</attribute>
-        <var>Magento_DesignEditor::form2-stroke</var>
-    </control>
-    -->
-    <control name="form-field-stroke" title="Form Field Stroke" tab="backgrounds" column="middle">
-        <type>color-picker</type>
-        <selector><![CDATA[input[type="password"], input[type="text"], select, textarea, .fieldset > .field .addon .addbefore, .fieldset > .field .addon .addafter, .product.main.info .product.options.wrapper .field .addon .addbefore, .product.main.info .product.options.wrapper .field .addon .addafter, .form.password.forget .fieldset > .field .addon .addbefore, .form.create.account .fieldset > .field .addon .addbefore, .form.password.forget .fieldset > .field .addon .addafter, .form.create.account .fieldset > .field .addon .addafter, .block.add.review .fieldset > .field:not(.ratings) .addon .addbefore, .block.add.review .fieldset > .field:not(.ratings) .addon .addafter]]></selector>
-        <attribute>border-color</attribute>
-        <var>Magento_DesignEditor::form-field-stroke</var>
-    </control>
-    <control name="form-field-stroke-clicked" title="Form Field Stroke Clicked" tab="backgrounds" column="right">
-        <type>color-picker</type>
-        <selector>
-            input[type="password"]:focus,
-            input[type="text"]:focus,
-            select:focus,
-            textarea:focus
-        </selector>
-        <attribute>border-color</attribute>
-        <var>Magento_DesignEditor::form-field-stroke-clicked</var>
-    </control>
-    <control name="image-stroke-keylines" title="Image Stroke &amp; Keylines" tab="backgrounds" column="right">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .opc.wrapper > .opc .section > .step:before,
-            .step.login.wrapper .block.guest:before,
-            .order.data.items tfoot tr:first-child td,
-            .items.data .item.actions td:before,
-            .cart.summary .summary.title,
-            .cart.summary .block,
-            .data-table td,
-
-            .data.comparison .cell.product.info,
-            .data.comparison .addto.links,
-            .data.comparison .cell.label,
-            .data.comparison .cell.label.product,
-            .data.comparison .cell.label,
-            .data.comparison td:last-child,
-
-            .block.widget.viewed,
-            .block.crosssell,
-            .block.upsell,
-            .block.related,
-            .block.widget.viewed .products.list .item.product .addto.links,
-            .block.crosssell .products.list .item.product .addto.links,
-            .block.upsell .products.list .item.product .addto.links,
-            .block.related .products.list .item.product .addto.links,
-            .product.info.detailed + .block.upsell,
-            .product.info.detailed + .block.related,
-            .toolbar.alternative .pages,
-            .toolbar.alternative .amount,
-            .toolbar.alternative .limiter,
-            .toolbar .options,
-            .product.info.main .page.title.product + .price-box,
-            .product.info.main .product.addto.links,
-            .block.bundle.summary > .title,
-            .block.bundle.summary .photo,
-            .block.bundle.summary .box.tocart,
-            .block.bundle.summary .subtitle,
-            .product.photo.thumbs .item.thumb .active img,
-
-            .login.container .block.new:before,
-            .block.filter .filtered .item,
-            .block.add.review .fieldset > .legend,
-            .data.table.tags tbody td,
-            .data.table.reviews tbody td
-        ]]></selector>
-        <attribute>border-color</attribute>
-        <var>Magento_DesignEditor::image-stroke-keylines</var>
-    </control>
-
-<!--     <control name="scroll-bar-background" title="Scroll Bar Background" tab="backgrounds" column="right">
-    <type>color-picker</type>
-    <selector>.menu a:hover</selector>
-    <attribute>color</attribute>
-    <var>Magento_DesignEditor::scroll-bar-background</var>
-</control>
-<control name="scroll-bar-handle" title="Scroll Bar Handle" tab="backgrounds" column="right">
-    <type>color-picker</type>
-    <selector>.menu a:hover</selector>
-    <attribute>color</attribute>
-    <var>Magento_DesignEditor::scroll-bar-handle</var>
-</control> -->
-
-    <control name="radio-checkbox-icon" title="Radio Buttons/Checkboxes Icon" tab="buttons" column="left">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::radio-checkbox-icon</var>
-    </control>
-    <control name="radio-checkbox-background" title="Radio Buttons/Checkboxes Background" tab="buttons" column="left">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::radio-checkbox-background</var>
-    </control>
-    <control name="radio-checkbox-stroke" title="Radio Buttons/Checkboxes Stroke" tab="buttons" column="left">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::radio-checkbox-stroke</var>
-    </control>
-
-    <control name="button-text" title="Buttons Text" tab="buttons" column="left">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .block.add.review .action.submit span,
-            .step.login.wrapper button.action:not(.reload) span,
-            .cart.summary .block .action span,
-            .action.checkout span,
-            .action.subscribe span,
-            .action.tocart span,
-            .action.primary.customize span,
-            .action.primary.tocart span,
-            .login.container .action.login span,
-            .login.container .action.create span,
-
-            .form.send.friend .action.save span,
-            .form.address.edit .action.save span,
-            .form.edit.account .action.save span,
-            .form.search.advanced .action.save span,
-            .form.orders.search .action.save span,
-            .form.contact .action.save span,
-            .form.password.forget .action.save span,
-            .form.create.account .action.save span,
-            .form.wishlist.share .action.save span,
-            .form.password.reset .action.save span,
-            .form.add.tag .action.save span,
-
-            .form.send.friend .action.submit span,
-            .form.address.edit .action.submit span,
-            .form.edit.account .action.submit span,
-            .form.search.advanced .action.submit span,
-            .form.orders.search .action.submit span,
-            .form.contact .action.submit span,
-            .form.password.forget .action.submit span,
-            .form.create.account .action.submit span,
-            .form.wishlist.share .action.submit span,
-            .form.password.reset .action.submit span,
-            .form.add.tag .action.submit span,
-
-            .form.send.friend .action.add span,
-            .form.address.edit .action.add span,
-            .form.edit.account .action.add span,
-            .form.search.advanced .action.add span,
-            .form.orders.search .action.add span,
-            .form.contact .action.add span,
-            .form.password.forget .action.add span,
-            .form.create.account .action.add span,
-            .form.wishlist.share .action.add span,
-            .form.password.reset .action.add span,
-            .form.add.tag .action.add span,
-
-            .form.newsletter.manage .action.save span,
-
-            .form.search.advanced .action span,
-            .form.orders.search .action span,
-            .form.contact .action span,
-
-            .banner.main .banner.action span,
-            .opc.wrapper .form:not(.login) .actions button.action span,
-
-            .data.table.wishlist + .actions .primary .action.share span,
-            .data.table.wishlist + .actions .primary .action.update span
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::button-text</var>
-    </control>
-    <control name="button-background" title="Buttons" tab="buttons" column="left">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .block.add.review .action.submit,
-            .step.login.wrapper button.action:not(.reload),
-            .cart.summary .block .action,
-            .action.checkout,
-            .action.subscribe,
-            .action.tocart,
-            .action.primary.customize,
-            .action.primary.tocart,
-            .login.container .action.login,
-            .login.container .action.create,
-
-            .form.send.friend .action.save,
-            .form.address.edit .action.save,
-            .form.edit.account .action.save,
-            .form.search.advanced .action.save,
-            .form.orders.search .action.save,
-            .form.contact .action.save,
-            .form.password.forget .action.save,
-            .form.create.account .action.save,
-            .form.wishlist.share .action.save,
-            .form.password.reset .action.save,
-            .form.add.tag .action.save,
-
-            .form.send.friend .action.submit,
-            .form.address.edit .action.submit,
-            .form.edit.account .action.submit,
-            .form.search.advanced .action.submit,
-            .form.orders.search .action.submit,
-            .form.contact .action.submit,
-            .form.password.forget .action.submit,
-            .form.create.account .action.submit,
-            .form.wishlist.share .action.submit,
-            .form.password.reset .action.submit,
-            .form.add.tag .action.submit,
-
-            .form.send.friend .action.add,
-            .form.address.edit .action.add,
-            .form.edit.account .action.add,
-            .form.search.advanced .action.add,
-            .form.orders.search .action.add,
-            .form.contact .action.add,
-            .form.password.forget .action.add,
-            .form.create.account .action.add,
-            .form.wishlist.share .action.add,
-            .form.password.reset .action.add,
-            .form.add.tag .action.add,
-
-            .form.newsletter.manage .action.save,
-
-            .form.search.advanced .action,
-            .form.orders.search .action,
-            .form.contact .action,
-
-            .banner.main .banner.action,
-            .opc.wrapper .form:not(.login) .actions button.action,
-
-            .data.table.wishlist + .actions .primary .action.share,
-            .data.table.wishlist + .actions .primary .action.update
-        ]]></selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::button-background</var>
-    </control>
-    <control name="button-hover" title="Buttons Hover" tab="buttons" column="left">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .block.add.review .action.submit:hover,
-            .step.login.wrapper button.action:not(.reload):hover,
-            .cart.summary .block .action:hover,
-            .action.checkout:hover,
-            .action.subscribe:hover,
-            .action.tocart:hover,
-            .action.primary.customize:hover,
-            .action.primary.tocart:hover,
-            .login.container .action.login:hover,
-            .login.container .action.create:hover,
-
-            .form.send.friend .action.save:hover,
-            .form.address.edit .action.save:hover,
-            .form.edit.account .action.save:hover,
-            .form.search.advanced .action.save:hover,
-            .form.orders.search .action.save:hover,
-            .form.contact .action.save:hover,
-            .form.password.forget .action.save:hover,
-            .form.create.account .action.save:hover,
-            .form.wishlist.share .action.save:hover,
-            .form.password.reset .action.save:hover,
-            .form.add.tag .action.save:hover,
-
-            .form.send.friend .action.submit:hover,
-            .form.address.edit .action.submit:hover,
-            .form.edit.account .action.submit:hover,
-            .form.search.advanced .action.submit:hover,
-            .form.orders.search .action.submit:hover,
-            .form.contact .action.submit:hover,
-            .form.password.forget .action.submit:hover,
-            .form.create.account .action.submit:hover,
-            .form.wishlist.share .action.submit:hover,
-            .form.password.reset .action.submit:hover,
-            .form.add.tag .action.submit:hover,
-
-            .form.send.friend .action.add:hover,
-            .form.address.edit .action.add:hover,
-            .form.edit.account .action.add:hover,
-            .form.search.advanced .action.add:hover,
-            .form.orders.search .action.add:hover,
-            .form.contact .action.add:hover,
-            .form.password.forget .action.add:hover,
-            .form.create.account .action.add:hover,
-            .form.wishlist.share .action.add:hover,
-            .form.password.reset .action.add:hover,
-            .form.add.tag .action.add:hover,
-
-            .form.newsletter.manage .action.save:hover,
-
-            .form.search.advanced .action:hover,
-            .form.orders.search .action:hover,
-            .form.contact .action:hover,
-
-            .banner.main .banner.action:hover,
-            .opc.wrapper .form:not(.login) .actions button.action:hover,
-
-            .data.table.wishlist + .actions .primary .action.share:hover,
-            .data.table.wishlist + .actions .primary .action.update:hover
-        ]]></selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::button-hover</var>
-    </control>
-    <control name="icons" title="Icons" tab="buttons" column="middle">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .minicart.wrapper .action.previous span,
-            .minicart.wrapper .action.next span,
-            .action.delete span,
-            .toolbar .modes .mode span,
-            .toolbar .action.next span,
-            .toolbar .action.previous span,
-            .action.mailto span
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::icons</var>
-    </control>
-    <control name="icons-hover" title="Icons Hover" tab="buttons" column="middle">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .minicart.wrapper .action.previous:hover span,
-            .minicart.wrapper .action.next:hover span,
-            .action.delete:hover span,
-            .toolbar .modes .mode:hover span,
-            .toolbar .action.next:hover span,
-            .toolbar .action.previous:hover span,
-            .action.mailto:hover span
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::icons-hover</var>
-    </control>
-    <!--
-    <control name="icons2" title="Icons 2" tab="buttons" column="middle">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::icons2</var>
-    </control>
-
-    <control name="accents" title="Accent Color" tab="buttons" column="right">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::accents</var>
-    </control>
-
-    <control name="size-swatches" title="Size Swatches" tab="buttons" column="right">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::size-swatches</var>
-    </control>
-    <control name="size-swatches-unavailable" title="Size Swatches (Unavailable Size)" tab="buttons" column="right">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::size-swatches-unavailable</var>
-    </control>
-    <control name="size-swatches-hover" title="Size Swatches Hover/Selected Stroke" tab="buttons" column="right">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::size-swatches-hover</var>
-    </control>
-
-
-
-    <control name="tooltip-text" title="Tooltip 1 Text" tab="tips" column="left">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::tooltip-text</var>
-    </control>
-    <control name="tooltip-box" title="Tooltip 1 Box" tab="tips" column="left">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::tooltip-box</var>
-    </control>
-    <control name="tooltip-stroke" title="Tooltip 1 Stroke" tab="tips" column="left">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::tooltip-stroke</var>
-    </control>
-    <control name="tooltip2-text" title="Tooltip 2 Text" tab="tips" column="left">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::tooltip2-text</var>
-    </control>
-    <control name="tooltip2-box" title="Tooltip 2 Box" tab="tips" column="left">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::tooltip2-box</var>
-    </control>
-    <control name="tooltip2-stroke" title="Tooltip 2 Stroke" tab="tips" column="left">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::tooltip2-stroke</var>
-    </control>
-    -->
-
-    <control name="error-icon" title="Error Icon" tab="tips" column="left">
-        <type>color-picker</type>
-        <selector><![CDATA[.message.error > *:first-child:before]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::error-icon</var>
-    </control>
-    <control name="error-box" title="Error Box" tab="tips" column="left">
-        <type>color-picker</type>
-        <selector><![CDATA[.message.error]]></selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::error-box</var>
-    </control>
-
-    <control name="success-icon" title="Success Icon" tab="tips" column="middle">
-        <type>color-picker</type>
-        <selector><![CDATA[.message.success > *:first-child:before]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::success-icon</var>
-    </control>
-    <control name="success-box" title="Success Box" tab="tips" column="middle">
-        <type>color-picker</type>
-        <selector><![CDATA[.message.success]]></selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::success-box</var>
-    </control>
-
-    <control name="notice-icon" title="Notice Icon" tab="tips" column="right">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .message.notice > *:first-child:before
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::notice-icon</var>
-    </control>
-    <control name="notice-box" title="Notice Box" tab="tips" column="right">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .message.notice
-        ]]></selector>
-        <attribute>background-color</attribute>
-        <var>Magento_DesignEditor::notice-box</var>
-    </control>
-
-    <control name="banner-text" title="Banner Text" tab="fonts" column="left">
-        <type>font</type>
-        <components>
-            <control name="banner-text:font-picker">
-                <type>font-picker</type>
-                <selector><![CDATA[.home.banners .banner.text]]></selector>
-                <attribute>font-family</attribute>
-                <options>
-                    <option>"marvel", Arial, sans-serif</option>
-                    <option>Tahoma, Geneva, sans-serif</option>
-                    <option>Georgia, serif</option>
-                    <option>Impact, Charcoal, sans-serif</option>
-                    <option>‘Palatino Linotype’, ‘Book Antiqua’, Palatino, serif</option>
-                    <option>Century Gothic, sans-serif</option>
-                    <option>‘Lucida Sans Unicode’, ‘Lucida Grande’, sans-serif</option>
-                    <option>‘Arial Black’, Gadget, sans-serif</option>
-                    <option>‘Times New Roman’, Times, serif</option>
-                    <option>‘Arial Narrow’, sans-serif</option>
-                    <option>Verdana, Geneva, sans-serif</option>
-                    <option>Copperplate / Copperplate Gothic Light, sans-serif</option>
-                    <option>‘Lucida Console’, Monaco, monospace</option>
-                    <option>‘Trebuchet MS’, Helvetica, sans-serif</option>
-                    <option>‘Courier New’, Courier, monospace</option>
-                    <option>Arial, Helvetica, sans-serif</option>
-                </options>
-                <var>Magento_DesignEditor::banner-text:font-picker</var>
-            </control>
-            <control name="banner-text:color-picker">
-                <type>color-picker</type>
-                <selector><![CDATA[.home.banners .banner.text]]></selector>
-                <attribute>color</attribute>
-                <var>Magento_DesignEditor::banner-text:color-picker</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="menu" title="Menu &amp; Header Links" tab="fonts" column="left">
-        <type>font</type>
-        <components>
-            <control name="menu:font-picker">
-                <type>font-picker</type>
-                <selector><![CDATA[
-                    .navigation > ul > .level-top > a,
-                    .action.showcart .qty,
-                    .switcher strong,
-                    .product.name,
-                    .toolbar .limiter select,
-                    .toolbar .sorter select,
-                    .navigation > ul > .level-top > .submenu > ul .level1 > a
-                ]]></selector>
-                <attribute>font-family</attribute>
-                <options>
-                    <option>"sourcesanspro", Arial, sans-serif</option>
-                    <option>Tahoma, Geneva, sans-serif</option>
-                    <option>Georgia, serif</option>
-                    <option>Impact, Charcoal, sans-serif</option>
-                    <option>‘Palatino Linotype’, ‘Book Antiqua’, Palatino, serif</option>
-                    <option>Century Gothic, sans-serif</option>
-                    <option>‘Lucida Sans Unicode’, ‘Lucida Grande’, sans-serif</option>
-                    <option>‘Arial Black’, Gadget, sans-serif</option>
-                    <option>‘Times New Roman’, Times, serif</option>
-                    <option>‘Arial Narrow’, sans-serif</option>
-                    <option>Verdana, Geneva, sans-serif</option>
-                    <option>Copperplate / Copperplate Gothic Light, sans-serif</option>
-                    <option>‘Lucida Console’, Monaco, monospace</option>
-                    <option>‘Trebuchet MS’, Helvetica, sans-serif</option>
-                    <option>‘Courier New’, Courier, monospace</option>
-                    <option>Arial, Helvetica, sans-serif</option>
-                </options>
-                <var>Magento_DesignEditor::menu:font-picker</var>
-            </control>
-            <control name="menu:color-picker">
-                <type>color-picker</type>
-                <selector><![CDATA[
-                    .navigation > ul > .level-top > a,
-                    .action.showcart .qty,
-                    .switcher strong,
-                    .product.name,
-                    .toolbar .limiter select,
-                    .toolbar .sorter select
-                ]]></selector>
-                <attribute>color</attribute>
-                <var>Magento_DesignEditor::menu:color-picker</var>
-            </control>
-        </components>
-    </control>
-    <control name="page-headings" title="Page Headings" tab="fonts" column="left">
-        <type>font</type>
-        <components>
-            <control name="page-headings:font-picker">
-                <type>font-picker</type>
-                <selector><![CDATA[
-                    .page.title .title,
-                    .opc.wrapper > .opc .section > .step-title h2,
-                    .column.main .block > .title
-                ]]></selector>
-                <attribute>font-family</attribute>
-                <options>
-                    <option>"sourcesanspro", Arial, sans-serif</option>
-                    <option>Tahoma, Geneva, sans-serif</option>
-                    <option>Georgia, serif</option>
-                    <option>Impact, Charcoal, sans-serif</option>
-                    <option>‘Palatino Linotype’, ‘Book Antiqua’, Palatino, serif</option>
-                    <option>Century Gothic, sans-serif</option>
-                    <option>‘Lucida Sans Unicode’, ‘Lucida Grande’, sans-serif</option>
-                    <option>‘Arial Black’, Gadget, sans-serif</option>
-                    <option>‘Times New Roman’, Times, serif</option>
-                    <option>‘Arial Narrow’, sans-serif</option>
-                    <option>Verdana, Geneva, sans-serif</option>
-                    <option>Copperplate / Copperplate Gothic Light, sans-serif</option>
-                    <option>‘Lucida Console’, Monaco, monospace</option>
-                    <option>‘Trebuchet MS’, Helvetica, sans-serif</option>
-                    <option>‘Courier New’, Courier, monospace</option>
-                    <option>Arial, Helvetica, sans-serif</option>
-                </options>
-                <var>Magento_DesignEditor::page-headings:font-picker</var>
-            </control>
-            <control name="page-headings:color-picker">
-                <type>color-picker</type>
-                <selector><![CDATA[
-                    .page.title .title,
-                    .opc.wrapper > .opc .section > .step-title h2,
-                    .column.main .block > .title
-                ]]></selector>
-                <attribute>color</attribute>
-                <var>Magento_DesignEditor::page-headings:color-picker</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="body-text" title="Body Text" tab="fonts" column="middle">
-        <type>font</type>
-        <components>
-            <control name="body-text:font-picker">
-                <type>font-picker</type>
-                <selector><![CDATA[
-                    body,
-                    .footer .links a,
-                    .toolbar .limiter .label,
-                    .toolbar .sorter .label,
-                    .products.wrapper .products.list .item .price-box,
-                    .reviews.summary .reviews.actions,
-                    .block.add.review .fieldset > .legend,
-                    .column.main .block > .title
-                ]]></selector>
-                <attribute>font-family</attribute>
-                <options>
-                    <option>"sourcesanspro", Arial, sans-serif</option>
-                    <option>Tahoma, Geneva, sans-serif</option>
-                    <option>Georgia, serif</option>
-                    <option>Impact, Charcoal, sans-serif</option>
-                    <option>‘Palatino Linotype’, ‘Book Antiqua’, Palatino, serif</option>
-                    <option>Century Gothic, sans-serif</option>
-                    <option>‘Lucida Sans Unicode’, ‘Lucida Grande’, sans-serif</option>
-                    <option>‘Arial Black’, Gadget, sans-serif</option>
-                    <option>‘Times New Roman’, Times, serif</option>
-                    <option>‘Arial Narrow’, sans-serif</option>
-                    <option>Verdana, Geneva, sans-serif</option>
-                    <option>Copperplate / Copperplate Gothic Light, sans-serif</option>
-                    <option>‘Lucida Console’, Monaco, monospace</option>
-                    <option>‘Trebuchet MS’, Helvetica, sans-serif</option>
-                    <option>‘Courier New’, Courier, monospace</option>
-                    <option>Arial, Helvetica, sans-serif</option>
-                </options>
-                <var>Magento_DesignEditor::body-text:font-picker</var>
-            </control>
-            <control name="body-text:color-picker">
-                <type>color-picker</type>
-                <selector><![CDATA[
-                    body,
-                    .footer .links a,
-                    .toolbar .limiter .label,
-                    .toolbar .sorter .label,
-                    .products.wrapper .products.list .item .price-box,
-                    .reviews.summary .reviews.actions,
-                    .block.add.review .fieldset > .legend,
-                    .column.main .block > .title
-                ]]></selector>
-                <attribute>color</attribute>
-                <var>Magento_DesignEditor::body-text:color-picker</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="buttons" title="Button Text" tab="fonts" column="middle">
-        <type>font</type>
-        <components>
-            <control name="buttons:font-picker">
-                <type>font-picker</type>
-                <selector><![CDATA[
-                    .block.add.review .action.submit span,
-                    .step.login.wrapper button.action:not(.reload) span,
-                    .cart.summary .block .action span,
-                    .action.checkout span,
-                    .action.subscribe span,
-                    .action.tocart span,
-                    .action.primary.customize span,
-                    .action.primary.tocart span,
-                    .login.container .action.login span,
-                    .login.container .action.create span,
-
-                    .form.send.friend .action.save span,
-                    .form.address.edit .action.save span,
-                    .form.edit.account .action.save span,
-                    .form.search.advanced .action.save span,
-                    .form.orders.search .action.save span,
-                    .form.contact .action.save span,
-                    .form.password.forget .action.save span,
-                    .form.create.account .action.save span,
-                    .form.wishlist.share .action.save span,
-                    .form.password.reset .action.save span,
-                    .form.add.tag .action.save span,
-
-                    .form.send.friend .action.submit span,
-                    .form.address.edit .action.submit span,
-                    .form.edit.account .action.submit span,
-                    .form.search.advanced .action.submit span,
-                    .form.orders.search .action.submit span,
-                    .form.contact .action.submit span,
-                    .form.password.forget .action.submit span,
-                    .form.create.account .action.submit span,
-                    .form.wishlist.share .action.submit span,
-                    .form.password.reset .action.submit span,
-                    .form.add.tag .action.submit span,
-
-                    .form.send.friend .action.add span,
-                    .form.address.edit .action.add span,
-                    .form.edit.account .action.add span,
-                    .form.search.advanced .action.add span,
-                    .form.orders.search .action.add span,
-                    .form.contact .action.add span,
-                    .form.password.forget .action.add span,
-                    .form.create.account .action.add span,
-                    .form.wishlist.share .action.add span,
-                    .form.password.reset .action.add span,
-                    .form.add.tag .action.add span,
-
-                    .form.newsletter.manage .action.save span,
-
-                    .form.search.advanced .action span,
-                    .form.orders.search .action span,
-                    .form.contact .action span,
-
-                    .banner.main .banner.action span,
-                    .opc.wrapper .form:not(.login) .actions button.action span,
-
-                    .data.table.wishlist + .actions .primary .action.share span,
-                    .data.table.wishlist + .actions .primary .action.update span
-                ]]></selector>
-                <attribute>font-family</attribute>
-                <options>
-                    <option>"marvel", Arial, sans-serif</option>
-                    <option>Tahoma, Geneva, sans-serif</option>
-                    <option>Georgia, serif</option>
-                    <option>Impact, Charcoal, sans-serif</option>
-                    <option>‘Palatino Linotype’, ‘Book Antiqua’, Palatino, serif</option>
-                    <option>Century Gothic, sans-serif</option>
-                    <option>‘Lucida Sans Unicode’, ‘Lucida Grande’, sans-serif</option>
-                    <option>‘Arial Black’, Gadget, sans-serif</option>
-                    <option>‘Times New Roman’, Times, serif</option>
-                    <option>‘Arial Narrow’, sans-serif</option>
-                    <option>Verdana, Geneva, sans-serif</option>
-                    <option>Copperplate / Copperplate Gothic Light, sans-serif</option>
-                    <option>‘Lucida Console’, Monaco, monospace</option>
-                    <option>‘Trebuchet MS’, Helvetica, sans-serif</option>
-                    <option>‘Courier New’, Courier, monospace</option>
-                    <option>Arial, Helvetica, sans-serif</option>
-                </options>
-                <var>Magento_DesignEditor::buttons:font-picker</var>
-            </control>
-            <control name="buttons:color-picker">
-                <type>color-picker</type>
-                <selector><![CDATA[
-                    .block.add.review .action.submit span,
-                    .step.login.wrapper button.action span,
-                    .cart.summary .block .action span,
-                    .action.checkout span,
-                    .action.subscribe span,
-                    .action.tocart span,
-                    .action.primary.customize span,
-                    .action.primary.tocart span,
-                    .login.container .action.login span,
-                    .login.container .action.create span,
-                    .form.password.forget .action.submit span,
-                    .form.create.account .action.submit span,
-                    .banner.main .banner.action span,
-                    .opc.wrapper .form:not(.login) .actions button.action span
-                ]]></selector>
-                <attribute>color</attribute>
-                <var>Magento_DesignEditor::buttons:color-picker</var>
-            </control>
-        </components>
-    </control>
-
-    <control name="text-links" title="Links" tab="fonts" column="right">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .product.info.main .product.addto.links .action > span,
-            .products.wrapper.grid .products.list .secondary .action > span,
-            .filter a
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::text-links</var>
-    </control>
-    <control name="text-links-hover" title="Links Hover" tab="fonts" column="right">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .product.info.main .product.addto.links .action:hover > span,
-            .products.wrapper.grid .products.list .secondary .action:hover > span,
-            .filter a:hover
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::text-links-hover</var>
-    </control>
-    <!--
-    <control name="text-links-active" title="Text Links Active" tab="fonts" column="right">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::text-links-active</var>
-    </control>
-    <control name="text-links-product" title="Text Links Product Name" tab="fonts" column="right">
-        <type>color-picker</type>
-        <selector>.menu a:hover</selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::text-links-product</var>
-    </control>
-    -->
-    <control name="small-links" title="Small Links" tab="fonts" column="right">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .minicart .product.options.wrapper .more
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::small-links</var>
-    </control>
-    <control name="small-links-hover" title="Small Links Hover" tab="fonts" column="right">
-        <type>color-picker</type>
-        <selector><![CDATA[
-            .minicart .product.options.wrapper .more:hover
-        ]]></selector>
-        <attribute>color</attribute>
-        <var>Magento_DesignEditor::small-links-hover</var>
-    </control>
-</controls>
diff --git a/app/design/frontend/Magento/plushe/Magento_Reports/layout/catalog_product_view.xml b/app/design/frontend/Magento/plushe/Magento_Reports/layout/catalog_product_view.xml
deleted file mode 100644
index 455dc6c5b614c03de350fcb35b97d775241ea59a..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/Magento_Reports/layout/catalog_product_view.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/Core/etc/layout_single.xsd">
-    <referenceContainer name="content">
-        <block class="Magento\Reports\Block\Product\Widget\Viewed\Item" name="product.widget.viewed.item" template="Magento_Reports::product/widget/viewed/item.phtml">
-            <arguments>
-                <argument name="type" xsi:type="string">widget-viewed</argument>
-                <argument name="view_mode" xsi:type="string">grid</argument>
-                <argument name="image_type" xsi:type="string">recently_viewed_products_grid_content_widget</argument>
-            </arguments>
-        </block>
-    </referenceContainer>
-    <referenceContainer name="content.bottom">
-        <block class="Magento\Reports\Block\Product\Widget\Viewed" name="product.viewed.products" template="Magento_Reports::product/widget/viewed.phtml">
-            <arguments>
-                <argument name="type" xsi:type="string">widget-viewed</argument>
-                <argument name="view_mode" xsi:type="string">grid</argument>
-            </arguments>
-        </block>
-    </referenceContainer>
-</layout>
diff --git a/app/design/frontend/Magento/plushe/Magento_Review/layout/catalog_product_view.xml b/app/design/frontend/Magento/plushe/Magento_Review/layout/catalog_product_view.xml
deleted file mode 100644
index d49f0001bb6d8ad4fb45bad52cfdeccedaea716c..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/Magento_Review/layout/catalog_product_view.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/Core/etc/layout_single.xsd">
-    <referenceBlock name="product.info.details">
-        <block class="Magento\Catalog\Block\Product\View\Additional" name="product.info.reviews.tab" as="product_reviews" group="detailed_info">
-            <arguments>
-                <argument name="title" translate="true" xsi:type="string">Reviews</argument>
-            </arguments>
-            <block class="Magento\Review\Block\Form" name="product.review.form" as="review_form">
-                <container name="product.review.form.fields.before" as="form_fields_before" label="Review Form Fields Before" htmlTag="div" htmlClass="rewards"/>
-            </block>
-            <block class="Magento\Review\Block\Product\View\ListView" name="product.info.product_additional_data" as="product_additional_data" template="product/view/list.phtml"/>
-        </block>
-    </referenceBlock>
-</layout>
diff --git a/app/design/frontend/Magento/plushe/Magento_Review/layout/review_product_list.xml b/app/design/frontend/Magento/plushe/Magento_Review/layout/review_product_list.xml
deleted file mode 100644
index 5148d484f3f99128621276d12d658fd30d42ed84..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/Magento_Review/layout/review_product_list.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/Core/etc/layout_single.xsd">
-    <referenceBlock name="root">
-        <action method="setTemplate">
-            <argument name="template" xsi:type="string">blank.phtml</argument>
-        </action>
-        <block class="Magento\Review\Block\Product\View" as="content" name="product.redirect" template="redirect.phtml"/>
-    </referenceBlock>
-</layout>
diff --git a/app/design/frontend/Magento/plushe/Magento_Theme/layout/default.xml b/app/design/frontend/Magento/plushe/Magento_Theme/layout/default.xml
deleted file mode 100644
index 12e7156251cf6c593cf2747308b59876a2b3b6a3..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/Magento_Theme/layout/default.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/Core/etc/layout_single.xsd">
-    <referenceBlock name="logo">
-        <arguments>
-            <argument name="theme_name" xsi:type="string">plushe</argument>
-        </arguments>
-    </referenceBlock>
-    <referenceContainer name="header-wrapper">
-        <block class="Magento\Framework\View\Element\Html\Links" name="header.links" after="minicart">
-            <arguments>
-                <argument name="css_class" xsi:type="string">links</argument>
-            </arguments>
-        </block>
-    </referenceContainer>
-    <referenceBlock name="footer_links">
-        <arguments>
-            <argument name="css_class" xsi:type="string">links</argument>
-        </arguments>
-    </referenceBlock>
-    <referenceBlock name="catalog.topnav">
-        <arguments>
-            <argument name="columns_limit" xsi:type="string">1</argument>
-        </arguments>
-    </referenceBlock>
-    <move element="header" destination="header.links" before="-"/>
-</layout>
diff --git a/app/design/frontend/Magento/plushe/Magento_Theme/layout/default_head_blocks.xml b/app/design/frontend/Magento/plushe/Magento_Theme/layout/default_head_blocks.xml
deleted file mode 100644
index 1765210c64335e363537f04d5ee0e939ce5fdcb0..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/Magento_Theme/layout/default_head_blocks.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../app/code/Magento/Core/etc/layout_single.xsd">
-    <referenceBlock name="head">
-        <block class="Magento\Theme\Block\Html\Head\Css" name="css-styles-css">
-            <arguments>
-                <argument name="file" xsi:type="string">css/styles.css</argument>
-            </arguments>
-        </block>
-        <block class="Magento\Theme\Block\Html\Head\Script" name="js-matchmedia-js">
-            <arguments>
-                <argument name="file" xsi:type="string">matchMedia.js</argument>
-            </arguments>
-        </block>
-        <block class="Magento\Theme\Block\Html\Head\Script" name="js-responsive-js" after="mage-zoom-js">
-            <arguments>
-                <argument name="file" xsi:type="string">js/responsive.js</argument>
-            </arguments>
-        </block>
-        <block class="Magento\Theme\Block\Html\Head\Script" name="js-head-js">
-            <arguments>
-                <argument name="file" xsi:type="string">headjs/head.min.js</argument>
-            </arguments>
-        </block>
-        <block class="Magento\Theme\Block\Html\Head\Script" name="js-jquery-dropdowns-js">
-            <arguments>
-                <argument name="file" xsi:type="string">js/jquery.dropdowns.js</argument>
-            </arguments>
-        </block>
-        <block class="Magento\Theme\Block\Html\Head\Script" name="js-tabs-js">
-            <arguments>
-                <argument name="file" xsi:type="string">js/tabs.js</argument>
-            </arguments>
-        </block>
-        <block class="Magento\Theme\Block\Html\Head\Script" name="js-navigation-menu-js">
-            <arguments>
-                <argument name="file" xsi:type="string">js/navigation-menu.js</argument>
-            </arguments>
-        </block>
-        <block class="Magento\Theme\Block\Html\Head\Script" name="js-theme-js">
-            <arguments>
-                <argument name="file" xsi:type="string">js/theme.js</argument>
-            </arguments>
-        </block>
-        <block class="Magento\Theme\Block\Html\Head\Script" name="js-selectivizr-js">
-            <arguments>
-                <argument name="file" xsi:type="string">selectivizr.js</argument>
-                <argument name="properties" xsi:type="array">
-                    <item name="ie_condition" xsi:type="string">lt IE 9</item>
-                </argument>
-            </arguments>
-        </block>
-    </referenceBlock>
-</layout>
diff --git a/app/design/frontend/Magento/plushe/css/print.css b/app/design/frontend/Magento/plushe/css/print.css
deleted file mode 100644
index 486b06c3e45dddaaea681cb941e8d66ad998852e..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/print.css
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-
-*     { background:none !important; text-align:left !important; }
-body  { background:#fff !important; font-size:9pt !important; margin:15px !important; }
-
-.header-container,
-.footer-before-container,
-.footer-container,
-.widget,
-.pager,
-.toolbar,
-.actions,
-.buttons-set { display:none !important; }
-
-.page-print .data-table .cart-tax-total { background-position:100% -54px; }
-.page-print .data-table .cart-tax-info { display:block !important; }
-
-
-
-
-/*
- *    My Account -> My Orders
- *
------------------------------------------------------------------------------ */
-.order-date {
-    margin-bottom: 15px;
-}
-
-.order.details .title,
-.order.details .caption {
-    clear: both;
-    margin-bottom: 15px;
-}
-
-.order.details .title strong,
-.order.details .caption strong {
-    line-height: 1.2;
-    font-weight: 200;
-    font-size: 20px;
-}
-
-/* blocks */
-.order.details .block.order {
-    float: left;
-    width: 48%;
-    margin-bottom: 30px;
-    padding-right: 2%;
-}
-.order.details .block.order .title {
-    margin-bottom: 15px;
-}
-.order.details .block.order .title strong {
-    line-height: 1.2;
-    font-weight: 200;
-    font-size: 20px;
-}
-.order.details .block.order .content address {
-    font-style: normal;
-}
-.data.table.order.tracking {
-    margin: 10px 0;
-}
-
-/* tables */
-.data.table.order {
-    margin-bottom: 45px;
-    width: 100%;
-}
-.data.table.order thead th {
-    padding: 0 10px;
-}
-.data.table.order thead tr:last-child th {
-    padding-bottom: 10px;
-    border-bottom: 3px solid #e5e5e5;
-}
-.data.table.order td.col.qty {
-    width: 90px;
-    text-align: left;
-}
-.data.table.order td.col.price,
-.data.table.order td.col.subtotal {
-    text-align: left;
-}
-.data.table.order td {
-    padding: 16px 10px 10px;
-    vertical-align: top;
-}
-.data.table.order th {
-    text-align: left;
-    font-weight: 400;
-    font-size: 14px;
-    vertical-align: top;
-}
-.data.table.order tr:first-child th {
-    font-weight: 400;
-    font-size: 16px;
-}
-
-/* h4 */
-.data.table.order td h4 {
-    margin: 0;
-}
-
-/* .item.options */
-.data.table.order .item.options,
-.data.table.order .item-options {
-    margin: 5px 0;
-}
-.data.table.order .item.options dt,
-.data.table.order .item-options dt {
-    font-weight: 400;
-    display: inline;
-    margin-right: 10px;
-    float: left;
-    clear: left;
-}
-.data.table.order .item.options dt:after,
-.data.table.order .item-options dt:after {
-    content: ': ';
-}
-.data.table.order .item.options dd,
-.data.table.order .item-options dd {
-    font-weight: 200;
-    margin: 0 0 10px 10px;
-    padding: 0;
-}
-
-/* tfoot */
-.data.table.order tfoot tr:first-child td {
-    border-top: 3px solid #e5e5e5;
-    padding-top: 15px;
-}
-.data.table.order.tracking th,
-.data.table.order.tracking td {
-    padding: 0;
-}
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/css/source/clearless/arrows.less b/app/design/frontend/Magento/plushe/css/source/clearless/arrows.less
deleted file mode 100644
index 7a67f21bab2abe3c4f22554ad04bf8002b0e0737..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/clearless/arrows.less
+++ /dev/null
@@ -1,172 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-.arrow(@pos, @size, @bg-color) {
-    width: 0;
-    height: 0;
-    border: @size solid transparent;
-    ._abbor_el( @pos, @bg-color );
-}
-
-.arrowbox(@pos, @size, @bg-color, @offset:50%) {
-
-    @after-margin: @size * -1px;
-
-    position: relative;
-    background: @bg-color;
-
-    &:after,
-    &:before {
-        ._abpos(@pos);
-        border: solid transparent;
-        content: " ";
-        height: 0;
-        width: 0;
-        position: absolute;
-        pointer-events: none;
-    }
-
-    &:after {
-        border-color: transparent;
-        ._abbor_el(@pos, @bg-color);
-        border-width: @size;
-        ._abpos_el(@pos, @size, @offset);
-        ._abmar_el(@pos, @after-margin);
-    }
-
-}
-
-.arrowbox(@pos, @size, @bg-color, @border-width, @border-color, @offset:50%) {
-
-    @before-margin: (@size + round(@border-width * 1.41421356)) * -1px;
-
-    .arrowbox(@pos, @size, @bg-color, @offset);
-
-    border: @border-width solid @border-color;
-
-    &:before {
-        border-color: transparent;
-        ._abbor_el(@pos, @border-color);
-        border-width: @before-margin * -1;
-        ._abpos_el(@pos, @size, @offset);
-        ._abmar_el(@pos, @before-margin);
-    }
-
-}
-
-._abpos( @pos ) when ( @pos = left ) {
-    right: 100%;
-}
-
-._abpos( @pos ) when ( @pos = right ) {
-    left: 100%;
-}
-
-._abpos( @pos ) when ( @pos = up ) {
-    bottom: 100%;
-}
-
-._abpos( @pos ) when ( @pos = down ) {
-    top: 100%;
-}
-
-._abpos_el( @pos, @size, @offset ) when ( @offset = 0 ) and ( @pos = left ) {
-    top: @size;
-}
-
-._abpos_el( @pos, @size, @offset ) when ( @offset = 0 ) and ( @pos = right ) {
-    top: @size;
-}
-
-._abpos_el( @pos, @size, @offset ) when ( @offset = 0 ) and ( @pos = up ) {
-    left: @size;
-}
-
-._abpos_el( @pos, @size, @offset ) when ( @offset = 0 ) and ( @pos = down ) {
-    left: @size;
-}
-
-._abpos_el( @pos, @size, @offset ) when not ( @offset = 0 ) and not ( ispixel(@offset) ) and ( @pos = left ) {
-    top: @offset;
-}
-
-._abpos_el( @pos, @size, @offset ) when not ( @offset = 0 ) and not ( ispixel(@offset) ) and ( @pos = right ) {
-    top: @offset;
-}
-
-._abpos_el( @pos, @size, @offset ) when not ( @offset = 0 ) and not ( ispixel(@offset) ) and ( @pos = up ) {
-    left: @offset;
-}
-
-._abpos_el( @pos, @size, @offset ) when not ( @offset = 0 ) and not ( ispixel(@offset) ) and ( @pos = down ) {
-    left: @offset;
-}
-
-._abpos_el( @pos, @size, @offset ) when not ( @offset = 0 ) and ( ispixel(@offset) ) and ( @pos = left ) {
-    top: @offset + @size;
-}
-
-._abpos_el( @pos, @size, @offset ) when not ( @offset = 0 ) and ( ispixel(@offset) ) and ( @pos = right ) {
-    top: @offset + @size;
-}
-
-._abpos_el( @pos, @size, @offset ) when not ( @offset = 0 ) and ( ispixel(@offset) ) and ( @pos = up ) {
-    left: @offset + @size;
-}
-
-._abpos_el( @pos, @size, @offset ) when not ( @offset = 0 ) and ( ispixel(@offset) ) and ( @pos = down ) {
-    left: @offset + @size;
-}
-
-._abbor_el( @pos, @color ) when ( @pos = left ) {
-    border-right-color: @color;
-}
-
-._abbor_el( @pos, @color ) when ( @pos = right ) {
-    border-left-color: @color;
-}
-
-._abbor_el( @pos, @color ) when ( @pos = up ) {
-    border-bottom-color: @color;
-}
-
-._abbor_el( @pos, @color ) when ( @pos = down ) {
-    border-top-color: @color;
-}
-
-._abmar_el( @pos, @margin ) when ( @pos = left ) {
-    margin-top: @margin;
-}
-
-._abmar_el( @pos, @margin ) when ( @pos = right ) {
-    margin-top: @margin;
-}
-
-._abmar_el( @pos, @margin ) when ( @pos = up ) {
-    margin-left: @margin;
-}
-
-._abmar_el( @pos, @margin ) when ( @pos = down ) {
-    margin-left: @margin;
-}
diff --git a/app/design/frontend/Magento/plushe/css/source/clearless/grids.less b/app/design/frontend/Magento/plushe/css/source/clearless/grids.less
deleted file mode 100644
index bdef0f683b7e9f7559cf65e1b6e2a017226361cd..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/clearless/grids.less
+++ /dev/null
@@ -1,186 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-// ==============================================
-// Grid mixins
-// ==============================================
-
-// You shouldn't need to touch this! Internal use only.
-@column-width: 1;
-@total-columns: 1;
-@gutter-width: 1;
-@grid-width: (@column-width*@total-columns) + (@gutter-width*(@total-columns - 1));
-
-.column-wrapper() {
-    width: 100%;
-}
-
-.inline-column-wrapper() when not (@using-ieclasses) {
-    letter-spacing: -0.31em;
-    *letter-spacing: normal;
-    word-spacing: -0.43em;
-}
-
-.inline-column-wrapper() when (@using-ieclasses) {
-    letter-spacing: -0.31em;
-    word-spacing: -0.43em;
-    .ie7 & {
-        letter-spacing: normal;
-    }
-}
-
-.column() {
-    float: left;
-    .column-gutter();
-}
-
-.column( @span ) when (@span = false) {
-    float: left;
-}
-
-.column( @span, @total-columns:@total-columns, @end-column:false ) when (isnumber(@span)) and (isnumber(@total-columns)) and not (isnumber(@end-column)) {
-    @showgutter: false;
-    .column(@showgutter);
-    .span( @span, @total-columns );
-}
-
-.column( @span, @total-columns:@total-columns, @end-column:false ) when (isnumber(@span)) and (isnumber(@total-columns)) and (@end-column = true) {
-    @showgutter: false;
-    .column(@showgutter);
-    .span( @span, @total-columns );
-    .end-column();
-}
-
-.column( @span, @end-column ) when (isnumber(@span)) and not (isnumber(@end-column)) {
-    @showgutter: false;
-    .column(@showgutter);
-    .span( @span );
-}
-
-.column( @span, @end-column ) when (isnumber(@span)) and ( @end-column = true ) {
-    @showgutter: false;
-    .column(@showgutter);
-    .span( @span );
-    .end-column();
-}
-
-.inline-column() {
-    .inline-block();
-    vertical-align: top;
-    letter-spacing: normal;
-    word-spacing: normal;
-    .column-gutter();
-}
-
-.inline-column( @span ) when (@span = false) {
-    .inline-block();
-    vertical-align: top;
-    letter-spacing: normal;
-    word-spacing: normal;
-}
-
-.inline-column( @span, @total-columns:@total-columns, @end-column:false ) when (isnumber(@span)) and (isnumber(@total-columns)) {
-    @showgutter: false;
-    .inline-column(@showgutter);
-    .span( @span, @total-columns );
-}
-
-.inline-column( @span, @total-columns:@total-columns, @end-column:false ) when (isnumber(@span)) and (@end-column = true) {
-    @showgutter: false;
-    .inline-column(@showgutter);
-    .span( @span, @total-columns );
-    .inline-end-column();
-}
-
-.inline-column( @span, @end-column ) when not (isnumber(@end-column)) {
-    @showgutter: false;
-    .inline-column(@showgutter);
-    .span( @span );
-}
-
-.inline-column( @span, @end-column ) when (@end-column = true) {
-    @showgutter: false;
-    .inline-column(@showgutter);
-    .span( @span );
-    .inline-end-column();
-}
-
-.end-column() {
-    margin-right: 0;
-    float: right;
-}
-
-.inline-end-column() {
-    margin-right: 0;
-}
-
-.span( @span ) {
-    .column-width(@span, @total-columns);
-}
-
-.span( @span, @total-columns ) when (isnumber(@total-columns)) {
-    .column-width(@span, @total-columns);
-    .column-gutter(@total-columns);
-}
-
-.pre-pad( @span, @total-columns:@total-columns ) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)) / @grid-width);
-    padding-left: @calc-column-width;
-}
-
-.post-pad( @span, @total-columns:@total-columns ) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)) / @grid-width);
-    padding-right: @calc-column-width;
-}
-
-.pre-push( @span, @total-columns:@total-columns ) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)) / @grid-width);
-    margin-left: @calc-column-width;
-}
-
-.post-push( @span, @total-columns:@total-columns ) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)+@gutter-width) / @grid-width);
-    margin-right: @calc-column-width;
-}
-
-.post-push-end( @span, @total-columns:@total-columns ) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)) / @grid-width);
-    margin-right: @calc-column-width;
-}
-
-.column-width(@span, @total-columns:@total-columns) {
-    @calc-column-width: 100%*((((@gutter-width+@column-width)*@span)-@gutter-width) / @grid-width);
-    width: @calc-column-width;
-}
-
-.column-gutter(@total-columns:@total-columns, @end-column:false) when (@end-column) {
-    margin-right: 0;
-}
-
-.column-gutter(@total-columns:@total-columns, @end-column:false) when not (@end-column) {
-    @calc-gutter-width: 100%*(@gutter-width/@grid-width);
-    margin-right: @calc-gutter-width;
-}
-
-
diff --git a/app/design/frontend/Magento/plushe/css/source/clearless/helpers.less b/app/design/frontend/Magento/plushe/css/source/clearless/helpers.less
deleted file mode 100644
index 8014159a6722b6d2553eb7547c8ffb71922d9602..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/clearless/helpers.less
+++ /dev/null
@@ -1,248 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-// ==============================================
-// Misc helpers and shortcuts
-// ==============================================
-
-// Shortcuts --------------------------------
-
-.border-radius(@radius:5px) {
-    -webkit-border-radius: @arguments;
-    -moz-border-radius: @arguments;
-    border-radius: @arguments;
-}
-
-.box-sizing(@type: border-box) {
-    -moz-box-sizing: @type;
-    -webkit-box-sizing: @type;
-    -ms-box-sizing: @type;
-    box-sizing: @type;
-}
-
-.box-shadow(@shadow: 1px 1px 2px rgba(0,0,0,0.25)) {
-    -webkit-box-shadow: @shadow;
-    -moz-box-shadow: @shadow;
-    box-shadow: @shadow;
-}
-
-.filter(@filter: grayscale(100%)) {
-    -webkit-filter: @filter;
-    -moz-filter: @filter;
-    -ms-filter: @filter;
-    -o-filter: @filter;
-    filter: @filter;
-}
-
-.transition(@transition) {
-    -webkit-transition: @transition;
-    -moz-transition: @transition;
-    transition: @transition;
-}
-
-.rotate(@rotation) {
-    -webkit-transform: rotate(@rotation);
-    -moz-transform: rotate(@rotation);
-    -o-transform: rotate(@rotation);
-    transform: rotate(@rotation);
-}
-
-.placeholder(@color: #DDD) {
-    :-moz-placeholder {
-        color: @color;
-    }
-    ::-webkit-input-placeholder {
-        color: @color;
-    }
-}
-
-#gradient {
-    .horizontal (@start-color, @end-color) when not (@disable-filters) {
-        background-color: @end-color;
-        background-repeat: repeat-x;
-        background-image: -khtml-gradient(linear, left top, right top, from(@start-color), to(@end-color)); /* Konqueror */
-        background-image: -moz-linear-gradient(left, @start-color, @end-color); /* FF 3.6+ */
-        background-image: -ms-linear-gradient(left, @start-color, @end-color); /* IE10 */
-        background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, @start-color), color-stop(100%, @end-color)); /* Safari 4+, Chrome 2+ */
-        background-image: -webkit-linear-gradient(left, @start-color, @end-color); /* Safari 5.1+, Chrome 10+ */
-        background-image: -o-linear-gradient(left, @start-color, @end-color); /* Opera 11.10 */
-        background-image: -ms-linear-gradient(left, @start-color 0%, @end-color 100%); /* IE10+ */
-        background-image: linear-gradient(left, @start-color, @end-color); /* the standard */
-        filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",@start-color,@end-color)); /* IE6 & IE7 */
-        -ms-filter: %("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",@start-color,@end-color); /* IE8+ */
-    }
-    .horizontal (@start-color, @end-color) when (@disable-filters) {
-        background-color: @end-color;
-        background-repeat: repeat-x;
-        background-image: -khtml-gradient(linear, left top, right top, from(@start-color), to(@end-color)); /* Konqueror */
-        background-image: -moz-linear-gradient(left, @start-color, @end-color); /* FF 3.6+ */
-        background-image: -ms-linear-gradient(left, @start-color, @end-color); /* IE10 */
-        background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, @start-color), color-stop(100%, @end-color)); /* Safari 4+, Chrome 2+ */
-        background-image: -webkit-linear-gradient(left, @start-color, @end-color); /* Safari 5.1+, Chrome 10+ */
-        background-image: -o-linear-gradient(left, @start-color, @end-color); /* Opera 11.10 */
-        background-image: -ms-linear-gradient(left, @start-color 0%, @end-color 100%); /* IE10+ */
-        background-image: linear-gradient(left, @start-color, @end-color); /* the standard */
-    }
-    .vertical (@start-color, @end-color) when (@disable-filters) {
-        background-color: @end-color;
-        background-repeat: repeat-x;
-        background-image: -khtml-gradient(linear, left top, left bottom, from(@start-color), to(@end-color)); /* Konqueror */
-        background-image: -moz-linear-gradient(@start-color, @end-color); /* FF 3.6+ */
-        background-image: -ms-linear-gradient(@start-color, @end-color); /* IE10 */
-        background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, @start-color), color-stop(100%, @end-color)); /* Safari 4+, Chrome 2+ */
-        background-image: -webkit-linear-gradient(@start-color, @end-color); /* Safari 5.1+, Chrome 10+ */
-        background-image: -o-linear-gradient(@start-color, @end-color); /* Opera 11.10 */
-        background-image: -ms-linear-gradient(top, @start-color 0%, @end-color 100%); /* IE10+ */
-        background-image: linear-gradient(@start-color, @end-color); /* the standard */
-    }
-    .vertical (@start-color, @end-color) when not (@disable-filters) {
-        background-color: @end-color;
-        background-repeat: repeat-x;
-        background-image: -khtml-gradient(linear, left top, left bottom, from(@start-color), to(@end-color)); /* Konqueror */
-        background-image: -moz-linear-gradient(@start-color, @end-color); /* FF 3.6+ */
-        background-image: -ms-linear-gradient(@start-color, @end-color); /* IE10 */
-        background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, @start-color), color-stop(100%, @end-color)); /* Safari 4+, Chrome 2+ */
-        background-image: -webkit-linear-gradient(@start-color, @end-color); /* Safari 5.1+, Chrome 10+ */
-        background-image: -o-linear-gradient(@start-color, @end-color); /* Opera 11.10 */
-        background-image: -ms-linear-gradient(top, @start-color 0%, @end-color 100%); /* IE10+ */
-        background-image: linear-gradient(@start-color, @end-color); /* the standard */
-        filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@start-color,@end-color)); /* IE6 & IE7 */
-        -ms-filter: %("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@start-color,@end-color); /* IE8+ */
-    }
-}
-
-// Helpers --------------------------------
-
-.clearfix() when not (@using-ieclasses) {
-    &:before,
-    &:after {
-        content: "";
-        display: table;
-    }
-    &:after {
-        clear: both;
-    }
-    *zoom: 1;
-}
-
-.clearfix() when (@using-ieclasses) {
-    &:before,
-    &:after {
-        content: "";
-        display: table;
-    }
-    &:after {
-        clear: both;
-    }
-    .ie6 &, .ie7 & {
-        zoom: 1;
-    }
-}
-
-.inline-block() when (@using-ieclasses) {
-    display: inline-block;
-    .ie7 & {
-        display: inline;
-        zoom: 1;
-    }
-}
-
-.inline-block() when not (@using-ieclasses) {
-    display: inline-block;
-    *display: inline;
-    *zoom: 1;
-}
-
-.ir() {
-    border: 0;
-    font: 0/0 a;
-    text-shadow: none;
-    color: transparent;
-    background-color: transparent;
-}
-
-.hidden() {
-    display: none !important;
-    visibility: hidden;
-}
-
-.visually-hidden() {
-    border: 0;
-    clip: rect(0 0 0 0);
-    height: 1px;
-    margin: -1px;
-    overflow: hidden;
-    padding: 0;
-    position: absolute;
-    width: 1px;
-    &.focusable:active,
-    &.focusable:focus {
-        clip: auto;
-        height: auto;
-        margin: 0;
-        overflow: visible;
-        position: static;
-        width: auto;
-    }
-}
-
-.size(@thesize) {
-    width: @thesize;
-    height: @thesize;
-}
-
-.size(@width, @height) {
-    width: @width;
-    height: @height;
-}
-
-// System --------------------------------
-
-.nudge-l( @pos ) when ( @pos = 0 ) {
-}
-
-.nudge-l( @pos ) when not ( @pos = 0 ) {
-    left: @pos;
-}
-
-.nudge-r( @pos ) when ( @pos = 0 ) {
-}
-
-.nudge-r( @pos ) when not ( @pos = 0 ) {
-    right: @pos;
-}
-
-.nudge-t( @pos ) when ( @pos = 0 ) {
-}
-
-.nudge-t( @pos ) when not ( @pos = 0 ) {
-    top: @pos;
-}
-
-.nudge-b( @pos ) when ( @pos = 0 ) {
-}
-
-.nudge-b( @pos ) when not ( @pos = 0 ) {
-    bottom: @pos;
-}
diff --git a/app/design/frontend/Magento/plushe/css/source/clearless/icons.less b/app/design/frontend/Magento/plushe/css/source/clearless/icons.less
deleted file mode 100644
index 8752eec300f5fa7a279d405bec5183df6aa6e895..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/clearless/icons.less
+++ /dev/null
@@ -1,327 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-// ==============================================
-// Generated content icon helpers
-// ----------------------------------------------
-// These can only be used on block or inline-block elements.
-// ==============================================
-
-// Non-sprited icons --------------------------------
-
-.prepend-icon( @icon-image, @width, @height, @nudge-left:0, @nudge-top:0, @pad:10px ) when (@using-modernizr) {
-    .generatedcontent & {
-        position: relative;
-        padding-left: @width + @pad;
-    }
-    .generatedcontent &:before {
-        ._generated-icon( @width, @height, @icon-image );
-        top: @nudge-top;
-        left: @nudge-left;
-    }
-}
-
-.prepend-icon( @icon-image, @width, @height, @nudge-left:0, @nudge-top:0, @pad:10px ) when not (@using-modernizr) {
-    position: relative;
-    padding-left: @width + @pad;
-    &:before {
-        ._generated-icon( @width, @height, @icon-image );
-        top: @nudge-top;
-        left: @nudge-left;
-    }
-}
-
-.append-icon( @icon-image, @width, @height, @nudge-right:0, @nudge-top:0, @pad:10px ) when (@using-modernizr) {
-    .generatedcontent & {
-        position: relative;
-        padding-right: @width + @pad;
-    }
-    .generatedcontent &:after {
-        ._generated-icon( @width, @height, @icon-image );
-        top: @nudge-top;
-        right: @nudge-right;
-    }
-}
-
-.append-icon( @icon-image, @width, @height, @nudge-right:0, @nudge-top:0, @pad:10px ) when not (@using-modernizr) {
-    position: relative;
-    padding-right: @width + @pad;
-    .generatedcontent &:after {
-        ._generated-icon( @width, @height, @icon-image );
-        top: @nudge-top;
-        right: @nudge-right;
-    }
-}
-
-// Sprited icons --------------------------------
-
-.prepend-sprite-icon(@x, @y, @width, @height, @nudge-left:0, @nudge-top:0, @pad:10px, @sprite-image:@sprite-image, @sprite-grid:@sprite-grid) when (@using-modernizr) {
-    .generatedcontent & {
-        position: relative;
-        padding-left: @width + @pad;
-    }
-    .generatedcontent &:before {
-        ._generated-sprite-icon( @x, @y, @width, @height, @sprite-image, @sprite-grid );
-        top: @nudge-top;
-        left: @nudge-left;
-    }
-}
-
-.prepend-sprite-icon(@x, @y, @width, @height, @nudge-left:0, @nudge-top:0, @pad:10px, @sprite-image:@sprite-image, @sprite-grid:@sprite-grid) when not (@using-modernizr) {
-    position: relative;
-    padding-left: @width + @pad;
-    &:before {
-        ._generated-sprite-icon( @x, @y, @width, @height, @sprite-image, @sprite-grid );
-        top: @nudge-top;
-        left: @nudge-left;
-    }
-}
-
-.append-sprite-icon(@x, @y, @width, @height, @nudge-right:0, @nudge-top:0, @pad:10px, @sprite-image:@sprite-image, @sprite-grid:@sprite-grid) when (@using-modernizr) {
-    .generatedcontent & {
-        padding-right: @width + @pad;
-        position: relative;
-    }
-    .generatedcontent &:after {
-        ._generated-sprite-icon( @x, @y, @width, @height, @sprite-image, @sprite-grid );
-        top: @nudge-top;
-        right: @nudge-right;
-    }
-}
-
-.append-sprite-icon(@x, @y, @width, @height, @nudge-right:0, @nudge-top:0, @pad:10px, @sprite-image:@sprite-image, @sprite-grid:@sprite-grid) when not (@using-modernizr) {
-    position: relative;
-    padding-right: @width + @pad;
-    &:after {
-        ._generated-sprite-icon( @x, @y, @width, @height, @sprite-image, @sprite-grid );
-        top: @nudge-top;
-        right: @nudge-right;
-    }
-}
-
-.prepend-sprite-icon-pos(@x, @y, @nudge-left:0, @nudge-top:0, @sprite-grid:@sprite-grid) when (@using-modernizr) {
-    .generatedcontent &:before {
-        .sprite-pos(@x, @y, @sprite-grid);
-        .nudge-l(@nudge-left);
-        .nudge-t(@nudge-top);
-    }
-}
-
-.prepend-sprite-icon-pos(@x, @y, @nudge-left:0, @nudge-top:0, @sprite-grid:@sprite-grid) when not (@using-modernizr) {
-    &:before {
-        .sprite-pos(@x, @y, @sprite-grid);
-        .nudge-l(@nudge-left);
-        .nudge-t(@nudge-top);
-    }
-}
-
-.append-sprite-icon-pos(@x, @y, @nudge-right:0, @nudge-top:0, @sprite-grid:@sprite-grid) when (@using-modernizr) {
-    .generatedcontent &:after {
-        .sprite-pos(@x, @y, @sprite-grid);
-        .nudge-r(@nudge-right);
-        .nudge-t(@nudge-top);
-    }
-}
-
-.append-sprite-icon-pos(@x, @y, @nudge-right:0, @nudge-top:0, @sprite-grid:@sprite-grid) when not (@using-modernizr) {
-    &:after {
-        .sprite-pos(@x, @y, @sprite-grid);
-        .nudge-r(@nudge-right);
-        .nudge-t(@nudge-top);
-    }
-}
-
-// ---- Partials -----------------------
-
-.prepend-icon-setup(@width:0, @height:0, @nudge-left:0, @nudge-top:0, @pad:10px) when (@using-modernizr) {
-    .generatedcontent & {
-        position: relative;
-        ._pad-left(@width, @pad);
-    }
-    .generatedcontent &:before {
-        position: absolute;
-        display: block;
-        content: ' ';
-        top: 0;
-        left: 0;
-        ._size(@width, @height);
-    }
-}
-
-.prepend-icon-setup(@width:0, @height:0, @nudge-left:0, @nudge-top:0, @pad:10px) when not (@using-modernizr) {
-    position: relative;
-    ._pad-left(@width, @pad);
-    &:before {
-        position: absolute;
-        display: block;
-        content: ' ';
-        top: 0;
-        left: 0;
-        ._size(@width, @height);
-    }
-}
-
-.append-icon-setup(@width:0, @height:0, @nudge-left:0, @nudge-top:0, @pad:10px) when (@using-modernizr) {
-    .generatedcontent & {
-        position: relative;
-        ._pad-right(@width, @pad);
-    }
-    .generatedcontent &:after {
-        position: absolute;
-        display: block;
-        content: ' ';
-        top: 0;
-        right: 0;
-        ._size(@width, @height);
-    }
-}
-
-.append-icon-setup(@width:0, @height:0, @nudge-left:0, @nudge-top:0, @pad:10px) when not (@using-modernizr) {
-    position: relative;
-    ._pad-right(@width, @pad);
-    &:after {
-        position: absolute;
-        display: block;
-        content: ' ';
-        top: 0;
-        right: 0;
-        ._size(@width, @height);
-    }
-}
-
-.prepend-icon-image(@icon-image, @width:0, @height:0, @nudge-left:0, @nudge-top:0, @pad:10px) when (@using-modernizr) {
-    ._gc-pad-left(@width, @pad);
-    .generatedcontent &:before {
-        background: url(@icon-image) no-repeat 0 0;
-        ._size(@width, @height);
-        .nudge-l(@nudge-left);
-        .nudge-t(@nudge-top);
-    }
-}
-
-.prepend-icon-image(@icon-image, @width:0, @height:0, @nudge-left:0, @nudge-top:0, @pad:10px) when not (@using-modernizr) {
-    ._pad-left(@width, @pad);
-    &:before {
-        background: url(@icon-image) no-repeat 0 0;
-        ._size(@width, @height);
-        .nudge-l(@nudge-left);
-        .nudge-t(@nudge-top);
-    }
-}
-
-.append-icon-image(@icon-image, @width:0, @height:0, @nudge-right:0, @nudge-top:0, @pad:10px) when (@using-modernizr) {
-    ._gc-pad-right(@width, @pad);
-    .generatedcontent &:after {
-        background: url(@icon-image) no-repeat 0 0;
-        ._size(@width, @height);
-        .nudge-r(@nudge-right);
-        .nudge-t(@nudge-top);
-    }
-}
-
-.append-icon-image(@icon-image, @width:0, @height:0, @nudge-right:0, @nudge-top:0, @pad:10px) when not (@using-modernizr) {
-    ._pad-right(@width, @pad);
-    &:after {
-        background: url(@icon-image) no-repeat 0 0;
-        ._size(@width, @height);
-        .nudge-r(@nudge-right);
-        .nudge-t(@nudge-top);
-    }
-}
-
-// ---- internal use mixins -----------------------
-
-._generated-icon(@width, @height, @icon-image) {
-    position: absolute;
-    display: block;
-    content: ' ';
-    background: url(@icon-image) no-repeat 0 0;
-    .size(@width, @height);
-}
-
-._generated-sprite-icon(@x, @y, @width, @height, @sprite-image:@sprite-image, @sprite-grid:@sprite-grid) {
-    position: absolute;
-    display: block;
-    content: ' ';
-    .sprite-sized(@x, @y, @width, @height, @sprite-image, @sprite-grid);
-}
-
-._pad-left(@width, @pad) when (@width = 0) {
-}
-
-._pad-left(@width, @pad) when not (@width = 0) {
-    padding-left: @width + @pad;
-}
-
-._pad-right(@width, @pad) when (@width = 0) {
-}
-
-._pad-right(@width, @pad) when not (@width = 0) {
-    padding-right: @width + @pad;
-}
-
-._gc-pad-left(@width, @pad) when (@width = 0) {
-}
-
-._gc-pad-right(@width, @pad) when (@width = 0) {
-}
-
-._gc-pad-left(@width, @pad) when not (@width = 0) and (@using-modernizr) {
-    .generatedcontent & {
-        ._pad-left(@width, @pad);
-    }
-}
-
-._gc-pad-left(@width, @pad) when not (@width = 0) and not (@using-modernizr) {
-    ._pad-left(@width, @pad);
-}
-
-._gc-pad-right(@width, @pad) when not (@width = 0) {
-    .generatedcontent & {
-        ._pad-right(@width, @pad);
-    }
-}
-
-._gc-pad-right(@width, @pad) when not (@width = 0) and not (@using-modernizr) {
-    ._pad-right(@width, @pad);
-}
-
-._size(@width, @height) when (@width = 0) and (@height = 0) {
-}
-
-._size(@width, @height) when (@width = 0) and not (@height = 0) {
-    height: @height;
-}
-
-._size(@width, @height) when not (@width = 0) and (@height = 0) {
-    width: @width;
-}
-
-._size(@width, @height) when not (@width = 0) and not (@height = 0) {
-    width: @width;
-    height: @height;
-}
-
-
-
diff --git a/app/design/frontend/Magento/plushe/css/source/clearless/resets.less b/app/design/frontend/Magento/plushe/css/source/clearless/resets.less
deleted file mode 100644
index f48ac3b70fc405afb6b0daee6694b8cee0cd4ab5..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/clearless/resets.less
+++ /dev/null
@@ -1,307 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-.normalize() {
-
-    /* normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */
-
-    article,
-    aside,
-    details,
-    figcaption,
-    figure,
-    footer,
-    header,
-    hgroup,
-    nav,
-    section,
-    summary {
-        display: block;
-    }
-    audio,
-    canvas,
-    video {
-        display: inline-block;
-        *display: inline;
-        *zoom: 1;
-    }
-    audio:not([controls]) {
-        display: none;
-        height: 0;
-    }
-    [hidden] {
-        display: none;
-    }
-    html {
-        font-size: 100%;
-        -webkit-text-size-adjust: 100%;
-        -ms-text-size-adjust: 100%;
-    }
-    html,
-    button,
-    input,
-    select,
-    textarea {
-        font-family: sans-serif;
-    }
-    body {
-        margin: 0;
-    }
-    a:focus {
-        outline: thin dotted;
-    }
-    a:hover,
-    a:active {
-        outline: 0;
-    }
-    h1 {
-        font-size: 2em;
-        margin: 0.67em 0;
-    }
-    h2 {
-        font-size: 1.5em;
-        margin: 0.83em 0;
-    }
-    h3 {
-        font-size: 1.17em;
-        margin: 1em 0;
-    }
-    h4 {
-        font-size: 1em;
-        margin: 1.33em 0;
-    }
-    h5 {
-        font-size: 0.83em;
-        margin: 1.67em 0;
-    }
-    h6 {
-        font-size: 0.75em;
-        margin: 2.33em 0;
-    }
-    abbr[title] {
-        border-bottom: 1px dotted;
-    }
-    b,
-    strong {
-        font-weight: bold;
-    }
-    blockquote {
-        margin: 1em 40px;
-    }
-    dfn {
-        font-style: italic;
-    }
-    mark {
-        background: #ff0;
-        color: #000;
-    }
-    p,
-    pre {
-        margin: 1em 0;
-    }
-    pre,
-    code,
-    kbd,
-    samp {
-        font-family: monospace, serif;
-        _font-family: 'courier new', monospace;
-        font-size: 1em;
-    }
-    pre {
-        white-space: pre;
-        white-space: pre-wrap;
-        word-wrap: break-word;
-    }
-    q {
-        quotes: none;
-    }
-    q:before,
-    q:after {
-        content: '';
-        content: none;
-    }
-    small {
-        font-size: 75%;
-    }
-    sub,
-    sup {
-        font-size: 75%;
-        line-height: 0;
-        position: relative;
-        vertical-align: baseline;
-    }
-    sup {
-        top: -0.5em;
-    }
-    sub {
-        bottom: -0.25em;
-    }
-    dl,
-    menu,
-    ol,
-    ul {
-        margin: 1em 0;
-    }
-    dd {
-        margin: 0 0 0 40px;
-    }
-    menu,
-    ol,
-    ul {
-        padding: 0 0 0 40px;
-    }
-    nav ul,
-    nav ol {
-        list-style: none;
-        list-style-image: none;
-    }
-    img {
-        border: 0;
-        -ms-interpolation-mode: bicubic;
-    }
-    svg:not(:root) {
-        overflow: hidden;
-    }
-    figure {
-        margin: 0;
-    }
-    form {
-        margin: 0;
-    }
-    fieldset {
-        border: 1px solid #c0c0c0;
-        margin: 0 2px;
-        padding: 0.35em 0.625em 0.75em;
-    }
-    legend {
-        border: 0;
-        padding: 0;
-        white-space: normal;
-        *margin-left: -7px;
-    }
-    button,
-    input,
-    select,
-    textarea {
-        font-size: 100%;
-        margin: 0;
-        vertical-align: baseline;
-        *vertical-align: middle;
-    }
-    button,
-    input {
-        line-height: normal;
-    }
-    button,
-    input[type="button"],
-    input[type="reset"],
-    input[type="submit"] {
-        cursor: pointer;
-        -webkit-appearance: button;
-        *overflow: visible;
-    }
-    button[disabled],
-    input[disabled] {
-        cursor: default;
-    }
-    input[type="checkbox"],
-    input[type="radio"] {
-        box-sizing: border-box;
-        padding: 0;
-        *height: 13px;
-        *width: 13px;
-    }
-    input[type="search"] {
-        -webkit-appearance: textfield;
-        -moz-box-sizing: content-box;
-        -webkit-box-sizing: content-box;
-        box-sizing: content-box;
-    }
-    input[type="search"]::-webkit-search-decoration,
-    input[type="search"]::-webkit-search-cancel-button {
-        -webkit-appearance: none;
-    }
-    button::-moz-focus-inner,
-    input::-moz-focus-inner {
-        border: 0;
-        padding: 0;
-    }
-    textarea {
-        overflow: auto;
-        vertical-align: top;
-    }
-    table {
-        border-collapse: collapse;
-        border-spacing: 0;
-    }
-}
-
-.reset() {
-
-    /* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */
-
-    html, body, div, span, applet, object, iframe,
-    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-    a, abbr, acronym, address, big, cite, code,
-    del, dfn, em, img, ins, kbd, q, s, samp,
-    small, strike, strong, sub, sup, tt, var,
-    b, u, i, center,
-    dl, dt, dd, ol, ul, li,
-    fieldset, form, label, legend,
-    table, caption, tbody, tfoot, thead, tr, th, td,
-    article, aside, canvas, details, embed,
-    figure, figcaption, footer, header, hgroup,
-    menu, nav, output, ruby, section, summary,
-    time, mark, audio, video {
-        margin: 0;
-        padding: 0;
-        border: 0;
-        font-size: 100%;
-        font: inherit;
-        vertical-align: baseline;
-    }
-    article, aside, details, figcaption, figure,
-    footer, header, hgroup, menu, nav, section {
-        display: block;
-    }
-    body {
-        line-height: 1;
-    }
-    ol, ul {
-        list-style: none;
-    }
-    blockquote, q {
-        quotes: none;
-    }
-    blockquote:before, blockquote:after,
-    q:before, q:after {
-        content: '';
-        content: none;
-    }
-    table {
-        border-collapse: collapse;
-        border-spacing: 0;
-    }
-
-}
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/css/source/clearless/settings.less b/app/design/frontend/Magento/plushe/css/source/clearless/settings.less
deleted file mode 100644
index 992b3e18fca6b8106d873943291add9f301d370a..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/clearless/settings.less
+++ /dev/null
@@ -1,50 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-// ==============================================
-// ClearLess default settings
-// ----------------------------------------------
-// Override on a per-project basis as required. 
-// ==============================================
-
-// General --------------------------------
-
-@using-ieclasses: true; // whether or not the markup has html5-boilerplate style IE classes in it or not
-@using-modernizr: false; // whether or not modernizer feature-detection classes are being used
-@disable-filters: true; // whether or not to disable MS-specific 'filter' properties (can make IE slow!)
-
-// Typography --------------------------------
-
-@base-font-size: 16; // base pixel font size. Used as a default for px -> (r)em conversions
-
-// Sprites --------------------------------
-
-@sprite-image: '/example.png';
-@sprite-grid: 50px;
-
-// Grid --------------------------------
-
-@total-columns: 12;
-@column-width: 60px;
-@gutter-width: 20px;
diff --git a/app/design/frontend/Magento/plushe/css/source/clearless/sprites.less b/app/design/frontend/Magento/plushe/css/source/clearless/sprites.less
deleted file mode 100644
index ad52dd959c56b008b55b7aa5259fd0f85a2e0fa7..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/clearless/sprites.less
+++ /dev/null
@@ -1,75 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-// ==============================================
-// Sprite helpers
-// ==============================================
-
-.sprite(@x, @y, @sprite-image:@sprite-image, @sprite-grid:@sprite-grid) {
-    .sprite-image(@sprite-image);
-    .sprite-pos(@x, @y, @sprite-grid);
-}
-
-.sprite-sized(@x, @y, @size, @sprite-image:@sprite-image, @sprite-grid:@sprite-grid) when not (isnumber(@sprite-image)) {
-    .sprite(@x, @y, @sprite-image, @sprite-grid);
-    .size(@size);
-}
-
-.sprite-sized(@x, @y, @width, @height, @sprite-image:@sprite-image, @sprite-grid:@sprite-grid) when (isnumber(@height)) {
-    .sprite(@x, @y, @sprite-image, @sprite-grid);
-    .size(@width,@height);
-}
-
-.sprite-ir(@x, @y, @size, @sprite-image:@sprite-image, @sprite-grid:@sprite-grid) when not (isnumber(@sprite-image)) {
-    .ir();
-    .sprite(@x, @y, @sprite-image, @sprite-grid);
-    .size(@size);
-}
-
-.sprite-ir(@x, @y, @width, @height, @sprite-image:@sprite-image, @sprite-grid:@sprite-grid) when (isnumber(@height)) {
-    .ir();
-    .sprite(@x, @y, @sprite-image, @sprite-grid);
-    .size(@width,@height);
-}
-
-.sprite-image(@sprite-image:@sprite-image) {
-    background-image: url(@sprite-image);
-    background-repeat: no-repeat;
-}
-
-.sprite-pos(@x, @y, @sprite-grid:@sprite-grid) {
-    background-position: -(@x*@sprite-grid*1px)  -(@y*@sprite-grid*1px);
-}
-
-.sprite-pos-sized(@x, @y, @size, @sprite-grid:@sprite-grid) when not (isnumber(@sprite-image)) {
-    .sprite-pos(@x, @y, @sprite-grid);
-    .size(@size);
-}
-
-.sprite-pos-sized(@x, @y, @width, @height, @sprite-grid:@sprite-grid) when (isnumber(@height)) {
-    .sprite-pos(@x, @y, @sprite-grid);
-    .size(@width,@height);
-}
-
-
diff --git a/app/design/frontend/Magento/plushe/css/source/clearless/typography.less b/app/design/frontend/Magento/plushe/css/source/clearless/typography.less
deleted file mode 100644
index 261ae7900724fa13f21ad0edc53c41a5fcda120b..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/clearless/typography.less
+++ /dev/null
@@ -1,66 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-// ==============================================
-// Typography related mixins
-// ==============================================
-
-.font-size-rems(@px-size) {
-    @rem-size: @px-size / @base-font-size;
-    font-size: ~"@{px-size}px";
-    font-size: ~"@{rem-size}rem";
-}
-
-.font-size-ems(@target-px-size, @context-px-size:@base-font-size) {
-    font-size: (@target-px-size / @context-px-size) * 1em;
-}
-
-.font-face( @family-name, @font-path, @font-weight:normal, @font-style:normal, @include-svg:false ) when not (@include-svg) {
-    @font-face {
-        font-family: @family-name;
-        src: url('@{font-path}.eot');
-        src: url('@{font-path}.eot?#iefix') format('embedded-opentype'), url('@{font-path}.woff') format('woff'), url('@{font-path}.ttf') format('truetype');
-        font-weight: @font-weight;
-        font-style: @font-style;
-    }
-}
-
-.font-face( @family-name, @font-path, @font-weight:normal, @font-style:normal, @include-svg:false ) when (@include-svg) {
-    @font-face {
-        font-family: @family-name;
-        src: url('@{font-path}.eot');
-        src: url('@{font-path}.eot?#iefix') format('embedded-opentype'), url('@{font-path}.woff') format('woff'), url('@{font-path}.ttf') format('truetype'), url('@{font-path}.svg#@{family-name}') format('svg');
-        font-weight: @font-weight;
-        font-style: @font-style;
-    }
-}
-
-.wrap-words() {
-    -ms-word-break: break-all;
-    word-break: break-all;
-    word-break: break-word;
-    -webkit-hyphens: auto;
-    -moz-hyphens: auto;
-    hyphens: auto;
-}
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/css/source/lib/buttons.less b/app/design/frontend/Magento/plushe/css/source/lib/buttons.less
deleted file mode 100644
index 488d3a1cecc03ce44d9dcf9855351c21b64d7f11..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/lib/buttons.less
+++ /dev/null
@@ -1,136 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-//  # Primary buttons
-//
-//  Buttons that performs primary action ([read design and usability article](http://linktousabilityarticle.com/))
-//
-//  ```html
-//  <p>Some text here</p>
-//  <button class="action myPrimary" type="button"><span>Primary action</span></button>
-//  <button class="action myPrimary :hover" type="button"><span>Primary hover</span></button>
-//  <button class="action myPrimary :active" type="button"><span>Primary active</span></button>
-//  ```
-//
-
-.action.myPrimary {
-    &:extend(.primary.action all);
-}
-
-.primary.action {
-    &:extend(.button.action all);
-    background-color: @primaryActionBg;
-    color: @primaryActionColor;
-    &:focus,
-    &:active,
-    &:hover {
-        background-color: @primaryActionBgH;
-    }
-}
-
-//  # Secondary buttons
-//
-//  Buttons that performs secondary action ([read design and usability article](http://linktousabilityarticle.com/))
-//
-//  ```html
-//  <button class="action mySecondary" type="button"><span>Secondary action</span></button>
-//  <button class="action mySecondary :hover" type="button"><span>Secondary hover</span></button>
-//  <button class="action mySecondary :active" type="button"><span>Secondary active</span></button>
-//  ```
-//
-
-.action.mySecondary {
-    &:extend(.secondary.action all);
-}
-
-.secondary.action {
-    &:extend(.button.action all);
-    background-color: @secondaryActionBg;
-    color: @secondaryActionColor;
-    &:focus,
-    &:active,
-    &:hover {
-        background-color: @secondaryActionBgH;
-    }
-}
-
-//  # Buttons displayed as links
-//  Buttons that are displayed as links
-//
-//  ```html
-//  <button class="action myLink" type="button"><span>Button as a link</span></button>
-//  <button class="action myLink :hover" type="button"><span>Button as a link hover</span></button>
-//  <button class="action myLink :active" type="button"><span>Button as a link active</span></button>
-//  ```
-//
-
-.action.myLink {
-    &:extend(.button.link all);
-}
-
-.button.link {
-    background: none;
-    border: 0;
-    display: inline;
-    color: @link;
-    margin: 0;
-    padding: 0;
-    text-decoration: underline;
-    &:focus,
-    &:active,
-    &:hover {
-        color: @linkHover;
-        text-decoration: none;
-    }
-}
-
-// # Initial styling for button
-
-.button.action {
-    border: none;
-    border-radius: 0;
-    font: @actionFont;
-    text-transform: uppercase;
-    margin: 0;
-    padding: 9px 11px 9px;
-    box-shadow: none;
-    text-shadow: none;
-    outline: none;
-    text-decoration: none;
-}
-
-// Buttons Initial Variables
-
-//@primaryActionBg:;
-//@primaryActionBgH:;
-//@primaryActionColor:;
-//@secondaryActionBg:;
-//@secondaryActionBgH:;
-//@secondaryActionColor:;
-//@actionFont:;
-
-.action + .action {
-    margin-left: 5px;
-}
diff --git a/app/design/frontend/Magento/plushe/css/source/lib/forms.less b/app/design/frontend/Magento/plushe/css/source/lib/forms.less
deleted file mode 100644
index 9a5e8e71fd208a4d3c80a6bc1e87b74d9a6bfccb..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/lib/forms.less
+++ /dev/null
@@ -1,817 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-.hasRequired {
-    &:after {
-        content: attr(data-hasrequired);
-        display: block;
-        font-size: @baseFontSize;
-        margin: 10px 0 0;
-        color: @requiredField;
-        letter-spacing: normal;
-        word-spacing: normal;
-    }
-}
-
-.load.indicator {
-    display: inline-block;
-    margin: 20px auto;
-    padding: 8px;
-    vertical-align: middle;
-    span {
-        display: block;
-        line-height: 16px;
-        &:before {
-            content: '';
-            margin-right: 5px;
-            display: inline-block;
-            width: 16px;
-            height: 16px;
-            background: url("@{baseDir}/images/loader.gif") no-repeat 0 0;
-            background-color: @secondary1;
-            vertical-align: top;
-        }
-    }
-}
-
-// #Forms
-//
-//  ```html
-//    <form class="form">
-//        <fieldset class="fieldset">
-//            <legend class="legend"><span>Legend</span></legend>
-//            <br>
-//            <div class="field text">
-//                <label for="text" class="label"><span>Text field</span></label>
-//                <div class="control">
-//                    <input type="text" class="input-text" value="" name="text">
-//                </div>
-//            </div>
-//
-//            <div class="field search">
-//                <label for="search" class="label"><span>Search field</span></label>
-//                <div class="control">
-//                    <input type="search" class="input-text" value="" name="search">
-//                </div>
-//            </div>
-//
-//            <div class="field tel">
-//                <label for="tel" class="label"><span>Tel field</span></label>
-//                <div class="control">
-//                    <input type="tel" class="input-text" value="" name="tel">
-//                </div>
-//            </div>
-//
-//            <div class="field url">
-//                <label for="url" class="label"><span>Url field</span></label>
-//                <div class="control">
-//                    <input type="url" class="input-text" value="" name="url">
-//                </div>
-//            </div>
-//
-//            <div class="field email">
-//                <label for="email" class="label"><span>Email field</span></label>
-//                <div class="control">
-//                    <input type="email" class="input-text" value="" name="email">
-//                </div>
-//            </div>
-//
-//            <div class="field datetime">
-//                <label for="datetime" class="label"><span>Datetime field</span></label>
-//                <div class="control">
-//                    <input type="datetime" class="input-text" value="" name="datetime">
-//                </div>
-//            </div>
-//
-//            <div class="field password">
-//                <label for="password" class="label"><span>Password field</span></label>
-//                <div class="control">
-//                    <input type="password" class="input-text" value="" name="password">
-//                </div>
-//            </div>
-//
-//            <div class="field text2">
-//                <label for="name" class="label"><span>Text field with additional field</span></label>
-//                <div class="control">
-//                    <input type="text" class="input-text" value="" name="text2">
-//                </div>
-//                <div class="nested">
-//                    <div class="field additional">
-//                        <div class="control">
-//                            <input type="text" class="input-text" value="" name="text2_1" >
-//                        </div>
-//                    </div>
-//                </div>
-//            </div>
-//
-//            <div class="field text2">
-//                <label for="name" class="label"><span>Text field with note</span></label>
-//                <div class="control">
-//                    <input type="text" class="input-text" value="" name="text2">
-//                    <div class="note">This is a note to a text field</div>
-//                </div>
-//            </div>
-//
-//            <div class="field range">
-//                <label for="range" class="label"><span>Range field with an addon after input</span></label>
-//                <div class="control">
-//                    <div class="range price fields group group-2">
-//                        <div class="field no-label">
-//                            <div class="control">
-//                                <input type="text" class="input-text" value="" name="range[from]">
-//                            </div>
-//                        </div>
-//                        <div class="field with-addon no-label">
-//                            <div class="control">
-//                                <div class="addon">
-//                                    <input type="text" class="input-text" value="" name="range[to]">
-//                                    <label for="price_to" class="addafter">USD</label>
-//                                </div>
-//                            </div>
-//                        </div>
-//                    </div>
-//                </div>
-//            </div>
-//
-//            <div class="field date">
-//                <label for="date" class="label"><span>Date range field with calendar</span></label>
-//                <div class="control">
-//                    <div class="dates fields">
-//                        <div class="field date no-label">
-//                            <div class="control">
-//                                <input type="text" class="input-text" value="" name="date[from]" id="date_from">
-//                            </div>
-//                        </div>
-//                        <div class="field date no-label">
-//                            <div class="control">
-//                                <input type="text" class="input-text" value="" name="date[to]" id="date_to">
-//                            </div>
-//                        </div>
-//                    </div>
-//                </div>
-//            </div>
-//
-//            <div class="field file">
-//                <label for="file" class="label"><span>File field</span></label>
-//                <div class="control">
-//                    <input type="file" class="input-text" value="" name="file">
-//                </div>
-//            </div>
-//
-//            <div class="field choice">
-//                <input type="radio" class="radio" checked="" value="1" name="inputRadio">
-//                <label for="inputRadio" class="label"><span>Radiobutton choice</span></label>
-//            </div>
-//
-//            <div class="field choice">
-//                <input type="checkbox" class="checkbox" value="1" name="inputCheckbox">
-//                <label for="inputCheckbox" class="label"><span>Checkbox choice</span></label>
-//            </div>
-//
-//            <div class="field region">
-//                <label for="select" class="label"><span>Select</span></label>
-//                <div class="control">
-//                    <select name="select">
-//                        <option value="">Please select</option>
-//                        <option value="5">5</option>
-//                        <option value="10">10</option>
-//                        <option value="15">15</option>
-//                        <option value="20">20</option>
-//                    </select>
-//                </div>
-//            </div>
-//
-//            <div class="field multiselect">
-//                <label for="select" class="label"><span>Multiple select</span></label>
-//                <div class="control">
-//                    <select name="select" class="multiple" multiple="multiple">
-//                        <option value="Option 1">Option 1</option>
-//                        <option value="Option 2">Option 2</option>
-//                        <option value="Option 3">Option 3</option>
-//                        <option value="Option 4">Option 4</option>
-//                        <option value="Option 5">Option 5</option>
-//                        <option value="Option 6">Option 6</option>
-//                        <option value="Option 7">Option 7</option>
-//                    </select>
-//                </div>
-//            </div>
-//
-//            <div class="field textarea">
-//                <label for="textarea" class="label"><span>Textarea</span></label>
-//                <div class="control">
-//                    <textarea rows="3" cols="5" class="input-text" name="textarea"></textarea>
-//                </div>
-//            </div>
-//        </fieldset>
-//
-//        <div class="actions">
-//            <input type="submit" class="action submit" value="Input type='Submit'" name="action_submit">
-//            <input type="button" class="action button" value="Input type='button'" name="action_button">
-//            <input type="reset" class="action reset" value="Input type='reset'" name="action_reset">
-//        </div>
-//        <span class="please-wait load indicator" id="billing-please-wait">
-//            <span>Loading indicator...</span>
-//        </span>
-//    </form>
-//  ```
-//
-
-.form {
-    .actions {
-        margin-right: 10px;
-        text-align: right;
-    }
-}
-
-.fieldset {
-    .formFieldset();
-    > .field {
-        .formField();
-    }
-    .fields.range {
-        .field {
-            display: inline-block;
-            letter-spacing: normal;
-            margin: 0;
-            vertical-align: top;
-            word-spacing: normal;
-            &:first-child {
-                .control {
-                    .box-sizing();
-                    padding-right: 30px;
-                    &:after {
-                        content: '\2014';
-                        display: inline-block;
-                        margin-right: -30px;
-                        text-align: center;
-                        width: 29px;
-                    }
-                }
-                input {
-                    width: 98%;
-                }
-            }
-        }
-    }
-    .fields.dates {
-        .field {
-            display: inline-block;
-            letter-spacing: normal;
-            margin: 0 25px 0 0;
-            padding: 0 34px 0 0;
-            position: relative;
-            vertical-align: top;
-            &:first-child {
-                margin: 0 30px 0 0;
-                .control {
-                    .box-sizing();
-                    &:after {
-                        content: '\2014';
-                        display: inline-block;
-                        position: absolute;
-                        right: -39px;
-                        top: 7px;
-                        width: 29px;
-                    }
-                }
-            }
-            .ui-datepicker-trigger {
-                text-decoration: none;
-                position: absolute;
-                right: 0;
-                top: 9px;
-                &:extend(.button.link all);
-            }
-        }
-    }
-}
-
-input[type="text"],
-input[type="search"],
-input[type="tel"],
-input[type="url"],
-input[type="email"],
-input[type="datetime"],
-input[type="password"],
-input[type="number"] {
-    .inputText();
-}
-
-input[type="submit"],
-input[type="button"] {
-    &:extend(.primary.action all);
-}
-
-input[type="reset"] {
-    &:extend(.secondary.action all);
-}
-
-input[type=number]::-webkit-inner-spin-button,
-input[type=number]::-webkit-outer-spin-button {
-  -webkit-appearance: none;
-  margin: 0;
-}
-
-select {
-    .controlStyling();
-    padding: 5px 10px 4px;
-    &.multiselect {
-        height: auto;
-    }
-}
-
-textarea {
-    .controlStyling();
-    height: auto;
-    line-height: 1.2;
-    min-height: 4.8em;
-    padding: 10px;
-    resize: vertical;
-}
-
-//  #Form validation
-//  Required field marked with '*' symbol
-//
-//  Validation passed hilighting
-//
-//  Validation error hilight and validation error message
-//
-//  '* Required fields' text
-//
-//  ```html
-//    <form class="form validation" data-hasrequired="* Required Fields">
-//        <fieldset class="fieldset">
-//            <div class="field text2 required">
-//                <label for="text2" class="label"><span>Required text field</span></label>
-//                <div class="control">
-//                    <input type="text" class="input-text" value="" name="text2">
-//                </div>
-//            </div>
-//
-//            <div class="field text3 required">
-//                <label for="text3" class="label"><span>Required text field, validation is passed</span></label>
-//                <div class="control valid">
-//                    <input type="text" class="input-text valid" value="" name="text3">
-//                </div>
-//            </div>
-//
-//            <div class="field text4 required">
-//                <label for="text4" class="label"><span>Required text field, validation is not passed</span></label>
-//                <div class="control mage-error">
-//                    <input type="text" class="input-text mage-error" value="" name="text4">
-//                    <div for="name" generated="true" class="mage-error">This is a required field.</div>
-//                </div>
-//            </div>
-//        </fieldset>
-//    </form>
-//  ```
-//
-
-.fieldset {
-    // Validation passed
-    textarea.valid,
-    select.valid,
-    input[type="text"].valid,
-    input[type="search"].valid,
-    input[type="tel"].valid,
-    input[type="url"].valid,
-    input[type="email"].valid,
-    input[type="datetime"].valid,
-    input[type="password"].valid,
-    input[type="number"].valid {
-        border-color: @validHilight !important;
-    }
-    // Validation error
-    textarea.mage-error,
-    select.mage-error,
-    input[type="text"].mage-error,
-    input[type="search"].mage-error,
-    input[type="tel"].mage-error,
-    input[type="url"].mage-error,
-    input[type="email"].mage-error,
-    input[type="datetime"].mage-error,
-    input[type="password"].mage-error,
-    input[type="number"].mage-error {
-        border-color: @nonValidHilight !important;
-    }
-    div.mage-error[generated] {
-        color: @nonValidHilight !important;
-        font-size: @baseFontSizeMiddle;
-        padding-top: 4px;
-    }
-}
-
-.form.validation {
-    .fieldset {
-        margin: 20px 0;
-    }
-    &:extend(.hasRequired all);
-}
-
-// #Form fields arranged to columns
-//
-//  ```html
-//    <form class="form settings">
-//        <fieldset class="fieldset">
-//            <legend class="legend"><span>Some Settings</span></legend>
-//            <br>
-//
-//            <div class="field text1">
-//                <label for="text1" class="label"><span>Text field 1</span></label>
-//                <div class="control">
-//                    <input type="text" class="input-text" value="" name="text1">
-//                </div>
-//            </div>
-//
-//            <div class="field text2">
-//                <label for="text2" class="label"><span>Text field 2</span></label>
-//                <div class="control">
-//                    <input type="text" class="input-text" value="" name="text2">
-//                </div>
-//            </div>
-//
-//            <div class="field text3">
-//                <label for="text3" class="label"><span>Text field 3</span></label>
-//                <div class="control">
-//                    <input type="text" class="input-text" value="" name="text3">
-//                </div>
-//            </div>
-//
-//            <div class="field text4">
-//                <label for="text4" class="label"><span>Text field 4</span></label>
-//                <div class="control">
-//                    <input type="text" class="input-text" value="" name="text4">
-//                </div>
-//            </div>
-//
-//            <div class="field text5">
-//                <label for="text5" class="label"><span>Text field 5</span></label>
-//                <div class="control">
-//                    <input type="text" class="input-text" value="" name="text5">
-//                </div>
-//                <div class="nested">
-//                    <div class="field additional">
-//                        <div class="control">
-//                            <input type="text" class="input-text" value="" name="text5_1">
-//                        </div>
-//                    </div>
-//                </div>
-//            </div>
-//
-//            <div class="field select">
-//                <label for="select" class="label"><span>Select</span></label>
-//                <div class="control">
-//                    <select title="Tax Class" class="multiselect" name="select">
-//                        <option value="">All</option>
-//                        <option value="5">5</option>
-//                        <option value="10">10</option>
-//                        <option value="15">15</option>
-//                    </select>
-//                </div>
-//            </div>
-//
-//            <div class="field textarea">
-//                <label for="textarea" class="label"><span>Textarea</span></label>
-//                <div class="control">
-//                    <textarea rows="3" cols="5" class="input-text" name="textarea"></textarea>
-//                    <div class="note">Please enter your message here</div>
-//                </div>
-//            </div>
-//
-//            <div class="field multiselect">
-//                <label for="multiselect" class="label"><span>Multiple select</span></label>
-//                <div class="control">
-//                    <select multiple="multiple" class="multiselect" name="multiselect">
-//                        <option value="Option 1">Option 1</option>
-//                        <option value="Option 2">Option 2</option>
-//                        <option value="Option 3">Option 3</option>
-//                        <option value="Option 4">Option 4</option>
-//                        <option value="Option 5">Option 5</option>
-//                        <option value="Option 6">Option 6</option>
-//                        <option value="Option 7">Option 7</option>
-//                    </select>
-//                </div>
-//            </div>
-//        </fieldset>
-//        <div class="actions">
-//            <button class="action submit" type="submit"><span>Submit</span></button>
-//        </div>
-//    </form>
-//  ```
-//
-
-.form.settings {
-    .formCols();
-    .action.submit {
-        &:extend(.primary.action all);
-    }
-}
-
-// #Datepicker custom styles
-@datepickerArrows: @secondary1;
-@datepickerArrowsHover: darken(@datepickerArrows, 10%);
-@datepickerTextColor: #000;
-@datepickerBg: #efefef;
-@datepickerBorder: #fff;
-@datepickerShadow: rgba(0, 0, 0, 0.35);
-@datepickerCalendarBg: #fff;
-@datepickerCalendarBorder: #cfcfcf;
-@datepickerCalendarHover: #f9eae7;
-@datepickerCalendarToday: #f3d7d2;
-@datepickerCalendarActive: lighten(@secondary1, 20%);
-@datepickerDisabledBg: #f9f9f9;
-@datepickerDisable: #959595;
-
-.ui-datepicker {
-    background: @datepickerBg;
-    border: 4px solid @datepickerBorder;
-    box-shadow: 5px 5px 10px 0 @datepickerShadow;
-    .box-sizing();
-    display: none;
-    padding: 15px;
-    width: auto;
-    z-index: 999999 !important;
-    .ui-datepicker-header {
-        position: relative;
-        padding: .2em 0;
-    }
-    .ui-datepicker-prev,
-    .ui-datepicker-next {
-        position: absolute;
-        top: 2px;
-        width: 1.8em;
-        height: 1.8em;
-        cursor: pointer;
-        span {
-            border: solid;
-            display: block;
-            font-size: 0;
-            margin-top: -5px;
-            position: absolute;
-            left: 50%;
-            top: 50%;
-            width: 0;
-            height: 0;
-        }
-    }
-    .ui-datepicker-prev {
-        left: 2px;
-        span {
-            margin-left: -8px;
-            border-width: 5px 8px 5px 0;
-            border-color: transparent @datepickerArrows transparent transparent;
-        }
-        &.ui-datepicker-prev-hover span {
-            border-color: transparent @datepickerArrowsHover transparent transparent;
-        }
-    }
-    .ui-datepicker-next {
-        right: 2px;
-        span {
-            margin-left: 0;
-            border-width: 5px 0 5px 8px;
-            border-color: transparent transparent transparent @datepickerArrows;
-        }
-        &.ui-datepicker-next-hover span {
-            border-color: transparent transparent transparent @datepickerArrowsHover;
-        }
-    }
-    .ui-datepicker-title {
-        margin: 0 2.3em;
-        line-height: 1.8em;
-        text-align: center;
-        select {
-            margin: 1px 0;
-            padding: 0;
-        }
-        .ui-datepicker-month,
-        .ui-datepicker-year {
-            width: 47%;
-        }
-        .ui-datepicker-month {
-            margin-right: 6%;
-        }
-        .ui-datepicker-month-year {
-            width: 100%;
-        }
-    }
-    table {
-        width: 100%;
-        font-size: @baseFontSizeMiddle;
-    }
-    th {
-        font-size: @baseFontSizeMiddle;
-    }
-    td {
-        padding: 0;
-    }
-    td span,
-    td a {
-        color: @datepickerTextColor;
-        display: block;
-        line-height: 14px;
-        padding: 4px;
-        text-align: right;
-        text-decoration: none;
-    }
-    .ui-datepicker-buttonpane {
-        overflow: hidden;
-        padding-top: 10px;
-        button {
-            float: right;
-            &.ui-datepicker-current {
-                float: left;
-            }
-        }
-    }
-    .ui-datepicker-calendar {
-        background: @datepickerCalendarBg;
-        border: 1px solid @datepickerCalendarBorder;
-        th {
-            background: @datepickerBg;
-            border: 1px solid @datepickerCalendarBorder;
-            padding: 4px;
-            text-transform: uppercase;
-        }
-        td {
-            border: 1px solid @datepickerCalendarBorder;
-        }
-        td a {
-            padding: 4px;
-            display: block;
-        }
-        td .ui-state-hover:hover {
-            background: @datepickerCalendarHover;
-        }
-        .ui-datepicker-week-col {
-            text-align: center;
-            border: 1px solid @datepickerCalendarBorder;
-        }
-        .ui-datepicker-today {
-            background: @datepickerCalendarToday;
-        }
-        .ui-state-active {
-            background: @datepickerCalendarActive;
-        }
-        .ui-state-disabled {
-            background: @datepickerDisabledBg;
-            span {
-                color: @datepickerDisable;
-            }
-        }
-    }
-}
-
-.ui-datepicker-rtl {
-    direction: rtl;
-    .ui-datepicker-prev {
-        right: 2px;
-        left: auto;
-        &:hover {
-            right: 1px;
-            left: auto;
-        }
-    }
-    .ui-datepicker-next {
-        left: 2px;
-        right: auto;
-        &:hover {
-            left: 1px;
-            right: auto;
-        }
-    }
-    .ui-datepicker-buttonpane {
-        clear: right;
-        button {
-            float: left;
-            &.ui-datepicker-current {
-                float: right;
-            }
-        }
-    }
-    .ui-datepicker-group {
-        float: right;
-    }
-    .ui-datepicker-group-last .ui-datepicker-header {
-        border-right-width: 0;
-        border-left-width: 1px;
-    }
-    .ui-datepicker-group-middle .ui-datepicker-header {
-        border-right-width: 0;
-        border-left-width: 1px;
-    }
-}
-
-.ui-timepicker-div {
-    padding: 10px 0 5px 0;
-    .ui-widget-header {
-        margin-bottom: 8px;
-    }
-    dl {
-        text-align: left;
-        dt {
-            height: 25px;
-            margin-bottom: -22px;
-        }
-        dd {
-            margin: 0 10px 10px 65px;
-        }
-        .ui_tpicker_time_label {
-            margin-bottom: -25px;
-        }
-    }
-    td {
-        font-size: 90%;
-    }
-}
-
-.ui-tpicker-grid-label {
-    background: none;
-    border: none;
-    margin: 0;
-    padding: 0;
-}
-
-.ui-slider {
-    position: relative;
-    text-align: left;
-    .ui-slider-handle {
-        position: absolute;
-        z-index: 2;
-        cursor: default;
-    }
-}
-
-.ui-slider-horizontal {
-    border-radius: 10px;
-    border: none;
-    background: @datepickerBg;
-    height: 10px;
-    .ui-slider-handle {
-        margin-left: -5px;
-        height: 10px;
-        width: 10px;
-        border-radius: 10px;
-        background: @datepickerArrows;
-        display: block;
-        position: absolute;
-    }
-}
-
-/* Field with multiple fields */
-
-.fields.group {
-    letter-spacing: -0.31em; /* webkit */
-    *letter-spacing: normal; /* reset IE < 8 */
-    word-spacing: -0.43em; /* IE < 8 && gecko */
-    margin-right: -20px;
-    & > * {
-        letter-spacing: normal;
-        word-spacing: normal;
-    }
-    .field {
-        .box-sizing();
-        vertical-align:top;
-        margin:0!important;
-        .label { width:auto; float:none; text-align: left; padding-right:0; }
-        .control { float:none; width:auto; }
-    }
-    &.group-2 .field {
-        width:50%!important;
-        display:inline-block;
-    }
-    &.group-3 .field {
-        width:33.3%!important;
-        display:inline-block;
-    }
-    &.group-4 .field {
-        width:25%!important;
-        display:inline-block;
-    }
-    &.group-5 .field {
-        width:20%!important;
-        display:inline-block;
-    }
-}
diff --git a/app/design/frontend/Magento/plushe/css/source/lib/grids.less b/app/design/frontend/Magento/plushe/css/source/lib/grids.less
deleted file mode 100644
index c65a03b7797fa563b690eb94b049a7c47afb28db..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/lib/grids.less
+++ /dev/null
@@ -1,384 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-//  # 1. Grid using floated columns
-//  Full documentation about grid usage: https://github.com/clearleft/clearless#grids
-//
-//  # 1.1 One column
-//
-//  ```html
-//    <div class="clearlessgrid1 gridwrapper">
-//        <div class="grid-1">column</div>
-//    </div>
-//  ```
-//
-
-.clearlessgrid1 {
-    .column-wrapper();
-    > .grid-1 {
-        .column();
-        .span(12);
-        .end-column();
-    }
-}
-
-//  # 1.2 One main column and one right sidebar
-//
-//  ```html
-//    <div class="clearlessgrid2 gridwrapper">
-//        <div class="main">column</div>
-//        <div class="sidebar">column</div>
-//    </div>
-//  ```
-//
-
-.clearlessgrid2 {
-    .column-wrapper();
-    .main {
-        .column();
-        .span(9);
-    }
-    .sidebar {
-        .column();
-        .span(3);
-        .end-column();
-    }
-}
-
-//  # 1.3 One main column and one left sidebar
-//
-//  ```html
-//    <div class="clearlessgrid3 gridwrapper">
-//        <div class="sidebar">column</div>
-//        <div class="main">column</div>
-//    </div>
-//  ```
-//
-
-.clearlessgrid3 {
-    .column-wrapper();
-    .main {
-        .column();
-        .span(9);
-        .end-column();
-    }
-    .sidebar {
-        .column();
-        .span(3);
-    }
-}
-
-//  # 1.4 One main column and two sidebars
-//
-//  ```html
-//    <div class="clearlessgrid4 gridwrapper">
-//        <div class="sidebar1">column</div>
-//        <div class="main">column</div>
-//        <div class="sidebar2">column</div>
-//    </div>
-//  ```
-//
-
-.clearlessgrid4 {
-    .column-wrapper();
-    .main {
-        .column();
-        .span(6);
-    }
-    .sidebar1,
-    .sidebar2 {
-        .column();
-        .span(3);
-    }
-    .sidebar2 {
-        .end-column();
-    }
-}
-
-//  # 1.5 Four columns
-//
-//  ```html
-//    <div class="clearlessgrid5 gridwrapper">
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//    </div>
-//  ```
-//
-
-.clearlessgrid5 {
-    .column-wrapper();
-    > .grid-1 {
-        .column();
-        .span(3);
-        &:last-child {
-            .end-column();
-        }
-    }
-}
-
-//  # 1.6 Six columns
-//
-//  ```html
-//    <div class="clearlessgrid6 gridwrapper">
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//    </div>
-//  ```
-//
-
-.clearlessgrid6 {
-    .column-wrapper();
-    > .grid-1 {
-        .column();
-        .span(2);
-        &:last-child {
-            .end-column();
-        }
-    }
-}
-
-//  # 1.7 Twelve columns
-//
-//  ```html
-//    <div class="clearlessgrid12 gridwrapper">
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//    </div>
-//    ```
-//
-
-.clearlessgrid12 {
-    .column-wrapper();
-    > .grid-1 {
-        .column();
-        .span(1);
-        &:last-child {
-            .end-column();
-        }
-    }
-}
-
-//  # 2. Grid columns using display: inline-block
-//
-//  # 2.1 One column
-//
-//  ```html
-//    <div class="inlinegrid1 inlinegridwrapper">
-//        <div class="grid-1">column</div>
-//    </div>
-//    ```
-//
-
-.inlinegrid1 {
-    .inline-column-wrapper();
-    > .grid-1 {
-        .inline-column();
-        .span(12);
-        .inline-end-column();
-    }
-}
-
-//  # 2.2 One main column and two right sidebar
-//
-//  ```html
-//    <div class="inlinegrid2 inlinegridwrapper">
-//        <div class="main">column</div>
-//        <div class="sidebar">column</div>
-//    </div>
-//    ```
-//
-
-.inlinegrid2 {
-    .inline-column-wrapper();
-    .main {
-        .inline-column();
-        .span(9);
-    }
-    .sidebar {
-        .inline-column();
-        .span(3);
-        .inline-end-column();
-    }
-}
-
-//  # 2.3 One main column and one left sidebar
-//
-//  ```html
-//    <div class="inlinegrid3 inlinegridwrapper">
-//        <div class="sidebar">column</div>
-//        <div class="main">column</div>
-//    </div>
-//    ```
-//
-
-.inlinegrid3 {
-    .inline-column-wrapper();
-    .main {
-        .inline-column();
-        .span(9);
-        .inline-end-column();
-    }
-    .sidebar {
-        .inline-column();
-        .span(3);
-    }
-}
-
-//  # 2.4 One main column and two sidebars
-//
-//  ```html
-//    <div class="inlinegrid4 inlinegridwrapper">
-//        <div class="sidebar1">column</div>
-//        <div class="main">column</div>
-//        <div class="sidebar2">column</div>
-//    </div>
-//    ```
-//
-
-.inlinegrid4 {
-    .inline-column-wrapper();
-    .main {
-        .inline-column();
-        .span(6);
-    }
-    .sidebar1,
-    .sidebar2 {
-        .inline-column();
-        .span(3);
-    }
-    .sidebar2 {
-        .inline-end-column();
-    }
-}
-
-//  # 2.5 Four columns
-//
-//  ```html
-//    <div class="inlinegrid5 inlinegridwrapper">
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//    </div>
-//    ```
-//
-
-.inlinegrid5 {
-    .inline-column-wrapper();
-    > .grid-1 {
-        .inline-column();
-        .span(3);
-        &:last-child {
-            .inline-end-column();
-        }
-    }
-}
-
-//  # 2.6 Six columns
-//
-//  ```html
-//    <div class="inlinegrid6 inlinegridwrapper">
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//    </div>
-//    ```
-//
-
-.inlinegrid6 {
-    .inline-column-wrapper();
-    > .grid-1 {
-        .inline-column();
-        .span(2);
-        &:last-child {
-            .inline-end-column();
-        }
-    }
-}
-
-//  # 2.7 Twelve columns
-//
-//  ```html
-//    <div class="inlinegrid12 inlinegridwrapper">
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//        <div class="grid-1">column</div>
-//    </div>
-//    ```
-//
-
-.inlinegrid12 {
-    .inline-column-wrapper();
-    > .grid-1 {
-        .inline-column();
-        .span(1);
-        &:last-child {
-            .inline-end-column();
-        }
-    }
-}
-
-//  #Common settings
-
-@total-columns: 12;
-@column-width: 60px;
-@gutter-width: 20px;
-
-.gridwrapper > div,
-.inlinegridwrapper > div {
-    background: #e5e5e5;
-    border: 1px solid #999;
-    padding: 5px 0;
-    text-align: center;
-    .box-sizing();
-}
diff --git a/app/design/frontend/Magento/plushe/css/source/lib/icons.less b/app/design/frontend/Magento/plushe/css/source/lib/icons.less
deleted file mode 100644
index b641292097d045297114296c638ca3751eea3007..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/lib/icons.less
+++ /dev/null
@@ -1,73 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-.example.icon {
-    display: inline-block;
-    margin: 0 0 16px;
-    width: 20%;
-    text-align: center;
-    .iconBefore("", 32px, 0 0 10px 0, 'icons');
-    &:before {
-        content: attr(data-icon);
-        display: block;
-    }
-    &:hover {
-        color: @secondary2;
-    }
-}
-
-// #iconBefore
-//Add an icon *before* the specified element
-//
-//**.iconBefore(["content"], [height], [margin], ["font"]);**
-//  ```
-//  <a class="action primary showcart1" href="#"><span>My Cart</span></a>
-//  ```
-.action.showcart1 {
-    .iconBefore(@icon-cart, 16px, 0 5px 0 0, "icons");
-}
-
-// #iconAfter
-//Add an icon *after* the specified element
-//
-//**.iconAfter(["content"], [height], [margin], ["font"]);**
-//  ```
-//  <a class="action showcart2" href="#"><span>My Cart</span></a>
-//  ```
-.action.showcart2 {
-    .iconAfter(@icon-cart, 16px, 0 0 0 10px, "icons");
-}
-
-// #iconHideText
-//Hide the text to the specified element (not hide the icon)
-//
-//**.iconHideText([limitWidth]);**
-//  ```
-//  <a class="action showcart3" href="#"><span>My Cart</span></a>
-//  ```
-.action.showcart3 {
-    .iconAfter(@icon-cart, 16px, 10px,"icons");
-    .iconHideText(16px);
-}
diff --git a/app/design/frontend/Magento/plushe/css/source/lib/messages.less b/app/design/frontend/Magento/plushe/css/source/lib/messages.less
deleted file mode 100644
index 6bd368e02015c962cb6e15d6872f1359288a3802..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/lib/messages.less
+++ /dev/null
@@ -1,565 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-// Simple messages
-
-.message(
-@_message-type: info,
-@_message-color: @message-info-color,
-@_message-background: @message-info-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-info-link-color,
-@_message-link-color-hover: @message-info-link-color-hover,
-@_message-border: @message-border
-) when (@_message-type = info) {
-    ._message(
-        @_message-color: @_message-color,
-        @_message-background: @_message-background,
-        @_message-padding: @_message-padding,
-        @_message-margin: @_message-margin,
-        @_message-border-radius: @_message-border-radius,
-        @_message-link-color: @_message-link-color,
-        @_message-link-color-hover: @_message-link-color-hover,
-        @_message-border: @_message-border
-    );
-}
-
-.message(
-@_message-type: info,
-@_message-color: @message-warning-color,
-@_message-background: @message-warning-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-warning-link-color,
-@_message-link-color-hover: @message-warning-link-color-hover,
-@_message-border: @message-border
-) when (@_message-type = warning) {
-    ._message(
-        @_message-color: @_message-color,
-        @_message-background: @_message-background,
-        @_message-padding: @_message-padding,
-        @_message-margin: @_message-margin,
-        @_message-border-radius: @_message-border-radius,
-        @_message-link-color: @_message-link-color,
-        @_message-link-color-hover: @_message-link-color-hover,
-        @_message-border: @_message-border
-    );
-}
-
-.message(
-@_message-type: info,
-@_message-color: @message-error-color,
-@_message-background: @message-error-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-error-link-color,
-@_message-link-color-hover: @message-error-link-color-hover,
-@_message-border: @message-border
-) when (@_message-type = error) {
-    ._message(
-        @_message-color: @_message-color,
-        @_message-background: @_message-background,
-        @_message-padding: @_message-padding,
-        @_message-margin: @_message-margin,
-        @_message-border-radius: @_message-border-radius,
-        @_message-link-color: @_message-link-color,
-        @_message-link-color-hover: @_message-link-color-hover,
-        @_message-border: @_message-border
-    );
-}
-
-.message(
-@_message-type: info,
-@_message-color: @message-success-color,
-@_message-background: @message-success-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-success-link-color,
-@_message-link-color-hover: @message-success-link-color-hover,
-@_message-border: @message-border
-) when (@_message-type = success) {
-    ._message(
-        @_message-color: @_message-color,
-        @_message-background: @_message-background,
-        @_message-padding: @_message-padding,
-        @_message-margin: @_message-margin,
-        @_message-border-radius: @_message-border-radius,
-        @_message-link-color: @_message-link-color,
-        @_message-link-color-hover: @_message-link-color-hover,
-        @_message-border: @_message-border
-    );
-}
-
-.message(
-@_message-type: info,
-@_message-color: @message-notice-color,
-@_message-background: @message-notice-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-notice-link-color,
-@_message-link-color-hover: @message-notice-link-color-hover,
-@_message-border: @message-border
-) when (@_message-type = notice) {
-    ._message(
-        @_message-color: @_message-color,
-        @_message-background: @_message-background,
-        @_message-padding: @_message-padding,
-        @_message-margin: @_message-margin,
-        @_message-border-radius: @_message-border-radius,
-        @_message-link-color: @_message-link-color,
-        @_message-link-color-hover: @_message-link-color-hover,
-        @_message-border: @_message-border
-    );
-}
-
-._message(
-@_message-color: @message-info-color,
-@_message-background: @message-info-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-info-link-color,
-@_message-link-color-hover: @message-info-link-color-hover,
-@_message-border: @message-border
-) {
-    display: block;
-    color: @_message-color;
-    background: @_message-background;
-    padding: @_message-padding;
-    margin: @message-margin;
-    border-radius: @_message-border-radius;
-    ._message-border(@_message-border);
-    font-size: @message-font-size;
-    line-height: @message-line-height;
-
-    a {
-        color: @_message-link-color;
-
-        &:hover {
-            color: @_message-link-color-hover;
-        }
-    }
-}
-
-._message-border(@_message-border) when not (@_message-border = none) {
-    border: @_message-border;
-}
-
-// Simple messages aliases
-
-.message-info(
-@_message-color: @message-info-color,
-@_message-background: @message-info-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-info-link-color,
-@_message-link-color-hover: @message-info-link-color-hover,
-@_message-border: @message-border
-) {
-    ._message(
-        @_message-color: @_message-color,
-        @_message-background: @_message-background,
-        @_message-padding: @_message-padding,
-        @_message-margin: @_message-margin,
-        @_message-border-radius: @_message-border-radius,
-        @_message-link-color: @_message-link-color,
-        @_message-link-color-hover: @_message-link-color-hover,
-        @_message-border: @_message-border
-    );
-}
-
-.message-warning(
-@_message-color: @message-warning-color,
-@_message-background: @message-warning-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-warning-link-color,
-@_message-link-color-hover: @message-warning-link-color-hover,
-@_message-border: @message-border
-) {
-    ._message(
-        @_message-color: @_message-color,
-        @_message-background: @_message-background,
-        @_message-padding: @_message-padding,
-        @_message-margin: @_message-margin,
-        @_message-border-radius: @_message-border-radius,
-        @_message-link-color: @_message-link-color,
-        @_message-link-color-hover: @_message-link-color-hover,
-        @_message-border: @_message-border
-    );
-}
-
-.message-error(
-@_message-color: @message-error-color,
-@_message-background: @message-error-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-error-link-color,
-@_message-link-color-hover: @message-error-link-color-hover,
-@_message-border: @message-border
-) {
-    ._message(
-        @_message-color: @_message-color,
-        @_message-background: @_message-background,
-        @_message-padding: @_message-padding,
-        @_message-margin: @_message-margin,
-        @_message-border-radius: @_message-border-radius,
-        @_message-link-color: @_message-link-color,
-        @_message-link-color-hover: @_message-link-color-hover,
-        @_message-border: @_message-border
-    );
-}
-
-.message-success(
-@_message-color: @message-success-color,
-@_message-background: @message-success-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-success-link-color,
-@_message-link-color-hover: @message-success-link-color-hover,
-@_message-border: @message-border
-) {
-    ._message(
-        @_message-color: @_message-color,
-        @_message-background: @_message-background,
-        @_message-padding: @_message-padding,
-        @_message-margin: @_message-margin,
-        @_message-border-radius: @_message-border-radius,
-        @_message-link-color: @_message-link-color,
-        @_message-link-color-hover: @_message-link-color-hover,
-        @_message-border: @_message-border
-    );
-}
-
-.message-notice(
-@_message-color: @message-notice-color,
-@_message-background: @message-notice-background,
-@_message-padding: @message-padding,
-@_message-margin: @message-margin,
-@_message-border-radius: @message-border-radius,
-@_message-link-color: @message-notice-link-color,
-@_message-link-color-hover: @message-notice-link-color-hover,
-@_message-border: @message-border
-) {
-    ._message(
-        @_message-color: @_message-color,
-        @_message-background: @_message-background,
-        @_message-padding: @_message-padding,
-        @_message-margin: @_message-margin,
-        @_message-border-radius: @_message-border-radius,
-        @_message-link-color: @_message-link-color,
-        @_message-link-color-hover: @_message-link-color-hover,
-        @_message-border: @_message-border
-    );
-}
-
-// Messages with lateral icon
-
-.message-info-icon-lateral(
-@_message-icon-position: right,
-@_message-icon: @message-info-icon,
-@_message-icon-color: @message-info-icon-color,
-@_message-icon-background: @message-info-icon-background
-) {
-    ._message-icon-lateral(
-        @_message-icon-position,
-        @_message-icon,
-        @_message-icon-color,
-        @_message-icon-background
-    );
-}
-
-.message-warning-icon-lateral(
-@_message-icon-position: right,
-@_message-icon: @message-warning-icon,
-@_message-icon-color: @message-warning-icon-color,
-@_message-icon-background: @message-warning-icon-background
-) {
-    ._message-icon-lateral(
-        @_message-icon-position,
-        @_message-icon,
-        @_message-icon-color,
-        @_message-icon-background
-    );
-}
-
-.message-error-icon-lateral(
-@_message-icon-position: right,
-@_message-icon: @message-error-icon,
-@_message-icon-color: @message-error-icon-color,
-@_message-icon-background: @message-error-icon-background
-) {
-    ._message-icon-lateral(
-        @_message-icon-position,
-        @_message-icon,
-        @_message-icon-color,
-        @_message-icon-background
-    );
-}
-
-.message-success-icon-lateral(
-@_message-icon-position: right,
-@_message-icon: @message-success-icon,
-@_message-icon-color: @message-success-icon-color,
-@_message-icon-background: @message-success-icon-background
-) {
-    ._message-icon-lateral(
-        @_message-icon-position,
-        @_message-icon,
-        @_message-icon-color,
-        @_message-icon-background
-    );
-}
-
-.message-notice-icon-lateral(
-@_message-icon-position: right,
-@_message-icon: @message-notice-icon,
-@_message-icon-color: @message-notice-icon-color,
-@_message-icon-background: @message-notice-icon-background
-) {
-    ._message-icon-lateral(
-        @_message-icon-position,
-        @_message-icon,
-        @_message-icon-color,
-        @_message-icon-background
-    );
-}
-
-// Messages with inner icon
-
-.message-info-icon-inner(
-@_message-icon: @message-info-icon,
-@_message-icon-color: @message-info-icon-color,
-@_message-icon-background: @message-info-icon-background,
-@_message-padding-left: @message-icon-inner-padding-left
-) {
-    ._message-icon-inner(
-        @_message-icon,
-        @_message-icon-color,
-        @_message-icon-background,
-        @_message-padding-left
-    );
-}
-
-.message-warning-icon-inner(
-@_message-icon: @message-warning-icon,
-@_message-icon-color: @message-warning-icon-color,
-@_message-icon-background: @message-warning-icon-background,
-@_message-padding-left: @message-icon-inner-padding-left
-) {
-    ._message-icon-inner(
-        @_message-icon,
-        @_message-icon-color,
-        @_message-icon-background,
-        @_message-padding-left
-    );
-}
-
-.message-error-icon-inner(
-@_message-icon: @message-error-icon,
-@_message-icon-color: @message-error-icon-color,
-@_message-icon-background: @message-error-icon-background,
-@_message-padding-left: @message-icon-inner-padding-left
-) {
-    ._message-icon-inner(
-        @_message-icon,
-        @_message-icon-color,
-        @_message-icon-background,
-        @_message-padding-left
-    );
-}
-
-.message-success-icon-inner(
-@_message-icon: @message-success-icon,
-@_message-icon-color: @message-success-icon-color,
-@_message-icon-background: @message-success-icon-background,
-@_message-padding-left: @message-icon-inner-padding-left
-) {
-    ._message-icon-inner(
-        @_message-icon,
-        @_message-icon-color,
-        @_message-icon-background,
-        @_message-padding-left
-    );
-}
-
-.message-notice-icon-inner(
-@_message-icon: @message-notice-icon,
-@_message-icon-color: @message-notice-icon-color,
-@_message-icon-background: @message-notice-icon-background,
-@_message-padding-left: @message-icon-inner-padding-left
-) {
-    ._message-icon-inner(
-        @_message-icon,
-        @_message-icon-color,
-        @_message-icon-background,
-        @_message-padding-left
-    );
-}
-
-// Private mixins
-
-._message-icon-lateral(
-@_message-icon-position,
-@_message-icon,
-@_message-icon-color,
-@_message-icon-background
-) {
-    position: relative;
-
-    &:before {
-        content: '';
-        position: absolute;
-        width: @message-icon-lateral-width;
-        text-align: center;
-        top: 0;
-        height: 100%;
-        display: block;
-        padding: 0;
-        border-radius: @message-border-radius;
-        background: @_message-icon-background;
-    }
-
-    > *:first-child:before {
-        content: '';
-        position: absolute;
-        overflow: hidden;
-        top: 50%;
-        margin-top: -3px;
-    }
-
-    > *:first-child:after {
-        content: @_message-icon;
-        font-family: "icons";
-        color: #fff;
-        font-size: @message-icon-font-size;
-        position: absolute;
-        top: 50%;
-        margin-top: ceil(-@message-icon-font-size / 3 - 2);
-        width: @message-icon-lateral-width;
-        text-align: center;
-        display: block;
-    }
-
-    ._message-icon-lateral-position(
-        @_message-icon-position,
-        @_message-icon-background
-    );
-}
-
-._message-icon-lateral-position(
-@_message-icon-position,
-@_message-icon-background
-) when (@_message-icon-position = right) {
-    padding-right: 60px;
-
-    &:before {
-        right: 0;
-    }
-    > *:first-child:before {
-        .arrow(left, 5px, @_message-icon-background);
-        right: @message-icon-lateral-width;
-    }
-    > *:first-child:after {
-        right: 0;
-    }
-}
-
-._message-icon-lateral-position(
-@_message-icon-position,
-@_message-icon-background
-) when (@_message-icon-position = left) {
-    padding-left: 60px;
-
-    &:before {
-        left: 0;
-    }
-    > *:first-child:before {
-        .arrow(right, 5px, @_message-icon-background);
-        left: @message-icon-lateral-width;
-    }
-    > *:first-child:after {
-        left: 0;
-    }
-}
-
-._message-icon-inner(
-@_message-icon,
-@_message-icon-color,
-@_message-icon-background,
-@_message-padding-left
-) {
-    position: relative;
-    padding-left: @_message-padding-left;
-
-    > *:first-child:before {
-        content: @_message-icon;
-        font-family: "icons";
-        color: @_message-icon-color;
-        position: absolute;
-        left: 0;
-        width: @_message-padding-left;
-        text-align: center;
-        font-size: @message-icon-font-size;
-    }
-}
-
-
-
-
-.message.info {
-    .message-info();
-    .message-info-icon-lateral();
-}
-
-.message.error {
-    .message-error();
-    .message-error-icon-lateral();
-}
-
-.message.warning {
-    .message-warning();
-    .message-warning-icon-lateral();
-}
-
-.message.notice {
-    .message-notice();
-    .message-notice-icon-lateral();
-}
-
-.message.success {
-    .message-success();
-    .message-success-icon-lateral();
-}
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/css/source/lib/navigation.less b/app/design/frontend/Magento/plushe/css/source/lib/navigation.less
deleted file mode 100644
index bc2166cd2c7022b41edfb92cd19da407d985b109..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/lib/navigation.less
+++ /dev/null
@@ -1,817 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-//  # Navigation
-//
-//
-//  ```html
-//<div class="header"></div>
-//<nav class="navigation" data-role="navigation" data-mage-init="{ navigationMenu: { submenuContiniumEffect: false } }">
-//    <ul>
-//        <li class="level0 nav-1 first level-top parent"><a href="http://m2.loc/index.php/ewr.html" class="level-top"><span> First level 1 </span></a>
-//            <div class="submenu">
-//                <ul class="level0">
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-1-1 first parent"><a href="http://m2.loc/index.php/ewr/subcategory-1.html"><span> Subcategory 1 </span></a>
-//                                <div class="submenu">
-//                                    <ul class="level1">
-//                                        <li class="level2 nav-1-1-1 first"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-1.html"><span> Third level 1 </span></a></li>
-//                                        <li class="level2 nav-1-1-2 parent"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-2.html"><span> Third level 2 </span></a>
-//                                            <div class="submenu">
-//                                                <ul class="level2">
-//                                                    <li class="level3 nav-1-1-2-1 first"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-2/fourth-level-1.html"><span> Fourth level 1 </span></a></li>
-//                                                    <li class="level3 nav-1-1-2-2"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-2/fourth-level-2.html"><span> Fourth level 2 </span></a></li>
-//                                                    <li class="level3 nav-1-1-2-3"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-2/fourth-level-3.html"><span> Fourth level 3 </span></a></li>
-//                                                    <li class="level3 nav-1-1-2-4 last"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-2/fourth-level-4.html"><span> Fourth level 4 </span></a></li>
-//                                                </ul>
-//                                            </div>
-//                                        </li>
-//                                        <li class="level2 nav-1-1-3 parent"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-3.html"><span> Third level 3 </span></a>
-//                                            <div class="submenu">
-//                                                <ul class="level2">
-//                                                    <li class="level3 nav-1-1-3-1 first"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-3/fourth-level-1.html"><span> Fourth level 1 </span></a></li>
-//                                                    <li class="level3 nav-1-1-3-2 last"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-3/fourth-level-2.html"><span> Fourth level 2 </span></a></li>
-//                                                </ul>
-//                                            </div>
-//                                        </li>
-//                                        <li class="level2 nav-1-1-4"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-4.html"><span> Third level 4 </span></a></li>
-//                                        <li class="level2 nav-1-1-5"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-5.html"><span> Third level 5 </span></a></li>
-//                                        <li class="level2 nav-1-1-6"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-6.html"><span> Third level 6 </span></a></li>
-//                                        <li class="level2 nav-1-1-7"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-7.html"><span> Third level 7 </span></a></li>
-//                                        <li class="level2 nav-1-1-8"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-8.html"><span> Third level 8 </span></a></li>
-//                                        <li class="level2 nav-1-1-9"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-9.html"><span> Third level 9 </span></a></li>
-//                                        <li class="level2 nav-1-1-10"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-10.html"><span> Third level 10 </span></a></li>
-//                                        <li class="level2 nav-1-1-11 last"><a href="http://m2.loc/index.php/ewr/subcategory-1/third-level-11.html"><span> Third level 11 </span></a></li>
-//                                    </ul>
-//                                </div>
-//                            </li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-1-2 parent"><a href="http://m2.loc/index.php/ewr/subcategory-2.html"><span> Subcategory 2 </span></a>
-//                                <div class="submenu">
-//                                    <ul class="level1">
-//                                        <li class="level2 nav-1-2-1 first"><a href="http://m2.loc/index.php/ewr/subcategory-2/third-level-1.html"><span> Third level 1 </span></a></li>
-//                                        <li class="level2 nav-1-2-2"><a href="http://m2.loc/index.php/ewr/subcategory-2/third-level-2.html"><span> Third level 2 </span></a></li>
-//                                        <li class="level2 nav-1-2-3"><a href="http://m2.loc/index.php/ewr/subcategory-2/third-level-3.html"><span> Third level 3 </span></a></li>
-//                                        <li class="level2 nav-1-2-4"><a href="http://m2.loc/index.php/ewr/subcategory-2/third-level-4.html"><span> Third level 4 </span></a></li>
-//                                        <li class="level2 nav-1-2-5 last"><a href="http://m2.loc/index.php/ewr/subcategory-2/third-level-5.html"><span> Third level 5 </span></a></li>
-//                                    </ul>
-//                                </div>
-//                            </li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-1-3"><a href="http://m2.loc/index.php/ewr/subcategory-3.html"><span> Subcategory 3 </span></a></li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-1-4"><a href="http://m2.loc/index.php/ewr/subcategory-4.html"><span> Subcategory 4 </span></a></li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-1-5"><a href="http://m2.loc/index.php/ewr/subcategory-5.html"><span> Subcategory 5 </span></a></li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-1-6 last parent"><a href="http://m2.loc/index.php/ewr/subcategory-6.html"><span> Subcategory 6 </span></a>
-//                                <div class="submenu">
-//                                    <ul class="level1">
-//                                        <li class="level2 nav-1-6-1 first"><a href="http://m2.loc/index.php/ewr/subcategory-6/third-level-1.html"><span> Third level 1 </span></a></li>
-//                                        <li class="level2 nav-1-6-2"><a href="http://m2.loc/index.php/ewr/subcategory-6/third-level-2.html"><span> Third level 2 </span></a></li>
-//                                        <li class="level2 nav-1-6-3"><a href="http://m2.loc/index.php/ewr/subcategory-6/third-level-3.html"><span> Third level 3 </span></a></li>
-//                                        <li class="level2 nav-1-6-4"><a href="http://m2.loc/index.php/ewr/subcategory-6/third-level-4.html"><span> Third level 4 </span></a></li>
-//                                        <li class="level2 nav-1-6-5"><a href="http://m2.loc/index.php/ewr/subcategory-6/third-level-5.html"><span> Third level 5 </span></a></li>
-//                                        <li class="level2 nav-1-6-6"><a href="http://m2.loc/index.php/ewr/subcategory-6/third-level-6.html"><span> Third level 6 </span></a></li>
-//                                        <li class="level2 nav-1-6-7 last"><a href="http://m2.loc/index.php/ewr/subcategory-6/third-level-7.html"><span> Third level 7 </span></a></li>
-//                                    </ul>
-//                                </div>
-//                            </li>
-//                        </ul>
-//                    </li>
-//                </ul>
-//            </div>
-//        </li>
-//        <li class="level0 nav-2 level-top parent"><a href="http://m2.loc/index.php/123456.html" class="level-top"><span> First level 2 </span></a>
-//            <div class="submenu">
-//                <ul class="level0">
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-2-1 first"><a href="http://m2.loc/index.php/123456/subcategory-1.html"><span> Subcategory 1 </span></a></li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-2-2"><a href="http://m2.loc/index.php/123456/subcategory-2.html"><span> Subcategory 2 </span></a></li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-2-3 last"><a href="http://m2.loc/index.php/123456/subcategory-3.html"><span> Subcategory 3 </span></a></li>
-//                        </ul>
-//                    </li>
-//                </ul>
-//            </div>
-//        </li>
-//        <li class="level0 nav-3 level-top parent"><a href="http://m2.loc/index.php/first-level-3.html" class="level-top"><span> First level 3 </span></a>
-//            <div class="submenu">
-//                <ul class="level0">
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-3-1 first"><a href="http://m2.loc/index.php/first-level-3/subcategory-1.html"><span> Subcategory 1 </span></a></li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-3-2"><a href="http://m2.loc/index.php/first-level-3/subcategory-2.html"><span> Subcategory 2 </span></a></li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-3-3"><a href="http://m2.loc/index.php/first-level-3/subcategory-3.html"><span> Subcategory 3 </span></a></li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-3-4"><a href="http://m2.loc/index.php/first-level-3/subcategory-4.html"><span> Subcategory 4 </span></a></li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-3-5 last"><a href="http://m2.loc/index.php/first-level-3/subcategory-5.html"><span> Subcategory 5 </span></a></li>
-//                        </ul>
-//                    </li>
-//                </ul>
-//            </div>
-//        </li>
-//        <li class="level0 nav-4 level-top"><a href="http://m2.loc/index.php/first-level-4.html" class="level-top"><span> First level 4 </span></a></li>
-//        <li class="level0 nav-5 level-top"><a href="http://m2.loc/index.php/first-level-5.html" class="level-top"><span> First level 5 </span></a></li>
-//        <li class="level0 nav-6 level-top"><a href="http://m2.loc/index.php/first-level-6.html" class="level-top"><span> First level 6 </span></a></li>
-//        <li class="level0 nav-7 level-top"><a href="http://m2.loc/index.php/first-level-7.html" class="level-top"><span> First level 7 </span></a></li>
-//        <li class="level0 nav-8 level-top"><a href="http://m2.loc/index.php/first-level-8.html" class="level-top"><span> First level 8 </span></a></li>
-//        <li class="level0 nav-9 level-top parent"><a href="http://m2.loc/index.php/first-level-4-1.html" class="level-top"><span> First level 9 </span></a>
-//            <div class="submenu">
-//                <ul class="level0">
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-9-1 first parent"><a href="http://m2.loc/index.php/first-level-4-1/subcategory-1.html"><span> Subcategory 1 </span></a>
-//                                <div class="submenu">
-//                                    <ul class="level1">
-//                                        <li class="level2 nav-9-1-1 first"><a href="http://m2.loc/index.php/first-level-4-1/subcategory-1/third-level-1.html"><span> Third level 1 </span></a></li>
-//                                        <li class="level2 nav-9-1-2 parent"><a href="http://m2.loc/index.php/first-level-4-1/subcategory-1/third-level-2.html"><span> Third level 2 </span></a>
-//                                            <div class="submenu">
-//                                                <ul class="level2">
-//                                                    <li class="level3 nav-9-1-2-1 first"><a href="http://m2.loc/index.php/first-level-4-1/subcategory-1/third-level-2/fourth-level-1.html"><span> Fourth level 1 </span></a></li>
-//                                                    <li class="level3 nav-9-1-2-2 last"><a href="http://m2.loc/index.php/first-level-4-1/subcategory-1/third-level-2/fourth-level-2.html"><span> Fourth level 2 </span></a></li>
-//                                                </ul>
-//                                            </div>
-//                                        </li>
-//                                        <li class="level2 nav-9-1-3 last"><a href="http://m2.loc/index.php/first-level-4-1/subcategory-1/third-level-3.html"><span> Third level 3 </span></a></li>
-//                                    </ul>
-//                                </div>
-//                            </li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-9-2"><a href="http://m2.loc/index.php/first-level-4-1/subcategory-2.html"><span> Subcategory 2 </span></a></li>
-//                        </ul>
-//                    </li>
-//                    <li class="column">
-//                        <ul>
-//                            <li class="level1 nav-9-3 last"><a href="http://m2.loc/index.php/first-level-4-1/subcategory-3.html"><span> Subcategory 3 </span></a></li>
-//                        </ul>
-//                    </li>
-//                </ul>
-//            </div>
-//        </li>
-//        <li class="level0 nav-10 level-top"><a href="http://m2.loc/index.php/first-level-10.html" class="level-top"><span> First level 10 </span></a></li>
-//        <li class="level0 nav-11 level-top"><a href="http://m2.loc/index.php/first-level-11.html" class="level-top"><span> First level 11 </span></a></li>
-//        <li class="level0 nav-12 level-top"><a href="http://m2.loc/index.php/first-level-12.html" class="level-top"><span> First level 12 </span></a></li>
-//        <li class="level0 nav-13 level-top"><a href="http://m2.loc/index.php/first-level-13.html" class="level-top"><span> First level 13 </span></a></li>
-//        <li class="level0 nav-14 level-top"><a href="http://m2.loc/index.php/first-level-14.html" class="level-top"><span> First level 14 </span></a></li>
-//        <li class="level0 nav-15 level-top"><a href="http://m2.loc/index.php/first-level-15.html" class="level-top"><span> First level 15 </span></a></li>
-//        <li class="level0 nav-16 level-top"><a href="http://m2.loc/index.php/first-level-16.html" class="level-top"><span> First level 16 </span></a></li>
-//        <li class="level0 nav-17 level-top"><a href="http://m2.loc/index.php/first-level-17.html" class="level-top"><span> First level 17 </span></a></li>
-//    </ul>
-//</nav>
-//  ```
-//
-
-@subNavHeight: auto;
-@subNavPadding: 45px;
-
-@navBg : @headerBg;
-@navBgImage : @headerBgImage;
-
-.navigation {
-    background-color: @navBg;
-    background-image: @navBgImage;
-    background-repeat: repeat;
-    background-position: 0 0;
-    border-top: 1px solid;
-    .borderColorI(@navBg);
-    position: relative;
-    z-index: 2;
-    .clearfix();
-
-    &:empty {
-        display: none;
-    }
-
-    > ul > .level-top {
-        display: inline-block;
-        line-height: 1.2;
-        vertical-align: top;
-        padding-right: 40px;
-
-        &:last-child {
-            padding-right: 0;
-        }
-
-        &.active {
-            > a:after {
-                opacity: 1;
-                border-bottom-color: @primary7;
-            }
-        }
-
-        &.hover {
-            > a:after {
-                border-bottom-color: @primary1;
-            }
-            > .submenu {
-                border-bottom: 1px solid @primary3;
-            }
-        }
-
-        &.hover,
-        &:hover {
-            > .submenu {
-                z-index: 2;
-            }
-            &:hover > a span,
-            &.parent.hover > a span,
-            &.parent > a span {
-                color: @primary6;
-            }
-            &:hover > a:after,
-            &.hover > a:after,
-            &.parent > a:after {
-                opacity: 1;
-            }
-        }
-
-        &.more {
-            &:after {
-                cursor: pointer;
-                content: "\e010";
-                font-family: "icons";
-                font-size: 16px;
-                display: inline-block;
-                padding: .6em .7em 1em;
-                margin-top: 0.4em;
-                border-radius: 4px 4px 0 0;
-                position: relative;
-                z-index: 1;
-            }
-
-            &.hover:after {
-                background: @primary1;
-            }
-
-            li.level-top {
-                width: 200px;
-                margin: 0 0 0 -10px !important;
-                padding: 7px 10px 7px 30px;
-                > a {
-                    font-size: 16px;
-                }
-                &.hover,
-                &:hover {
-                    background: @primary1;
-                    > a span {
-                        color: @primary6;
-                    }
-                    &.parent {
-                        .iconBefore(@content: @icon-arrow-right-thick, @margin: 0 8px 0 0, @font: "icons");
-                        &:before {
-                            float: right;
-                            color: @secondary1;
-                        }
-                    }
-                    .submenu {
-                        display: block !important;
-                    }
-                }
-                > a span {
-                    color: @primary5;
-                }
-                .submenu {
-                    display: none;
-                }
-                > .submenu {
-                    position: absolute;
-                    right: 0;
-                    padding: 0;
-                    left: 0;
-                    top: 0;
-                    margin-left: 230px;
-                    min-height: 100%;
-                    background: @primary1;
-                    .box-sizing();
-                    .box-shadow(0 10px 8px rgba(0,0,0,0.3));
-                    .no-boxshadow & {
-                        border: 2px solid @primary3;
-                        border-width: 0 2px 2px;
-                    }
-                    > ul {
-                        background: @primary1;
-                        position: relative;
-                        z-index: 1;
-                        padding: 10px;
-                    }
-                }
-            }
-            > .submenu {
-                background: none;
-                border-width: 0;
-                > ul {
-                    position: relative;
-                }
-            }
-        }
-
-        > a {
-            position: relative;
-            display: inline-block;
-            vertical-align: top;
-            padding: 1em 0;
-            font-size: 16px;
-            text-align: center;
-            color: @primary5;
-            &:after {
-                opacity: 0;
-                content: '';
-                overflow: hidden;
-                display: block;
-                position: absolute;
-                bottom: 0;
-                left: 50%;
-                zoom: 1;
-                z-index: 2;
-                color: @primary6;
-                .arrow(top, 10px, @primary1);
-            }
-            > span {
-                color: @primary5;
-            }
-            &:active span,
-            &:focus span {
-                color: @primary6;
-            }
-            &:active:after,
-            &:focus:after {
-                opacity: 1;
-            }
-        }
-
-        > .submenu {
-            display: none;
-            position: absolute;
-            left: 0;
-            top: 100%;
-            background: @primary1;
-            width: 100%;
-            z-index: 1;
-            > ul {
-                height: @subNavHeight;
-                padding-top: @subNavPadding;
-                padding-bottom: @subNavPadding;
-                li.column {
-                    .box-sizing( border-box );
-                    width: 25%;
-                    display: inline-block;
-                    padding-right: 30px;
-                    vertical-align: top;
-                }
-                .level1 > a {
-                    text-transform: uppercase;
-                }
-                .parent ul {
-                    padding-left: 10px;
-                }
-                li {
-                    margin: 8px 0;
-                    &:fist-child {
-                        margin-top: 0;
-                    }
-                }
-            }
-        }
-    }
-}
-
-@media only screen and (max-width: 640px) {
-    html.opened {
-        overflow: hidden;
-    }
-
-    body {
-        width: 100%;
-        height: 100%;
-        &.opened {
-            -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-            position: relative;
-            height: 100%;
-            width: 100%;
-            overflow: hidden;
-
-            .navigation {
-                left: 0;
-                -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
-                box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
-                .transition(left .3s ease-out 0);
-            }
-            .page.wrapper {
-                margin-right: -86%;
-                cursor: pointer;
-            }
-        }
-    }
-
-    .page.wrapper {
-        position: relative;
-        width: 100%;
-        float: right;
-        margin: 0;
-        .transition(margin .3s ease-out 0);
-    }
-
-    .navigationLink() {
-        & > a {
-            display: block;
-            padding: 10px 20px;
-            text-transform: none;
-            font-size: 20px;
-            font-weight: 600;
-            border-bottom: 1px solid @primary2;
-            color: @primary6;
-            text-align: left;
-            &:hover,
-            &:visited {
-                color: @primary6;
-            }
-            &:active {
-                background: #dbdcd7;
-            }
-            &:after {
-                border: 0;
-            }
-        }
-    }
-
-    .navigationSubmenu() {
-        position: absolute;
-        display: block;
-        left: 100%;
-        top: 0;
-        width: 100%;
-        overflow-x: hidden;
-        background: @primary7;
-        .transition(left .3s ease-out 0);
-        &.opened {
-            left: 0;
-            z-index: 3;
-        }
-        > ul {
-            padding-top: 0;
-            padding-bottom: 0;
-            li {
-                margin: 0;
-                .navigationLink();
-            }
-            li.column {
-                width: 100%;
-                display: block;
-                padding-right: 0;
-            }
-            .parent ul {
-                padding-left: 0;
-            }
-        }
-    }
-
-    .navigation {
-        display: block;
-        position: absolute;
-        width: 86%;
-        left: -86%;
-        height: 100%;
-        background: @primary7;
-        overflow: auto;
-        border-right: #b6b8af 1px solid;
-        .box-sizing();
-        .transition(left .3s ease-out 0);
-
-        ul {
-            margin: 0;
-            padding: 0;
-            li.hidden {
-                display: none;
-            }
-        }
-
-        .nav {
-            .transition(left .3s linear 0);
-            position: relative;
-            overflow: hidden;
-            > .level-top {
-                display: block;
-                padding: 0;
-                background: @primary7;
-                .navigationLink();
-                > a span {
-                    color: @primary6;
-                }
-                &.parent {
-                    &:after {
-                        display: none;
-                    }
-                    > a {
-                        position: relative;
-                        .iconAfter(@content: @icon-arrow-right-thick, @size: 14px, @font: 'icons');
-                        text-transform: none !important;
-                        &:after {
-                            position: absolute;
-                            width: 18px;
-                            top: 15px;
-                            right: 17px;
-                            left: auto;
-                            opacity: 1;
-                            z-index: auto;
-                        }
-                    }
-                    > .submenu {
-                        .navigationSubmenu();
-                    }
-                }
-
-            }
-
-            .action.back {
-                a {
-                    background: @primary6;
-                    position: relative;
-                    color: @primary7 !important;
-                    border-bottom-color: transparent !important;
-                    cursor: pointer;
-                    .iconBefore(@icon-arrow-left-thick, 14px, 0, "icons");
-                    &:hover,
-                    &:active,
-                    &:visited {
-                        color: @primary7 !important;
-                        background: @primary6 !important;
-                    }
-                    &:before {
-                        position: absolute;
-                        top: 15px;
-                        left: 3px;
-                    }
-                    span:before {
-                        content: "";
-                    }
-                }
-                &.fixed {
-                    position: fixed;
-                    top: 0;
-                    left: 0;
-                    width: 86%;
-                    z-index: 1;
-                    -webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.6);
-                    box-shadow: 0 1px 5px rgba(0,0,0,0.6);
-                }
-            }
-
-            .parent {
-                &:after {
-                    display: none;
-                }
-                > a {
-                    position: relative;
-                    .iconAfter(@icon-arrow-right-thick, 14px, 0, "icons");
-                    &:after {
-                        position: absolute;
-                        top: 15px;
-                        right: 17px;
-                    }
-                }
-                .submenu {
-                    .navigationSubmenu();
-                }
-            }
-        }
-
-        .account.links {
-            .resetList();
-            > li > a {
-                background: @primary1;
-                padding: 10px 20px;
-                font-weight: 600;
-            }
-            a {
-                text-transform: capitalize;
-                position: relative;
-                display: block;
-                padding: 10px;
-                cursor: pointer;
-                font-size: 18px;
-                border-bottom: 1px solid @primary2;
-                font-weight: 400;
-                color: @primary6;
-                &:hover,
-                &:visited {
-                    color: @primary6 !important;
-                }
-                &:active {
-                    background: #dbdcd7 ;
-                }
-            }
-            .link.compare {
-                display: none;
-            }
-            .customer.welcome {
-                display: block  !important;
-                background: @primary1;
-                padding: 0 10px;
-                border-bottom: 1px solid @primary2;
-                .customer.name {
-                    position: relative;
-                    display: block;
-                    padding: 10px;
-                    cursor: pointer;
-                    font-size: 18px;
-                    font-weight: 600;
-                    .iconAfter(@icon-expand, 16px, 0, "icons");
-                    &:after {
-                        position: absolute;
-                        top: 10px;
-                        right: 7px;
-                    }
-                    &.active:after {
-                        content: "\e011";
-                    }
-                }
-                .menu {
-                    margin: 0;
-                    padding: 0;
-                    display: none;
-                    > ul {
-                        margin: 0;
-                        padding: 0;
-                        position: relative;
-                        float: none;
-                        border: none;
-                        background: @primary7;
-                        li {
-                            margin: 0;
-                        }
-                    }
-                }
-                &.active {
-                    border-bottom-color: transparent;
-                    .menu {
-                        display: block;
-                    }
-                }
-            }
-        }
-
-        .settings.panel {
-            border-bottom: 1px solid @primary2;
-            background: @primary1;
-            > .title {
-                font-weight: 600;
-                position: relative;
-                padding: 10px 20px;
-                cursor: pointer;
-                font-size: 18px;
-                .iconAfter(@icon-expand, 16px, 0, "icons");
-                &:after {
-                    position: absolute;
-                    top: 10px;
-                    right: 17px;
-                }
-            }
-            > .content {
-                display: none;
-                margin: 0 10px 10px;
-                background: @primary7;
-                border-bottom: 1px solid @primary2;
-
-                .switcher {
-                    padding: 10px 10px 15px;
-                    display: block;
-
-                    &:first-child {
-                        padding-bottom: 0;
-                    }
-                    .label {
-                        font-weight: 400;
-                        color: @primary6;
-                        font-size: 16px;
-                        display: block;
-                        padding-bottom: 5px;
-                    }
-                    .options {
-                        display: block;
-
-                        strong {
-                            color: @primary6;
-                            display: block;
-                            position: relative;
-                            padding: 10px 40px 10px 20px;
-                            cursor: pointer;
-                            font-size: 16px;
-                            .iconAfter(@icon-expand, 16px, 0, "icons");
-                            &:after {
-                                position: absolute;
-                                top: 10px;
-                                right: 17px;
-                            }
-                        }
-                        button {
-                            display: none;
-                        }
-                        ul {
-                            display: none;
-                            position: static;
-                            margin: 0 10px 10px;
-                            padding: 0;
-                            border: 0;
-                            min-width: 0;
-                            float: none;
-                            background: none;
-                            color: @primary6;
-                            font-size: 16px;
-
-                            li {
-                                margin: 0;
-                                padding: 10px 20px;
-                                border-bottom: 1px solid @primary2;
-
-                                a {
-                                    color: @primary6;
-                                }
-                            }
-                        }
-                        &.active {
-                            ul {
-                                display: block;
-                            }
-                            strong:after {
-                                content: "\e011";
-                            }
-                        }
-                    }
-                }
-            }
-            &.active {
-                > .content {
-                    display: block;
-                }
-                > .title:after {
-                    content: "\e011";
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/css/source/lib/sections.less b/app/design/frontend/Magento/plushe/css/source/lib/sections.less
deleted file mode 100644
index cd0788a1ef54ea09e0cacc384d49a31ed072309b..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/lib/sections.less
+++ /dev/null
@@ -1,203 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-.data-tabs() {
-    .clearfix();
-    position: relative;
-    z-index: 1;
-    > .item.title {
-        float: left;
-        > .switch {
-            display: block;
-            position: relative;
-            top: 1px;
-            z-index: 2;
-        }
-    }
-    > .item.content {
-        width: 100%;
-        float: right;
-        margin-left: -100%;
-        display: none;
-        .box-sizing();
-        &.active {
-            display: block;
-        }
-    }
-
-    .tabs > .term-content.active {
-        border: 1px solid #BFBFBF;
-        color: hsl(0, 0%, 50%);
-        display: block;
-    }
-}
-
-.data-tabs-styling() {
-    > .item.title {
-        margin-right: 1px;
-        min-height: 35px;
-        > .switch {
-            font-size: 14px;
-            line-height: 1;
-            font-weight: 600;
-            text-decoration: none;
-            padding: 11px 11px 8px;
-            border: 2px solid #e5e5e5;
-            background: rgba(0, 0, 0, 0.03);
-            border-bottom: none;
-            text-transform: uppercase;
-            border-radius: 4px 4px 0 0;
-        }
-        &:not(.disabled) > .switch:active,
-        &:not(.disabled) > .switch:focus,
-        &:not(.disabled) > .switch:hover,
-        &.active > .switch {
-            background: #fff;
-            border-width: 3px;
-            padding: 10px 10px 8px;
-            outline: none;
-        }
-        &.active > .switch {
-            padding: 10px 20px 11px !important;
-        }
-    }
-    > .item.content {
-        .clearfix;
-        margin-top: 36px;
-        padding: 20px;
-        &:before {
-            content: '';
-            border-top: 3px solid #e5e5e5;
-            width: 100%;
-            display: block;
-            position: absolute;
-            left: 0;
-            .box-sizing();
-            margin: -20px 0 20px;
-        }
-    }
-}
-
-.data-accordion() {
-    > .item.title {
-        .box-sizing();
-        width: 100%;
-        > .item.switch {
-            display: block;
-        }
-    }
-    > .item.content {
-        .clearfix();
-        .box-sizing();
-        display: none;
-        &.active {
-            display: block;
-        }
-    }
-}
-
-.data-accordion-styling() {
-    margin: 0;
-    padding: 0;
-    > .item.title {
-        margin: 3px 0 0;
-        > .switch {
-            display: block;
-            font-size: 14px;
-            line-height: 1;
-            font-weight: 600;
-            text-decoration: none;
-            padding: 11px;
-            border: 2px solid #e5e5e5;
-            background: #f8f8f8;
-            text-transform: uppercase;
-            border-radius: 4px;
-        }
-        &:not(.disabled) > .switch:active,
-        &:not(.disabled) > .switch:focus,
-        &:not(.disabled) > .switch:hover,
-        &.active > .switch {
-            background: #fff;
-            border-width: 3px;
-            padding: 10px;
-            outline: none;
-        }
-        &.active > .switch {
-            border-radius: 4px 4px 0 0;
-        }
-    }
-    > .item.content {
-        margin: 0;
-        padding: 20px;
-        background: #fff;
-    }
-}
-
-//  # Sections
-//
-//  ```html
-//  <dl class="product data items" data-sections="tabs">
-//    <dt class="data item title active" data-section="title">
-//        <a class="data switch" data-toggle="switch" href="#product.info.description">Details</a>
-//    </dt>
-//    <dd class="data item content active" id="product.info.description" data-section="content">
-//        <p>Fit to be tied. Get the perfect level of lift in our Tie-front Tankini. Featuring removable padding and cup-specific sizes for support and shaping. From our Forever Sexy Swim collection of push-up tops and bottoms in sun-loving colors and prints.</p>
-//        <p>- Removable push-up padding<br>- Lined hidden underwire cups<br>- Front tie<br>- Adjustable straps can be worn classic or cross-back<br>- Available in two lengths: 17 3/4" and 18 3/4"<br>- Imported Italian nylon/Lycra® spandex</p>
-//    </dd>
-//
-//    <dt class="data item title" data-section="title">
-//        <a class="data switch" data-toggle="switch" href="#product_tags">Tags</a>
-//    </dt>
-//    <dd class="data item content" id="product_tags" data-section="content">
-//        <p>A playful little push-up. Bring the lightweight lift and custom comfort of the Fabulous by Victoria’s Secret bra to the beach. This triangle top is finished with pretty ruching and a sweet center bow. From our fun, flirty Beach Sexy Swim Collection.</p>
-//        <p>- Ruched cups with center bow<br>- Push-up padding for extreme lift<br>- Underwire<br>- Ties at neck; looped back tie for adjustability and extra support<br>- Imported nylon/spandex</p>
-//    </dd>
-//
-//    <dt class="data item title" data-section="title">
-//        <a class="data switch" data-toggle="switch" href="#product_reviews">Reviews</a>
-//    </dt>
-//    <dd class="data item content" id="product_reviews" data-section="content">
-//        <p>Relaxed elegance. The flowy fit of this halter tankini makes beach style a breeze. The built in bra top provides just the right amount of support. Look slimmer in seconds® in this figure-loving top designed exclusively for Victoria’s Secret.</p>
-//        <p>- Built-in bra with molded foam padding<br>- Halter straps tie at neck<br>- Imported nylon/spandex</p>
-//    </dd>
-//  </dl>
-//  ```
-//
-
-@media only screen
-and (max-width : 99999px) {
-    .product.data {
-        .data-tabs();
-        .data-tabs-styling();
-    }
-}
-
-@media only screen
-and (max-width : 768px) {
-    .product.data {
-        .data-accordion();
-        .data-accordion-styling();
-    }
-}
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/css/source/lib/snippets.less b/app/design/frontend/Magento/plushe/css/source/lib/snippets.less
deleted file mode 100644
index fde287b1a244b79e3ea0510891f0fcd788eec338..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/lib/snippets.less
+++ /dev/null
@@ -1,552 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-.resetList(@margin: 0, @padding: 0) {
-    padding: @padding;
-    margin: @margin;
-    list-style-type: none;
-    list-style-image: none;
-}
-
-.borderColor (@color) when (lightness(@color) > 50%) {
-    border-color: darken(@color, 13%);
-}
-
-.borderColor (@color) when (lightness(@color) =< 50%) {
-    border-color: lighten(@color, 13%);
-}
-
-.borderColorI (@color) when (lightness(@color) > 50%) {
-    border-color: lighten(@color, 13%);
-}
-
-.borderColorI (@color) when (lightness(@color) =< 50%) {
-    border-color: darken(@color, 13%);
-}
-
-.pageWidth(@maxWidth: @LayoutMaxWidth, @minWidth: @LayoutMinWidth, @padding: 10px) {
-    padding-left: @padding;
-    padding-right: @padding;
-    margin: 0 auto;
-    min-width: (@minWidth - (2 * @padding));
-    max-width: (@maxWidth - (2 * @padding));
-}
-
-.transitionDelay(@delay) {
-    -webkit-transition-delay: @delay;
-    -moz-transition-delay: @delay;
-    -ms-transition-delay: @delay;
-    -o-transition-delay: @delay;
-    transition-delay: @delay;
-}
-
-.resetAction() {
-    border: none;
-    border-radius: 0;
-    background: none;
-    margin: 0;
-    padding: 0;
-    box-shadow: none;
-    text-shadow: none;
-    outline: none;
-}
-
-.actionLink() {
-    display: inline;
-    color: @link;
-    text-decoration: none;
-    &:focus,
-    &:active,
-    &:hover {
-        color: @linkHover;
-    }
-}
-
-.colorA(@c1, @c2) {
-    color: @c1;
-    > span {
-        color: @c1;
-    }
-    &:hover,
-    &:hover > span {
-        color: @c2;
-    }
-}
-
-.fieldStyle() {
-    margin: 0 0 10px;
-    &:last-child {
-        margin-bottom: 0;
-    }
-    .nested {
-        .field {
-            margin: 5px 0;
-        }
-        padding: 0;
-    }
-}
-
-.labelStyle() {
-    text-transform: uppercase;
-    font-weight: 600;
-    padding: 0 0 5px;
-}
-
-.formInline(@labelWidth: 50%) {
-    > .field {
-        .clearfix();
-    }
-    > .field > .control,
-    > .field > .label {
-        margin: 0;
-        float: left;
-        width: @labelWidth;
-        .box-sizing();
-    }
-    > .field > .control {
-        width: 100% - @labelWidth;
-    }
-    > .field.no-label {
-        .control {
-            margin-left: @labelWidth;
-        }
-    }
-}
-
-.profileBlockWithBg {
-    .box-sizing();
-    background: @primary1;
-    padding: 30px;
-}
-
-.visuallyHidden {
-    .visually-hidden()
-}
-
-
-//  #Forms mixins
-//
-//  Mixins for all form elements
-
-.controlStyling() {
-    .box-sizing();
-    background: @fieldBg;
-    border: 1px solid @primary3;
-    border-radius: 3px;
-    font: @baseFontWeight @baseFontSize @baseFont;
-    // Prevent background color leak outs
-    background-clip: padding-box;
-    outline: none;
-    &:focus {
-        border-color: @primary4;
-    }
-    .control & {
-        width: 100%;
-    }
-    &:disabled {
-        opacity: 0.5;
-    }
-}
-
-.inputText() {
-    .controlStyling();
-    height: 32px;
-    line-height: 1;
-    padding: 0 10px;
-    &::-webkit-input-placeholder {
-        line-height: 1.333;
-    }
-    &:-ms-input-placeholder {
-        line-height: 1.333;
-    }
-    .eq-ie8 & {
-        padding-top: 8px;
-    }
-}
-
-// *
-//    Forms
-// -------------------------------------- */
-.formFieldset() {
-    border: 0;
-    margin: 30px 10px 30px 30px;
-    padding: 0;
-    letter-spacing: -0.31em;
-    word-spacing: -0.43em;
-    > * {
-        letter-spacing: normal;
-        word-spacing: normal;
-    }
-    > .legend {
-        float: left;
-        font: @baseFontWeight @legendFontSize/1.2 @baseFont;
-        margin: -30px 30px 50px -30px;
-        width: 100%;
-        & + br {
-            display: block;
-            .clearfix();
-        }
-    }
-}
-
-.formField() {
-    .box-sizing();
-    margin: 0 0 20px;
-    > .label {
-        display: block;
-        padding-bottom: 5px;
-    }
-    .nested .field {
-        margin: 5px 0;
-    }
-    &.choice {
-        > .control {
-            width: auto;
-        }
-        > .label {
-            display: inline;
-        }
-        > input {
-            vertical-align: top;
-            margin-top: 2px;
-            margin-right: 5px;
-        }
-    }
-    &.required > .label > span:first-child:after {
-        content: '*';
-        color: @requiredField;
-    }
-    .addon {
-        display: table;
-        padding: 0;
-        width: 100%;
-        textarea,
-        select,
-        input {
-            box-shadow: none;
-            display: table-cell;
-            margin: 0;
-            width: 100%;
-        }
-        .addbefore,
-        .addafter {
-            height: 0;
-            white-space: nowrap;
-            display: inline-block;
-            display: table-cell;
-            vertical-align: middle;
-            width: 1px;
-            .inputText();
-        }
-    }
-    .note {
-        font-size: @baseFontSizeMiddle;
-        margin-top: 3px;
-        padding-left: 15px;
-        &:before {
-            border-bottom: 5px solid @baseColor;
-            border-left: 5px solid transparent;
-            border-right: 5px solid transparent;
-            content: '';
-            display: inline-block;
-            font-size: 0;
-            line-height: 0;
-            margin: 4px 0 0 -14px;
-            position: absolute;
-            vertical-align: top;
-            width: 0;
-        }
-    }
-}
-
-.formCols(@fieldWidth : 50%) {
-    > .field {
-        display: inline-block;
-        padding-right: 20px;
-        vertical-align: top;
-        width: @fieldWidth;
-    }
-    .nested .field {
-        width: 100%;
-    }
-    .actions {
-        margin-right: 30px;
-    }
-}
-
-.formCommon() {
-    .fieldset {
-        .box-sizing();
-        .formCols();
-        .formFieldset();
-        width: 690px;
-        background: @primary1;
-        padding: 30px 10px 30px 30px;
-        border: 0;
-        margin: 0 0 40px;
-        position: relative;
-        z-index: 1;
-        .legend {
-            float: left;
-            line-height: 1.2;
-            font-size: 20px;
-            font-weight: @baseFontWeight;
-            padding-bottom: 20px;
-            width: 100%;
-            padding: 0 40px 20px 0;
-            background: #fff;
-            margin: -30px -10px 30px -30px;
-            & + br {
-                display: block;
-                clear: both;
-            }
-        }
-        > .field {
-            .formField();
-            .fieldStyle();
-            > .label {
-                display: block;
-                padding: 0 0 5px;
-            }
-            margin-bottom: 20px;
-        }
-        > .field.note,
-        .field.street,
-        .field.choice.newsletter {
-            width: 100%;
-        }
-        .field.fullname {
-            width: 100%;
-            .fields.group-5 .field {
-                width: 20%;
-            }
-        }
-        .field.dob {
-            .fields.group .field {
-                .box-sizing();
-                width: 33%;
-                position: relative;
-                z-index: 1;
-                .label {
-                    position: absolute;
-                    top: 10px;
-                    font-size: @baseFontSizeMiddle;
-                    line-height: 16px;
-                }
-                .control {
-                    margin-left: 27px;
-                }
-                &:last-child {
-                    padding-right: 0;
-                    width: 34%;
-                }
-            }
-        }
-    }
-    .action.save,
-    .action.submit,
-    .action.add {
-        &:extend(.primary.action all);
-    }
-    .actions {
-        .clearfix();
-        .primary {
-            float: right;
-        }
-        .secondary {
-            float: left;
-        }
-        width: 690px;
-    }
-    .fieldset.create.account {
-        &:after {
-            content: attr(data-hasrequired);
-            display: block;
-            position: absolute;
-            top: 100%;
-            left: 0;
-            padding: 10px 0 0;
-            letter-spacing: normal;
-            word-spacing: normal;
-            color: @secondary1;
-        }
-    }
-}
-
-// *
-//    Icons
-// -------------------------------------- */
-
-.iconBefore(@content: '', @size: 16px, @margin: 0, @font: 'icons') {
-    &:before {
-        font-family: "@{font}";
-        font-size: @size;
-        line-height: @size;
-        height: @size;
-        margin: @margin;
-        overflow: hidden;
-        content: @content;
-        font-style: normal;
-        speak: none;
-        font-weight: normal;
-        -webkit-font-smoothing: antialiased;
-        display: inline-block;
-        vertical-align: middle;
-        text-align: center;
-    }
-}
-
-.iconAfter(@content: '', @size: 16px, @margin: 0, @font: 'icons') {
-    &:after {
-        font-family: "@{font}";
-        font-size: @size;
-        line-height: @size;
-        height: @size;
-        margin: @margin;
-        overflow: hidden;
-        content: @content;
-        font-style: normal;
-        speak: none;
-        font-weight: normal;
-        -webkit-font-smoothing: antialiased;
-        display: inline-block;
-        vertical-align: middle;
-        text-align: center;
-    }
-}
-
-.iconHideText(@limitWidth: 16px) {
-    width: @limitWidth;
-    display: block;
-    line-height: 0;
-    white-space: nowrap;
-    vertical-align: middle;
-    text-align: center;
-    text-indent: -999em;
-    &:active {
-        outline: 0;
-    }
-    &:after {
-        text-indent: 0;
-        display: block;
-        margin: 0;
-    }
-}
-
-.iconShowText() {
-    text-indent: 0;
-    line-height:inherit;
-    height:inherit;
-}
-
-.iconRemove(@position: 'after') when (@position = 'after') {
-    &:after {
-        display: none;
-    }
-}
-
-.iconRemove(@position: 'after') when (@position = 'before') {
-    &:before {
-        display: none;
-    }
-}
-
-/*
-    Responsive
--------------------------------------- */
-
-.mobileAction {
-    .box-sizing();
-    display: block;
-    margin: 0 auto 15px;
-    padding: 10px;
-    width: 100%;
-    max-width: 100%;
-    line-height: 1;
-    float: none;
-    text-align: center;
-    text-decoration: none;
-    text-transform: uppercase;
-    border: none;
-    span {
-        font-size: 18px;
-    }
-}
-
-.mobilePrimaryAction {
-    .mobileAction();
-    background-color: @primaryActionBg;
-    color: @primaryActionColor;
-}
-
-.mobileSecondaryAction {
-    .mobileAction();
-    background-color: @secondaryActionBg;
-    color: @secondaryActionColor;
-}
-
-.formResponsive() {
-    .fieldset {
-        width: 100%;
-        padding: 20px;
-        margin: 0 -20px;
-        -webkit-box-sizing: content-box;
-        -moz-box-sizing: content-box;
-        box-sizing: content-box;
-        .legend {
-            margin: 0;
-            padding: 0 0 10px 0;
-            background: transparent;
-        }
-        > .field {
-            width: 100%;
-            display: block;
-            padding-right: 0;
-        }
-    }
-    .action.save,
-    .action.submit,
-    .action.add {
-        .mobilePrimaryAction();
-    }
-    .actions {
-        width: 100%;
-        margin-top: 15px;
-        .primary {
-            float: none;
-        }
-        .secondary {
-            margin: 15px 0 0;
-            float: none;
-            text-align: center;
-        }
-    }
-    .fieldset.create.account {
-        &:after {
-            content: attr(data-hasrequired);
-            position: relative;
-        }
-    }
-}
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/css/source/responsive/responsive.less b/app/design/frontend/Magento/plushe/css/source/responsive/responsive.less
deleted file mode 100644
index 14e6642f56ef1055d9f872a9172b232477f59f0e..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/responsive/responsive.less
+++ /dev/null
@@ -1,2378 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-///* Smartphones (portrait and landscape) ----------- */
-//@media only screen
-//and (min-device-width : 320px)
-//and (max-device-width : 480px) {
-///* Styles */
-//}
-//
-///* Smartphones (landscape) ----------- */
-//@media only screen
-//and (min-width : 321px) {
-///* Styles */
-//}
-//
-///* Smartphones (portrait) ----------- */
-//@media only screen
-//and (max-width : 320px) {
-///* Styles */
-//}
-//
-///* iPads (portrait and landscape) ----------- */
-//@media only screen
-//and (min-device-width : 768px)
-//and (max-device-width : 1024px) {
-///* Styles */
-//}
-//
-///* iPads (landscape) ----------- */
-//@media only screen
-//and (min-device-width : 768px)
-//and (max-device-width : 1024px)
-//and (orientation : landscape) {
-///* Styles */
-//}
-//
-///* iPads (portrait) ----------- */
-//@media only screen
-//and (min-device-width : 768px)
-//and (max-device-width : 1024px)
-//and (orientation : portrait) {
-///* Styles */
-//}
-//
-///* Desktops and laptops ----------- */
-//@media only screen
-//and (min-width : 1224px) {
-///* Styles */
-//}
-//
-///* Large screens ----------- */
-//@media only screen
-//and (min-width : 1824px) {
-///* Styles */
-//}
-//
-///* iPhone 4 ----------- */
-//@media
-//only screen and (-webkit-min-device-pixel-ratio : 1.5),
-//only screen and (min-device-pixel-ratio : 1.5) {
-///* Styles */
-//}
-
-/* Smartphones (portrait) ----------- */
-@media only screen
-and (max-width : @breakPoint1) {
-    .scrollTable {
-        .wrapper.table {
-            overflow-x: auto;
-        }
-    }
-
-    html {
-        height: 100%;
-    }
-
-    body {
-        padding-top: 0 !important;
-        -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-    }
-
-    html,
-    .columns,
-    .footer > .content,
-    .page.main > .page.title,
-    .page.messages {
-        min-width: 0;
-    }
-
-    .columns,
-    .page.main > .page.title,
-    .page.messages {
-        padding-left: 20px;
-        padding-right: 20px;
-    }
-
-    .column.main {
-        min-height: 0;
-    }
-
-    .column.left {
-        padding-right: 0;
-    }
-
-    .column.right {
-        padding-left: 0;
-    }
-
-    .layout-1 .column.main {
-        float: none;
-        display: block;
-    }
-
-    .layout-2-left {
-        .column.main {
-            float: none !important;
-            width: 100%;
-            display: block;
-        }
-        .column.left {
-            float: none;
-            width: 100%;
-            display: block;
-        }
-    }
-
-    .layout-2-right {
-        .column.main {
-            float: none;
-            width: 100%;
-            display: block;
-        }
-        .column.right {
-            float: none;
-            width: 100%;
-            display: block;
-        }
-    }
-
-    .layout-3 {
-        .column.main {
-            width: 100%;
-            float: none !important;
-            display: block !important;
-        }
-        .column.left {
-            float: none;
-            width: 100%;
-            display: block;
-        }
-        .column.right {
-            float: none !important;
-            display: block !important;
-            width: 100%;
-        }
-    }
-
-    .column.main .block,
-    .sidebar .block {
-        > .title {
-            strong {
-                font-weight: 400;
-                font-size: 20px;
-            }
-        }
-    }
-
-    .notice.global.site {
-        position: static;
-    }
-
-    .outer.wrapper {
-        overflow: hidden;
-        position: relative;
-    }
-
-    .active-nav {
-        height: 100%;
-        .outer.wrapper {
-            height: 100%;
-            width: 100%;
-        }
-    }
-
-    .products.wrapper .products.list {
-        .item {
-            .product.actions {
-                opacity: 1;
-                visibility: visible;
-                .action.tocart,
-                .secondary {
-                    visibility: visible;
-                    width: 100%;
-                }
-                .action.tocart {
-                    padding: 10px 11px
-                }
-                .primary {
-                    margin: 12px 0;
-                }
-            }
-            .secondary {
-                margin-left: 0;
-                border: none;
-                .box-sizing();
-                position: static;
-                .action {
-                    width: 100%;
-                    padding: 10px 0;
-                    display: block;
-                }
-            }
-            &:hover {
-                border: 1px solid transparent;
-                background: transparent;
-            }
-        }
-    }
-
-    .search.results,
-    .category.view {
-        .toolbar {
-            .pager {
-                display: none;
-                .pages {
-                    > ol {
-                        line-height: 33px;
-                        a,
-                        strong {
-                            padding: 0 5px;
-                        }
-                    }
-                }
-            }
-            .sorter,
-            .limiter {
-                select {
-                    padding: 5px 10px 4px;
-                }
-            }
-            .modes {
-                float: right;
-                margin-right: 0;
-                margin-left: 0;
-                .mode {
-                    span {
-                        width: 18px;
-                        &:after {
-                            font-size: 18px;
-                            width: 18px;
-                            height: 18px;
-                            line-height: 18px;
-                        }
-                    }
-                    &.grid {
-                        .iconAfter(@icon-grid, 18px, 0, "icons");
-                        .iconHideText(18px);
-                        display: inline-block;
-                    }
-                    &.list {
-                        .iconAfter(@icon-list, 18px, 0, "icons");
-                        .iconHideText(18px);
-                        display: inline-block;
-                    }
-                }
-            }
-        }
-        .toolbar.bottom .toolbar {
-            .pager {
-                display: block;
-            }
-            .settings {
-                display: none;
-            }
-        }
-        .products.wrapper.grid .products.list .item.product {
-            width: 50%;
-            .box-sizing();
-            .secondary {
-                background: transparent;
-            }
-        }
-        .products.wrapper.list .products.list .item.product {
-            .product.photo {
-                float: none;
-            }
-            .product.details {
-                display: block;
-                padding: 15px 0 0;
-                text-align: center;
-                .product.name {
-                    font-size: 18px;
-                }
-                .price-box {
-                    font-size: 16px;
-                }
-            }
-        }
-        .product.photo {
-            .img.photo.container {
-                position: static !important;
-                width: auto !important;
-                height: auto !important;
-                img {
-                    position: static !important;
-                    width: auto !important;
-                    height: auto !important;
-                }
-            }
-        }
-    }
-
-    img {
-        max-width: 100%;
-    }
-
-    .page.wrapper {
-        width: 100%;
-        float: right;
-        position: relative;
-        @tparams: margin .3s ease-out 0;
-        .transition(@tparams);
-        .active-nav & {
-            margin-right: -86%;
-        }
-        .navigation + .widget.static.block,
-        .breadcrumbs + .widget.static.block {
-            margin: 50px 0 0;
-        }
-        & + .widget.static.block {
-            display: none;
-        }
-    }
-
-    // Header
-    .page.header {
-        padding: 0;
-        position: relative;
-        margin-bottom: 35px;
-        .switcher,
-        .links,
-        .panel {
-            display: none;
-        }
-        .content {
-            position: relative;
-            min-width: 0;
-            max-width: 100%;
-            padding: 0;
-        }
-        .logo {
-            float: none;
-            width: 100%;
-            text-align: center;
-            padding: 10px 0;
-        }
-        .block.search {
-            display: block;
-            height: 35px;
-            padding: 0;
-            margin: 15px -15px 0 0;
-            float: none;
-            text-align: left;
-            position: relative;
-            z-index: 13;
-            position: absolute;
-            top: 100%;
-            left: 0;
-            right: 65px;
-            .content {
-                padding-left: 65px;
-            }
-            .field {
-                float: none;
-            }
-            .label {
-                display: inline-block;
-                width: 32px;
-                height: 32px;
-                position: absolute;
-                top: 0;
-                left: 60px;
-                text-indent: -9999px;
-                z-index: 1;
-            }
-            .control {
-                width: auto;
-                float: none;
-                .input-text {
-                    width: 0;
-                    margin-right: 0;
-                    height: 35px;
-                    padding: 0;
-                    margin-right: 32px;
-                    border: 1px solid transparent;
-                    box-sizing: content-box;
-                    text-indent: 10px;
-                    @tparams: all .3s linear 0;
-                    .transition(@tparams);
-                    &:focus {
-                        margin-right: 0;
-                        width: 100%;
-                        padding: 0 38px 0 0;
-                        border-color: @primary3;
-                    }
-                }
-            }
-            .actions {
-                margin-left: -105px;
-                position: relative;
-                left: 65px;
-                .action.search {
-                    background: none;
-                    border: none;
-                    span {
-                        .iconAfter(@icon-magnifying-glass, 22px, 0, "icons");
-                        color: @primary6;
-                        .iconHideText(22px);
-                        &:after {
-                            height: 24px;
-                            line-height: 24px;
-                        }
-                    }
-                }
-            }
-            .search.autocomplete {
-                top: 35px !important;
-                width: 100% !important;
-                border: none;
-            }
-        }
-        .minicart.wrapper {
-            position: absolute;
-            top: 100%;
-            right: 20px;
-            margin: 15px 0 0;
-            .action.showcart {
-                z-index: 1;
-                margin: 0;
-                color: @primary5;
-            }
-            .block.minicart {
-                display: none;
-            }
-        }
-        .widget.static.block {
-            display: none;
-        }
-    }
-
-    // Toggle Nav
-    .action.toggle.nav {
-        display: block;
-        margin-top: 19px;
-        position: absolute;
-        top: 100%;
-        left: 20px;
-        font-size: 0;
-        z-index: 14;
-        .iconAfter(@icon-menu, 32px, 0, "icons");
-        .iconHideText(32px);
-        cursor: pointer;
-        &:before {
-            position: absolute;
-            width: 100%;
-            height: 100%;
-            left: -100%;
-            top: -20px;
-            padding: 20px 0;
-            content: "";
-        }
-        .active-nav &:before {
-            position: fixed;
-            padding: 0;
-            left: 86%;
-            right: 0;
-            top: 0;
-            bottom: 0;
-        }
-    }
-
-    // Breadcrumbs
-    .breadcrumbs {
-        display: none;
-    }
-
-    // Footer
-    .footer {
-        padding: 30px 0;
-        > .content {
-            padding: 0 20px;
-        }
-        .block.newsletter {
-            width: 100%;
-            float: none;
-            margin-bottom: 30px;
-        }
-        .links {
-            width: 45%;
-            margin: 0 5% 0 0;
-            float: left;
-
-            & ul > li {
-                margin-bottom: 12px;
-            }
-            li {
-                display: block;
-                margin-bottom: 12px;
-                &:after {
-                    content: '';
-                }
-                a {
-                    font-size: 16px;
-                }
-            }
-            & + .links li:first-child:before {
-                content: '';
-            }
-        }
-        .copyright {
-            padding-top: 20px;
-            clear: both;
-            font-size: 12px;
-            color: @primary3;
-        }
-    }
-
-    // *
-    // *    Mage_Checkout
-    // *
-    // *    Shopping Cart
-    // ----------------------------------------------------------------------------- */
-    .checkout-cart-index {
-        .page.main > .page.title {
-            margin: 0 0 15px;
-            padding: 0;
-            h1 {
-                border-top: 2px solid @primary2;
-                display: block;
-                margin: 0 10px;
-                padding: 17px 0 0;
-                span {
-                    font-size: 36px;
-                }
-            }
-            .checkout.methods.items {
-                display: block;
-                padding: 12px 10px;
-            }
-        }
-        .checkout.methods.items {
-            background: @primary1;
-            margin: 15px 0 0;
-            padding: 0;
-            text-align: center;
-            > .item {
-                background: @commonBg;
-                margin: 0;
-                padding: 0 10px 20px;
-                &:first-child {
-                    padding-top: 20px;
-                }
-            }
-            .action {
-                float: none;
-            }
-            .checkout.paypal.after:after {
-                line-height: 1;
-            }
-        }
-
-        // PayPal retina button
-        .paypal.checkout.paypal-logo {
-            background: @paypalRetinaButton no-repeat 50% 50%;
-            background-size: 100%;
-            max-width: 255px;
-            width: 100%;
-            input {
-                opacity: 0;
-                width: 100%;
-            }
-        }
-
-        .action.checkout {
-            .mobilePrimaryAction();
-        }
-
-        // Cross-sell block
-        .block.crosssell {
-            border: 0;
-            padding: 0;
-            .content {
-                overflow-x: scroll;
-            }
-            .products.list.items.crosssell {
-                margin: 0;
-                white-space: nowrap;
-                .item.product {
-                    display: inline-block;
-                    float: none;
-                    margin: 0 0 10px;
-                    width: 43%;
-                    .product {
-                        white-space: normal;
-                        .actions {
-                            display: none;
-                        }
-                    }
-                    .img.photo.container {
-                        max-width: 100%;
-                    }
-                }
-            }
-        }
-    }
-
-    .cart {
-        // Main actions
-        &.main.actions {
-            text-align: center;
-            .clearfix();
-            .action {
-                &.update {
-                    .mobileSecondaryAction();
-                    margin-top: 15px;
-                }
-                &.continue {
-                    position: relative;
-                    top: 0;
-                }
-                &.clear {
-                    display: none;
-                }
-            }
-        }
-
-        &.table.wrapper,
-        &.summary {
-            float: none;
-            width: auto;
-        }
-
-        // Summary block
-        &.summary {
-            position: static;
-            display: block;
-            margin-left: -10px;
-            margin-right: -10px;
-            padding: 14px 10px;
-            .summary.title {
-                font-size: 22px;
-                padding-left: 12px;
-            }
-            .block {
-                font-size: 16px;
-                > .title {
-                    padding: 10px 12px;
-                    strong {
-                        font-size: 18px;
-                        &:after {
-                            font-size: 26px;
-                        }
-                    }
-                }
-                .items.methods {
-                    dd {
-                        margin-bottom: 10px;
-                    }
-                }
-                .fieldset {
-                    font-size: 14px;
-                }
-                input,
-                select,
-                .action span {
-                    font-size: 16px;
-                }
-            }
-        }
-
-        &.table.wrapper.detailed + .cart.summary {
-            margin-top: 0;
-        }
-
-        &.totals {
-            padding: 38px 10px 10px;
-            td,
-            th {
-                padding: 8px 0 8px 5px;
-            }
-            .mark {
-                padding-left: 9px;
-            }
-            .amount {
-                padding-right: 3px;
-            }
-            .mark,
-            .amount,
-            td:first-child strong {
-                font-size: 18px;
-                line-height: 30px;
-                vertical-align: bottom;
-            }
-            td:not(:first-child) strong {
-                font-size: 30px;
-                vertical-align: bottom;
-            }
-        }
-
-        // Cart products table
-        &.table.wrapper {
-            thead {
-                display: none;
-            }
-            .product.photo {
-                max-width: 60px;
-                position: absolute;
-                left: 0;
-                top: 25px;
-                span,
-                img {
-                    max-width: 60px;
-                    max-height: 60px;
-                }
-            }
-
-            .col {
-                &.item {
-                    display: block;
-                    padding: 25px 80px 10px 70px;
-                    position: relative;
-                    min-height: 60px;
-                    .product.name {
-                        font-size: 18px;
-                        margin: 0 0 10px;
-                    }
-                    dl {
-                        margin: 0;
-                        padding-bottom: 12px;
-                        clear: both;
-                        dt,
-                        dd {
-                            line-height: 1.1;
-                        }
-                        dd {
-                            margin-bottom: 12px;
-                            margin-left: 0;
-                        }
-                    }
-
-                }
-                &.price,
-                &.subtotal {
-                    display: block;
-                    padding: 0 20px 5px 70px;
-                    text-align: left;
-                    &:before {
-                        content: attr(data-label);
-                        display: inline-block;
-                        margin-right: 7px;
-                        min-width: 65px;
-                    }
-                    span:before {
-                        content: attr(data-label);
-                        display: inline-block;
-                        font-size: 12px;
-                        margin-right: 7px;
-                    }
-                }
-                &.price {
-                    margin-top: -30px;
-                }
-                &.price.excl.tax + .col.price.incl.tax {
-                    &:before {
-                        visibility: hidden;
-                    }
-                }
-
-                &.subtotal.excl.tax + .col.subtotal.incl.tax {
-                    &:before {
-                        visibility: hidden;
-                    }
-                }
-
-                &.qty {
-                    display: block;
-                    position: absolute;
-                    top: 15px;
-                    right: 5px;
-                    &:before {
-                        content: attr(data-label);
-                        display: inline-block;
-                        font-size: 14px;
-                        margin-bottom: 7px;
-                        text-transform: uppercase;
-                    }
-                    + .col.subtotal {
-                        padding-top: 8px;
-                        padding-left: 70px;
-                    }
-                    input {
-                        font-size: 16px;
-                    }
-                }
-            }
-
-            .item.info {
-                .clearfix();
-                display: block;
-                position: relative;
-                font-size: 16px;
-            }
-
-            .item.actions {
-                border-bottom: 1px solid @primary2;
-                td {
-                    padding-bottom: 20px;
-                    padding-top: 12px;
-                    &:before {
-                        display: none;
-                    }
-                    .action {
-                        margin-left: 25px;
-                    }
-                }
-                div.actions {
-                    padding: 0;
-                }
-                .action.delete span:after {
-                    margin-top: -2px;
-                }
-            }
-
-            .items.data {
-                tbody:nth-child(2n) tr {
-                    background: @commonBg;
-                }
-            }
-        }
-    }
-
-    // *
-    // *    Mage_Checkout
-    // *
-    // *    One page Checkout
-    // ----------------------------------------------------------------------------- */
-
-    // Checkout progress block
-    .opc.wrapper {
-        float: none;
-        margin: 0 -18px;
-        width: auto;
-
-        // Step title
-        > .opc .section {
-            > .step-title {
-                padding: 20px;
-                h2 {
-                    font-size: 22px;
-                }
-            }
-
-            &.allow > .step-title h2:after {
-                display: none;
-            }
-        }
-
-        // Forms
-        .form:not(.login) {
-            font-size: 16px;
-            &:after {
-                display: none;
-            }
-
-            .fieldset > .field {
-                display: block;
-                padding: 0;
-                width: 100%;
-            }
-
-            input,
-            select,
-            textarea {
-                font-size: 16px;
-            }
-
-            .field {
-                &.fullname + .field.company,
-                &.name-lastname + .field.company,
-                &.country,
-                &.taxvat {
-                    margin: 0 0 10px;
-                }
-                .nested {
-                    padding: 0;
-                    .field {
-                        margin-bottom: 0;
-                    }
-                }
-            }
-
-            .actions {
-                margin: 40px 0 10px;
-                position: relative;
-                text-align: center;
-                .action {
-                    &.continue {
-                        float: none;
-                        padding: 18px 0 16px;
-                        width: 90%;
-                        span {
-                            font-size: 24px;
-                            line-height: 26px;
-                        }
-                    }
-                    &.back span:before {
-                        display: none;
-                    }
-                }
-                .secondary {
-                    clear: none;
-                    float: none;
-                    padding-top: 27px;
-                    text-align: center;
-                }
-            }
-
-            .choice input {
-                margin-top: 3px;
-            }
-        }
-
-        // Gift messages
-        .gift.message {
-            dd {
-                margin-left: 0;
-            &.options.individual .product {
-                    float: none;
-                }
-            }
-        }
-
-        .gift-messages {
-            h3 {
-                font-size: 16px;
-            }
-            &-form {
-                ol,
-                ul {
-                    list-style: none;
-                    margin: 0;
-                    padding: 0;
-                }
-                .item {
-                    margin: 0 0 30px;
-                    position: relative;
-                    .details input,
-                    .details textarea {
-                        width: 100%;
-                    }
-                    .field:last-child {
-                        margin-bottom: 10px;
-                    }
-                }
-                .product-img-box {
-                    position: absolute;
-                    width: 60px;
-                    left: 0;
-                    top: 0;
-                    p {
-                        margin: 0 0 10px;
-                    }
-                    img {
-                        max-height: 60px;
-                        max-width: 60px;
-                    }
-                }
-                .product-name {
-                    font-size: 18px;
-                    font-weight: 600;
-                    margin: 0 0 10px;
-                }
-                .details {
-                    padding-left: 70px;
-                }
-            }
-        }
-
-        // Payment methods
-        .items.methods.payment {
-            dt {
-                font-weight: normal;
-                margin: 0 0 10px;
-            }
-            dd {
-                margin: 0;
-                padding: 0;
-                > ul {
-                    list-style: none;
-                    margin: 0;
-                    padding: 5px 10px 15px 20px;
-                    > li {
-                        margin: 5px 0 0;
-                    }
-                    label {
-                        display: block;
-                        em {
-                            display: none;
-                        }
-                        &.required:after {
-                            color: @secondary1;
-                            content: "*";
-                        }
-                    }
-                    .input-box > input,
-                    .input-box > select {
-                        width: 100%;
-                    }
-                    .v-fix {
-                        display: inline-block;
-                    }
-                }
-            }
-        }
-
-        // Order review table
-        .order-review {
-            font-size: 16px;
-            .review.table.wrapper {
-                margin-bottom: 10px;
-            }
-            .order.review.data {
-                th,
-                td {
-                    padding-left: 0;
-                    padding-right: 5px;
-                    text-align: left;
-                    &.qty {
-                        text-align: center;
-                    }
-                }
-            }
-            th.col.item,
-            th.col.price,
-            th.col.subtotal {
-                white-space: nowrap;
-            }
-            th.excl.tax span,
-            th.col.incl.tax span {
-                font-size: 12px;
-            }
-        }
-
-        .grand.total {
-            display: block;
-            .clearfix();
-            .mark {
-                font-size: 16px;
-                white-space: nowrap;
-            }
-            .amount {
-                padding: 0;
-            }
-        }
-
-        .checkout.submit.order .actions .primary {
-            float: none;
-        }
-
-        .order-review .actions {
-            text-align: center;
-            .secondary {
-                float: none;
-                margin: 30px 0 0;
-            }
-            .action.checkout {
-                float: none;
-                padding: 18px 0 16px;
-                width: 90%;
-                span {
-                    font-size: 24px;
-                    line-height: 26px;
-                }
-            }
-            &.back span:before {
-                display: none;
-            }
-        }
-
-        // Load indicator
-//        .load.indicator {
-///*            left: 0;
-//            position: absolute;
-//            top: 10px;
-//            width: 100%;*/
-//        }
-    }
-
-    // Your Checkout Progress block
-    .block.progress.onepage {
-        background: @primary1;
-        border-top: 1px solid @primary2;
-        border-bottom: 1px solid @primary2;
-        float: none;
-        margin: 35px -18px 0;
-        width: auto;
-        > .title {
-            margin: 0;
-            padding: 11px 22px;
-            position: relative;
-            cursor: pointer;
-            strong {
-                font-size: 18px;
-                font-weight: 600;
-            }
-            &:before {
-                content: @icon-expand-mobile;
-                font-family: Arial, sans-serif;
-                font-weight: 400;
-                font-size: 30px;
-                position: absolute;
-                right: 20px;
-                top: 2px;
-            }
-            &.active:before {
-                top: 1px;
-                content: @icon-collapse-mobile;
-            }
-        }
-        > .content {
-            background: @commonBg;
-            display: none;
-            margin: 0 10px 10px;
-            padding: 10px;
-        }
-        dl {
-            margin: 0;
-        }
-        dt {
-            font-size: 20px;
-            font-weight: 200;
-            > a {
-                font-weight: 400;
-                font-size: 14px;
-                margin-left: 20px;
-                text-decoration: underline;
-            }
-        }
-        dd,
-        .complete .payment .title {
-            font-size: 16px;
-            line-height: 1.4;
-            font-weight: 400;
-            &:last-child {
-                margin: 0;
-            }
-        }
-        .separator {
-            display: none;
-        }
-    }
-
-    // Header checkout progress button
-    .action.toggle.checkout.progress {
-        background: none;
-        cursor: pointer;
-        display: block;
-        float: right;
-        height: auto;
-        margin: -52px 18px 0 0;
-        padding: 0;
-        overflow: hidden;
-        width: auto;
-    }
-
-    // Checkout login
-    .step.login.wrapper {
-        padding: 0 0 20px;
-        .block {
-            float: none;
-            font-size: 16px;
-            width: 100%;
-            &.guest {
-                margin: 0;
-                padding: 0;
-                &:before {
-                    display: none;
-                }
-                .actions {
-                    margin-left: 0;
-                }
-            }
-        }
-        .actions {
-            padding: 20px 0 0;
-            position: relative;
-            text-align: center;
-            width: 100%;
-            .secondary {
-                font-size: 14px;
-                margin: 15px 0 0;
-            }
-            .action {
-                &.login,
-                &.continue {
-                    width: 100%;
-                    span {
-                        font-size: 18px;
-                    }
-                }
-            }
-        }
-    }
-
-    /*
-        Magento_Checkout - Multishipping
-    -------------------------------------- */
-
-    .multicheckout {
-        &.progress {
-            width: 100%;
-            float: none;
-            li {
-                display: block;
-                padding: 10px 20px;
-                text-decoration: none;
-                font-size: 20px;
-                font-weight: 600;
-                border-bottom: 1px solid @primary2;
-                color: @primary6;
-                &.active {
-                    color: @secondary1;
-                }
-            }
-            + .form.address.edit {
-                float: none;
-                width: 100%;
-            }
-        }
-        &.form.address,
-        &.form.billing,
-        &.form.shipping,
-        &.form.overview,
-        &.success,
-        &.change.billing {
-            float: none;
-            width: 100%;
-        }
-        &.form.address {
-            .col.address select {
-                max-width: 100%;
-            }
-            .items.data {
-                display: block;
-                width: 100%;
-                thead {
-                    display: none;
-                }
-                tbody {
-                    display: block;
-                    width: 100%;
-                }
-                tr,
-                td {
-                    display: block;
-                    width: 100%;
-                    .box-sizing();
-                }
-                .col.product {
-                    .product.name {
-                        font-size: 18px;
-                    }
-                }
-                .col.delete {
-                    border-bottom: 1px solid @primary2;
-                    padding-bottom: 10px;
-                    margin-bottom: 20px;
-                }
-                .col.qty {
-                    text-align: left;
-                    padding-top: 0;
-                }
-            }
-        }
-        .actions {
-            .action {
-                width: 100%;
-                display: block;
-                float: none;
-                text-align: center;
-                margin-bottom: 10px;
-            }
-        }
-        .title,
-        .subtitle {
-            .action {
-                .mobilePrimaryAction();
-            }
-        }
-        > .block.shipping,
-        &.overview > .block.billing {
-            .box {
-                &.address {
-                    float: none;
-                    width: 100%;
-                }
-                &.method {
-                    float: none;
-                    width: 100%;
-                }
-                &.items {
-                    overflow-x: scroll;
-                }
-            }
-        }
-    }
-
-    // Login page
-
-    .customer-account-login {
-        .page.title {
-            display: none;
-        }
-    }
-
-    .login.container {
-        padding: 20px;
-        margin: 0 -20px;
-        .block {
-            float: none;
-            width: 100%;
-            > .title {
-                margin-bottom: 15px;
-            }
-            .actions {
-                position: static;
-                text-align: center;
-                bottom: 0;
-                width: 100%;
-                margin: 0;
-                padding: 0;
-                .secondary {
-                    float: none;
-                    margin: 15px 0 0;
-                }
-            }
-            &.login {
-                padding: 0;
-                .actions {
-                    margin: 20px 0 0;
-                }
-            }
-            &.new {
-                padding: 0;
-                .actions {
-                    margin: 20px 0 0;
-                }
-            }
-        }
-        .action.login,
-        .action.create {
-            .mobilePrimaryAction();
-        }
-    }
-
-    .form.login {
-        .fieldset.login {
-            .field {
-                .label {
-                    padding: 0 0 5px 0;
-                    display: block;
-                    width: 100%;
-                    float: none;
-                    font-size: 16px;
-                    text-align: left;
-                }
-                .control {
-                    width: 100%;
-                }
-            }
-        }
-    }
-
-    /*
-        Forms
-    -------------------------------------- */
-    .form.send.friend,
-    .form.address.edit,
-    .form.edit.account,
-    .form.search.advanced,
-    .form.orders.search,
-    .form.contact,
-    .form.password.forget,
-    .form.create.account,
-    .form.wishlist.share,
-    .form.password.reset,
-    .form.add.tag,
-    .form.paypal.review {
-        .formResponsive();
-    }
-
-    .form.search.advanced,
-    .form.orders.search,
-    .form.contact {
-        padding: 20px;
-        margin: 0 -20px;
-        .actions {
-            padding-right: 0;
-            margin-top: 20px;
-            text-align: center;
-        }
-        .action {
-            .mobilePrimaryAction();
-        }
-        .fields.range {
-            display: table;
-            width: 100%;
-            > .field {
-                display: table-cell;
-                width: 50%;
-            }
-        }
-    }
-
-    .form.contact {
-        .fieldset {
-            .field {
-                &.comment {
-                    width: 100%;
-                    margin-left: 0;
-                }
-            }
-        }
-    }
-
-    .form.send.friend {
-        .fieldset.recipients {
-            .actions .primary {
-                 float: none;
-            }
-        }
-    }
-
-    /*
-        Mage_Customer - Account
-    ----------------------------------------------------------------------------- */
-    .layout-2-left.account {
-        .column.main {
-            display: block;
-            width: 100%;
-            float: none;
-        }
-        .column.left {
-            border-top: 4px solid @primary2;
-            display: block;
-            width: 100%;
-            float: none;
-            margin-top: 20px;
-            padding-top: 20px;
-        }
-    }
-
-    .sales-order-history,
-    .review-customer-index,
-    .sales-order-view,
-    .sales-order-invoice,
-    .adminhtml-order-shipment,
-    .sales-order-creditmemo,
-    .checkout-onepage-index .order-review,
-    .downloadable-customer-products,
-    .form.wishlist.items,
-    .block.dashboard.orders,
-    .block.billing.agreements {
-        &:extend(.scrollTable all);
-    }
-
-    .accountActions {
-        .primary,
-        .secondary {
-            float: none;
-        }
-        .primary {
-            .action {
-                .mobilePrimaryAction();
-            }
-        }
-        .secondary {
-            margin-bottom: 15px;
-            .action.back {
-                display: block;
-                float: none;
-                text-align: center;
-            }
-        }
-    }
-
-    .account {
-        .column.main {
-            .my-account,
-            .block,
-            .form {
-                .actions {
-                    &:extend(.accountActions all);
-                }
-            }
-            > .actions {
-                &:extend(.accountActions all);
-            }
-        }
-        > .block,
-        .my-account > .block {
-            margin-bottom: 20px;
-        }
-    }
-
-    .billing-agreements > .actions,
-    .recurring-payments .buttons-set {
-        text-align: center;
-        margin-bottom: 20px;
-    }
-
-    // Account navigation
-    .block.account.nav {
-        .content {
-            margin: 0 -20px;
-            .items {
-                > li {
-                    margin-bottom: 0;
-                    a,
-                    strong {
-                        display: block;
-                        padding: 10px 20px;
-                        text-decoration: none;
-                        font-size: 20px;
-                        font-weight: 600;
-                        border-bottom: 1px solid @primary2;
-                        color: @primary6;
-                    }
-                    &.current strong {
-                        color: @secondary1;
-                    }
-                }
-            }
-        }
-    }
-
-    // Toggle account navigation
-    .page.title {
-        .toggle.accountnav {
-            padding-top: 12px;
-            font-size: 16px;
-            background: transparent;
-            cursor: pointer;
-        }
-        > .action {
-            .mobilePrimaryAction();
-        }
-    }
-
-    .block.dashboard {
-        .box {
-            float: none;
-            width: 100%;
-            margin-bottom: 15px;
-        }
-        .recent.orders {
-            .col.shipping {
-                display: none;
-            }
-        }
-    }
-
-    .block.dashboard:not(.welcome):not(.orders) {
-        .content {
-            padding: 20px;
-            margin: 0 -20px;
-        }
-        .subtitle {
-            margin-bottom: 10px;
-        }
-    }
-
-    .data.table.orders {
-        margin: 0 -8px;
-        td,
-        th {
-            padding: 10px 8px;
-            &.col.actions {
-                .action {
-                    display: block;
-                    &:last-child {
-                        margin-right: 0;
-                    }
-                }
-            }
-        }
-        .col.shipping {
-            display: none;
-        }
-    }
-
-    /*
-        Address book
-    -------------------------------------- */
-
-    .block.addresses:not(.dashboard) {
-        margin-bottom: 20px;
-        .content {
-            padding: 20px;
-            margin: 0 -20px;
-        }
-        &.default {
-            float: none;
-            width: 100%;
-        }
-        &.list {
-            float: none;
-            width: 100%;
-        }
-    }
-
-    .form.newsletter {
-        .action.save {
-            .mobilePrimaryAction();
-        }
-    }
-
-    .account {
-        .column.main {
-            .tags.items.cloud {
-                .item {
-                    font-size: 18px;
-                }
-            }
-        }
-    }
-
-    /*
-        My Account -> Billing agreements
-    -------------------------------------- */
-    .billing.agreements {
-        .form.new.agreement {
-            .formCols(100%);
-            .action.create {
-                width: 100%;
-                padding-top: 7px;
-                padding-bottom: 6px;
-            }
-        }
-    }
-
-
-    /*
-        My Account -> Wishlist
-    -------------------------------------- */
-    .account {
-        .form.wishlist.items {
-            .data.table.wishlist {
-                margin-bottom: 0;
-                thead {
-                    display: none;
-                }
-                textarea {
-                    width: 15em;
-                }
-            }
-        }
-    }
-
-    /*
-        My Account -> My orders
-    ----------------------------------------------------------------------------- */
-
-    .order.details {
-        .order.toolbar {
-            clear: both;
-            float: none;
-            .action {
-                margin: 0 0 10px;
-                display: block;
-                font-size: 18px;
-            }
-        }
-        .block.order {
-            float: none;
-            width: 100%;
-            padding: 0;
-            .content {
-                padding: 20px;
-                margin: 0 -20px;
-            }
-        }
-        .order.info {
-            > dt {
-                margin-bottom: 15px;
-            }
-            > dd {
-                padding: 0;
-                background: @primary7;
-                margin: 0 -20px;
-                .items {
-                    .item {
-                        float: none;
-                        margin-right: 0;
-                        a, strong {
-                            display: block;
-                            padding: 10px 20px;
-                            text-decoration: none;
-                            font-size: 20px;
-                            font-weight: 600;
-                            border-bottom: 1px solid @primary2;
-                            color: @primary6;
-                        }
-                        strong {
-                            color: @secondary1;
-                        }
-                    }
-                }
-            }
-        }
-        .subtitle.caption {
-            margin-bottom: 20px;
-        }
-        .additional.details {
-            .order.comments {
-                padding: 20px;
-                margin: 0 -20px 20px;
-            }
-        }
-        > .actions {
-            margin-bottom: 20px;
-        }
-        .wrapper.table {
-            margin-bottom: 45px;
-            .data.table.order {
-                margin-bottom: 0;
-            }
-        }
-    }
-
-    // Widgets
-    .widget.static.block {
-        margin-bottom: 15px;
-    }
-
-    /* Product Page */
-    .layout-1 {
-        .columns {
-            padding-left: 18px;
-            padding-right: 18px;
-        }
-        .column.main {
-            float: none;
-        }
-    }
-
-    .product.info.main,
-    .product.photo.main,
-    .product.media,
-    .product.data,
-    .box.tocart .field,
-    .box.tocart .actions,
-    .product.photo.thumbs {
-        float: none;
-        width: auto;
-        max-width: 100%;
-    }
-
-    .product.photo.thumbs {
-        padding: 0;
-        overflow-x: auto;
-        white-space: nowrap;
-        -webkit-overflow-scrolling: touch;
-        .item.thumb {
-            display: inline-block;
-            margin-right: 5px;
-            position: relative;
-            vertical-align: bottom;
-            white-space: normal;
-            span {
-                height: auto !important;
-                width: 100% !important;
-                max-width: 100%;
-                img {
-                    border: 2px solid transparent;
-                    position: static;
-                    height: auto !important;
-                    width: 100% !important;
-                    max-width: 100%;
-                }
-            }
-            .active {
-                img {
-                    border: 2px solid #ff9600;
-                }
-            }
-        }
-    }
-
-    .box.tocart .actions {
-        text-align: center;
-    }
-
-    .product.data {
-        display: block;
-        > .item.content {
-            &:before {
-                display: none;
-            }
-        }
-    }
-
-    .product.photo .notice {
-        display: none;
-    }
-
-    .product.info.additional {
-        .page.title.product {
-            margin-bottom: 10px;
-        }
-        .stock {
-            margin: 15px 0;
-        }
-    }
-
-    .product.info.main {
-        &.responsive {
-            .page.title,
-            .stock:not(.alert) {
-                display: none;
-            }
-        }
-        .price-box {
-            border: none !important;
-            margin: 0;
-        }
-        .prices.tier  {
-            clear: both;
-        }
-        .product.alert {
-            margin: 10px 0;
-        }
-        .product.attibute.sku {
-            margin-bottom: 10px;
-        }
-        .product.add.form {
-            clear: both;
-            .actions {
-                margin-right: 0;
-                .action.primary.customize,
-                .action.primary.tocart {
-                    max-width: 400px;
-                    padding: 18px 10px 14px;
-                    width: 100%;
-                }
-            }
-        }
-        .type-configurable & {
-            select {
-                width: 99.5% !important;
-            }
-        }
-        .product.social.links {
-            border-top: 1px solid @primary2;
-            padding: 10px 0;
-            float: none;
-            text-align: right;
-            .action.mailto {
-                display: inline-block;
-                span {
-                    .iconAfter(@icon-envelope, 24px, 0, "icons");
-                    .iconHideText(24px);
-                    color: @primary3;
-                }
-            }
-        }
-        .actions.bundle {
-            clear: both;
-            text-align: center;
-            .action.primary.customize {
-                margin: 24px 0;
-                max-width: 400px;
-                padding: 18px 10px 14px;
-                width: 100%;
-            }
-        }
-        .price-box {
-            .price-excluding-tax,
-            .price-including-tax {
-                display: block;
-            }
-        }
-        .product.addto.links {
-            display: inline-block;
-            font-size: 18px;
-            border: none;
-            margin: 0;
-            padding: 10px;
-            position: absolute;
-            vertical-align: top;
-            .action.towishlist {
-                font-size: 16px;
-            }
-            .action.tocompare {
-                display: none;
-            }
-        }
-
-        .table.data.grouped {
-            width: 100%;
-            clear: both;
-        }
-    }
-
-    .catalog-product-view .column.main {
-        display: -webkit-flex;
-        display: -ms-flexbox;
-        display: flex;
-        -webkit-flex-direction: column;
-        -ms-flex-direction: column;
-        flex-direction: column;
-        .product.info.additional,
-        .product.media {
-            -webkit-order: -1;
-            -ms-flex-order: -1;
-            order: -1;
-        }
-    }
-
-    .product.media {
-        .img.photo.container {
-            height: auto !important;
-            width: auto !important;
-            > img {
-                position: static !important;
-                height: auto !important;
-                width: auto !important;
-                max-width: 100%;
-            }
-        }
-        &:before {
-            content: attr(data-title);
-            color: @primary5;
-            display: block;
-            font-size: 30px;
-            font-weight: 200;
-            line-height: 1.2;
-            margin-bottom: 30px;
-        }
-    }
-
-    .product.info.detailed {
-        background: @primary1;
-        border-bottom: 1px solid @primary2;
-        margin: 0 -18px;
-        .product.data > .item.title {
-            float: none;
-            margin: 0;
-            position: relative;
-            .switch {
-                background: @primary1;
-                border: none;
-                border-top: 1px solid @primary2;
-                font-size: 18px;
-                color: @primary6;
-                border-radius: 0;
-                padding: 11px 18px;
-                position: static;
-                text-transform: none;
-            }
-            &:before {
-                content: @icon-expand;
-                display: block;
-                font-family: "icons";
-                font-size: 15px;
-                position: absolute;
-                top: 11px;
-                right: 18px;
-            }
-            &.active {
-                .switch {
-                    padding: 11px 18px !important;
-                }
-                &:before {
-                    content: @icon-collapse;
-                }
-            }
-        }
-        .product.data > .item.content {
-            color: @primary6;
-            font-size: 18px;
-            float: none;
-            margin: 0 10px 10px;
-            padding: 10px 18px;
-            width: auto;
-            &.active {
-                background: #fff;
-                -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .1);
-                box-shadow: 0 1px 1px rgba(0, 0, 0, .1);
-                &+.item.title {
-                    .switch {
-                        border-top: none;
-                    }
-                }
-            }
-            &:last-child {
-                border-bottom: 1px solid @primary2;
-            }
-            .product.attributes th {
-                font-size: 18px;
-                padding: 26px 10px 10px;
-            }
-        }
-        .block.add.review {
-            background: none;
-            .fieldset > .legend {
-                border: none;
-                margin: 0;
-                strong {
-                    display: block;
-                    font-size: 18px;
-                    line-height: 1.2;
-                    margin: 0;
-                }
-            }
-            .actions,
-            .field:not(.ratings) {
-                width: 100%;
-            }
-            .action.submit {
-                .mobilePrimaryAction();
-                margin-bottom: 10px;
-            }
-        }
-        .block.reviews.list {
-            margin-left: 0;
-        }
-    }
-
-    .block.add.review {
-        margin: 0;
-        padding: 0;
-    }
-
-    .block.product.tags {
-        margin-bottom: 0;
-        .title {
-            display: none;
-        }
-        .field {
-            .note {
-                font-size: 12px;
-                padding-left: 0;
-                &:before {
-                    display: none;
-                }
-            }
-        }
-    }
-
-    .column.main .block.widget.viewed,
-    .column.main .block.crosssell,
-    .column.main .block.upsell,
-    .column.main .block.related,
-    .column.main .block.widget.new,
-    .column.main .block.widget.compared {
-        border: none;
-        padding: 0;
-        .item.product {
-            .product.photo {
-                span {
-                    height: auto !important;
-                    width: auto !important;
-                    img {
-                        position: static !important;
-                        height: auto;
-                        width: auto;
-                        max-width: 100%;
-                    }
-                }
-            }
-            .actions {
-                display: none;
-            }
-            &:hover {
-                .actions {
-                    visibility: hidden;
-                }
-            }
-        }
-        .content {
-            overflow-x: auto;
-            margin: 0 -18px;
-            white-space: nowrap;
-            -webkit-overflow-scrolling: touch;
-        }
-        .products.list {
-            margin: 0;
-            .item.product {
-                white-space: normal;
-                .product.photo {
-                    display: block;
-                    float: none;
-                    margin: 0 0 10px;
-                }
-                width: 40% !important;
-            }
-        }
-    }
-
-    .block.related {
-        .actions {
-            display: none;
-        }
-    }
-
-    .box.tocart {
-        .checkout.paypal {
-            display: block;
-            &.after {
-                &:before {
-                    display: block;
-                }
-            }
-            &.before {
-                &:before {
-                    display: block;
-                }
-            }
-        }
-    }
-
-    .product.info.detailed + .block.upsell,
-    .product.info.detailed + .block.related {
-        margin-top: 30px;
-        clear: none;
-        float: none;
-        width: auto;
-        border-top: 0;
-        padding-top: 0;
-        padding-left: 0;
-        border-left: 0;
-        .products.list {
-            margin: 0;
-            .item.product {
-                display: inline-block;
-                width: 40%;
-                padding: 20px;
-                .product.photo {
-                    float: none;
-                    display: block;
-                    margin: 0 0 10px;
-                }
-            }
-        }
-    }
-
-    input[type="password"],
-    input[type="text"],
-    input[type="number"] {
-        font-size: 18px;
-    }
-
-    .fieldset > .field > .label {
-        font-size: 18px;
-        font-weight: normal;
-        text-transform: none;
-    }
-
-    .fieldset > .field .note {
-        padding-left: 0 !important;
-        margin: 5px;
-        &:before {
-            display: none;
-        }
-    }
-
-    .bundle.options.container {
-        margin: 0;
-        padding: 0;
-        &:before {
-            display: none;
-        }
-        .product.add.form {
-            margin: 0 -18px;
-            padding: 20px 18px 280px;
-        }
-        .product.options.wrapper,
-        .product.options.bottom {
-            float: none;
-            width: auto;
-            > .fieldset {
-                margin-left: 0;
-                margin-right: 0;
-            }
-        }
-        .product.options.bottom {
-            .price-box {
-                display: none;
-            }
-            .action.back.customization {
-                color: @primary3;
-                .iconAfter(@icon-close-thick, 22px, 0, "icons");
-                .iconHideText(22px);
-                top: 26px;
-                right: 18px;
-            }
-        }
-        p.required {
-            display: none;
-        }
-    }
-
-    .block.bundle.summary {
-        background: @primary1;
-        margin: 0;
-        padding: 0 20px;
-        float: none;
-        position: absolute;
-        margin: -280px 0 0;
-        top: 100% !important;
-        width: 90%;
-        .box-sizing();
-        .content {
-            padding: 0;
-        }
-        .bundle.summary,
-        .photo,
-        .title,
-        .product.name,
-        .available,
-        .addto {
-            display: none !important;
-        }
-        .price-box {
-            float: left;
-            width: 80%;
-            .price-label {
-                display: block;
-                float: none;
-                margin-bottom: 5px;
-            }
-            .price-excluding-tax {
-                margin-right: 10px;
-            }
-            .full-product-price {
-                float: none;
-            }
-        }
-        .box.tocart {
-            padding-bottom: 0;
-            border: none;
-            .control {
-                width: auto;
-            }
-            .field.qty {
-                .box-sizing();
-                width: 18%;
-                float: right;
-                padding-right: 0;
-            }
-            input.qty {
-                height: 49px;
-            }
-            .actions {
-                clear: both;
-                margin-right: 0;
-                .action.primary.tocart {
-                    padding: 18px 10px 14px;
-                    width: 100%;
-                }
-            }
-        }
-    }
-
-    .fieldset.bundle.options {
-        .legend {
-            margin-left: 0;
-        }
-        > .field {
-            margin: 0 0 20px;
-            .label {
-                display: inline-block;
-                font-size: 16px;
-                width: 90%;
-            }
-            input[type="checkbox"],
-            input[type="radio"] {
-                margin-top: 3px;
-                vertical-align: top;
-            }
-            > .label {
-                font-size: 22px;
-            }
-        }
-    }
-
-    // *
-    // *    Widgets
-    // *
-    // ----------------------------------------------------------------------------- */
-
-    // Recently Viewed
-
-    .block.widget.viewed .content,
-    .block.crosssell .content,
-    .block.upsell .content,
-    .block.related .content,
-    .block.widget.new .content,
-    .block.widget.compared .content {
-        margin: 0;
-    }
-
-    .block.widget.viewed,
-    .block.widget.new {
-        .minilist.products.items .item.product {
-            .product.details {
-                overflow: hidden;
-                padding: 0;
-            }
-            &:hover {
-                .product.actions {
-                    visibility: hidden;
-                }
-            }
-
-        }
-    }
-
-    /*
-    Overlay popup
-    -------------------------------------- */
-    .popup {
-        left: 0;
-        top: 5%;
-        margin: 0 auto;
-        width: 90%;
-        .actions {
-            .action.submit {
-                .mobilePrimaryAction();
-            }
-            .action.cancel {
-                .mobileSecondaryAction();
-            }
-        }
-    }
-
-    /*
-    Magento_Catalog Compare
-    -------------------------------------- */
-    .catalog-product-compare-index {
-        .action.print {
-            margin: -20px 0 20px;
-        }
-    }
-}
diff --git a/app/design/frontend/Magento/plushe/css/source/styles/base.less b/app/design/frontend/Magento/plushe/css/source/styles/base.less
deleted file mode 100644
index 9e193368c964aa865b92bce3e3a1bbd8775542da..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/styles/base.less
+++ /dev/null
@@ -1,427 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-// #General reset
-//  For resetting default browser styles of standard html elements ClearLess library provides normalize or reset solution. Here we use **normalize**. It sets default parameters to certain values.
-//
-//  **If the property of an element is not set directly in this document, it is inherited from normalize** (http://github.com/necolas/normalize.css)
-//
-//  #General settings
-//
-//  Applying custom font
-//
-//  Setting font for html, body, button, input, select, textarea
-//
-//  Reseting elements styles: nav ul, nav ol
-//
-
-.font-face( "sourcesanspro", "@{baseDir}/fonts/sourcesanspro/sourcesanspro-200-normal-webfont", 200, normal, true );
-.font-face( "sourcesanspro", "@{baseDir}/fonts/sourcesanspro/sourcesanspro-200-normal-webfont", 200, normal, true );
-.font-face( "sourcesanspro", "@{baseDir}/fonts/sourcesanspro/sourcesanspro-400-normal-webfont", 400, normal, true );
-.font-face( "sourcesanspro", "@{baseDir}/fonts/sourcesanspro/sourcesanspro-600-normal-webfont", 600, normal, true );
-.font-face( "sourcesanspro", "@{baseDir}/fonts/sourcesanspro/sourcesanspro-700-normal-webfont", 700, normal, true );
-.font-face( "marvel", "@{baseDir}/fonts/marvel/marvel-400-normal-webfont", 400, normal, true );
-
-.font-face( "icons", "@{baseDir}/fonts/icons/icons", 400, normal, true );
-
-html, body, button, input, select, textarea {
-    font: @baseFontWeight @baseFontSize/@baseLineHeight @baseFont;
-    color: @baseColor;
-}
-
-nav ul, nav ol {
-    .resetList();
-}
-
-//  # Headings
-//
-//  ```html
-//  <h1>Heading 1</h1>
-//
-//  <h2>Heading 2</h2>
-//
-//  <h3>Heading 3</h3>
-//
-//  <h4>Heading 4</h4>
-//
-//  <h5>Heading 5</h5>
-//
-//  <h6>Heading 6</h6>
-//  ```
-//
-
-h1 {
-    color: @h1color;
-    font: @h1font;
-}
-
-h2 {
-    color: @h2color;
-    font: @h2font;
-}
-
-h3 {
-    color: @h3color;
-    font: @h3font;
-}
-
-h4 {
-    color: @h4color;
-    font: @h4font;
-}
-
-h5 {
-    color: @h5color;
-    font: @h5font;
-}
-
-h6 {
-    color: @h6color;
-    font: @h6font;
-}
-
-// #Links
-//
-//  ```html
-//  <a href="#">Link</a>
-//  <a class=":visited" href="#">Visited link</a>
-//  <a class=":hover" href="#">Hovered link</a>
-//  <a class=":active" href="#">Active link</a>
-//  ```
-//
-
-a {
-    color: @link;
-    text-decoration: none;
-    &:visited {
-        color: @link;
-    }
-    &:hover,
-    &:active {
-        color: @linkHover;
-    }
-}
-
-//  #Inline markup
-//
-//  #abbr
-//
-//  ```html
-//  The <abbr>abbr element</abbr> and <abbr title="Title text">abbr element with title</abbr> examples
-//  ```
-
-
-//  #b
-//
-//  ```html
-//  The <b>b element</b> example
-//  ```
-
-//  #strong
-//
-//  ```html
-//  The <strong>strong element</strong> example
-//  ```
-
-//  #em
-//
-//  ```html
-//  The <em>em element</em> example
-//  ```
-//
-
-//  #i
-//
-//  ```html
-//  The <i>i element</i> example
-//  ```
-//
-
-//  #cite
-//
-//  ```html
-//  The <cite>cite element</cite> example
-//  ```
-//
-
-//  #code
-//
-//  ```html
-//  The <code>code element</code> example
-//  ```
-//
-
-//  #del
-//
-//  ```html
-//  The <del>del element</del> example
-//  ```
-//
-
-//  #s
-//
-//  ```html
-//  The <s>s element</s> example
-//  ```
-//
-
-//  #img
-//
-//  ```html
-//  The img element <img src="http://lorempixel.com/16/16/abstract" alt="example"> example
-//  ```
-//
-
-//  #mark
-//
-//  ```html
-//  The <mark>mark element</mark> example
-//  ```
-//
-
-//  #q
-//
-//  ```html
-//  The <q>q element <q>inside</q> a q element</q> example
-//  ```
-//
-
-q {
-    &:before {
-        content: "\201c";
-    }
-    &:after {
-        content: "\201d";
-    }
-    q {
-        &:before {
-            content: "\2018";
-        }
-        &:after {
-            content: "\2019";
-        }
-    }
-}
-
-//  #small
-//
-//  ```html
-//  The <small>small element</small> example
-//  ```
-//
-
-//  #sub
-//
-//  ```html
-//  The <sub>subscript element</sub> example
-//  ```
-//
-
-//  #sup
-//
-//  ```html
-//  The <sup>superscript element</sup> example
-//  ```
-//
-
-//  #u
-//
-//  ```html
-//  The <u>u element</u> example
-//  ```
-//
-
-// #Paragraph
-//
-//  ```html
-//  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede.</p>
-//  <p>Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui.</p>
-//  ```
-//
-
-// #Ordered list
-//
-//  ```html
-//  <ol>
-//      <li>Item 1</li>
-//      <li>Item 2</li>
-//      <li>Item 3
-//          <ol>
-//              <li>Item 1</li>
-//              <li>Item 2</li>
-//              <li>Item 3</li>
-//          </ol>
-//      </li>
-//      <li>Item 4</li>
-//  </ol>
-//  ```
-//
-
-// #Unordered list
-//
-//  ```html
-//  <ul>
-//      <li>Item 1</li>
-//      <li>Item 2</li>
-//      <li>Item 3
-//          <ol>
-//              <li>Item 1</li>
-//              <li>Item 2</li>
-//              <li>Item 3</li>
-//          </ol>
-//      </li>
-//      <li>Item 4</li>
-//  </ul>
-//  ```
-//
-
-// #Descriptions
-//
-//  ```html
-//    <dl>
-//        <dt>Title 1</dt>
-//        <dd>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.</dd>
-//        <dt>Title 2</dt>
-//        <dd>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi luctus. Duis lobortis. Nulla nec velit. Mauris pulvinar erat non massa. Suspendisse tortor turpis, porta nec, tempus vitae, iaculis semper, pede. Cras vel libero id lectus rhoncus porta. Suspendisse convallis felis ac enim. Vivamus tortor nisl, lobortis in, faucibus et, tempus at, dui. Nunc risus. Proin scelerisque augue. Nam ullamcorper. Phasellus id massa. Pellentesque nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc augue. Aenean sed justo non leo vehicula laoreet. Praesent ipsum libero, auctor ac, tempus nec, tempor nec, justo.</dd>
-//    </dl>
-//  ```
-//
-
-// #Table
-//
-//  ```html
-//    <table>
-//        <thead>
-//            <tr>
-//                <th>#</th>
-//                <th>Column 1</th>
-//                <th>Column 2</th>
-//                <th>Column 3</th>
-//            </tr>
-//        </thead>
-//        <tbody>
-//            <tr>
-//                <td>1</td>
-//                <td>Cell 4</td>
-//                <td>Cell 5</td>
-//                <td>Cell 6</td>
-//            </tr>
-//            <tr>
-//                <td>2</td>
-//                <td>Cell 7</td>
-//                <td>Cell 8</td>
-//                <td>Cell 9</td>
-//            </tr>
-//            <tr>
-//                <td>3</td>
-//                <td>Cell 10</td>
-//                <td>Cell 11</td>
-//                <td>Cell 12</td>
-//            </tr>
-//            <tr>
-//                <td>4</td>
-//                <td>Cell 13</td>
-//                <td>Cell 14</td>
-//                <td>Cell 15</td>
-//            </tr>
-//            <tr>
-//                <td>5</td>
-//                <td>Cell 16</td>
-//                <td>Cell 17</td>
-//                <td>Cell 18</td>
-//            </tr>
-//        </tbody>
-//    </table>
-//  ```
-//
-
-table {
-    th {
-        border-right: 1px solid @primary2;
-        font-size: @baseFontSizeBigger;
-        padding: 7px 10px;
-        &:last-child {
-            border-right: 0;
-        }
-    }
-    td {
-        border-right: 1px solid @primary2;
-        padding: 7px 10px;
-        vertical-align: top;
-        &:last-child {
-            border-right: 0;
-        }
-    }
-    tbody tr:nth-child(odd) td {
-        background: @primary1;
-    }
-}
-
-// #Blockquote
-//
-//  ```html
-//  <blockquote>
-//    <p>The cite element represents the title of a work (e.g. a book, a paper, an essay, a poem, a score, a song, a script, a film, a TV show, a game, a sculpture, a painting, a theatre production, a play, an opera, a musical, an exhibition, a legal case report, etc). This can be a work that is being quoted or referenced in detail (i.e. a citation), or it can just be a work that is mentioned in passing.</p>
-//    <p>A person's name is not the title of a work — even if people call that person a piece of work — and the element must therefore not be used to mark up people's names. (In some cases, the b element might be appropriate for names; e.g. in a gossip article where the names of famous people are keywords rendered with a different style to draw attention to them. In other cases, if an element is really needed, the span element can be used.)</p>
-//    <cite>http://www.w3.org/html/wg/drafts/html/master/text-level-semantics.html</cite>
-//  </blockquote>
-//  ```
-//
-
-blockquote {
-    margin: 10px 20px 10px 40px;
-    &:before {
-        color: @primary4;
-        content: "\201C";
-        display: block;
-        font-family: Georgia, serif;
-        font-size: 60px;
-        font-style: italic;
-        position: absolute;
-        left: 15px;
-        top: 10px;
-    }
-    cite {
-        color: @primary4;
-        font-style: italic;
-        font-size: @baseFontSizeMiddle;
-        margin: 1em 0;
-    }
-}
-
-// #HR
-//
-//  ```html
-//  <hr>
-//  ```
-//
-
-hr {
-    background: @primary3;
-    border: 0;
-    color: @primary3;
-    height: 1px;
-    margin: 1em 0;
-}
diff --git a/app/design/frontend/Magento/plushe/css/source/styles/magento.less b/app/design/frontend/Magento/plushe/css/source/styles/magento.less
deleted file mode 100644
index 976718629d980aa0aac4e5ff442e80a6770d606f..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/styles/magento.less
+++ /dev/null
@@ -1,1549 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-//  #Mixins
-//
-//  Common mixins used for styling magento elements
-//
-
-.pagerLabel() {
-    font-weight: @baseFontWeight;
-    line-height: 25px;
-    margin-right: 5px;
-}
-
-//  #Search form
-//
-//  ```html
-//    <div class="block search">
-//        <div class="title"><strong>Search</strong></div>
-//        <div class="content search">
-//        <form class="form minisearch">
-//            <div class="field search">
-//                <label for="search" class="label">Search</label>
-//                <div class="control">
-//                    <input type="text" class="input-text" placeholder="Search entire store here..." value="" name="q">
-//                    <a href="#" class="action advanced">Advanced Search</a>
-//                </div>
-//            </div>
-//            <div class="actions">
-//                <button class="action search" type="submit"><span>Search</span></button>
-//            </div>
-//        </form>
-//        </div>
-//    </div>
-//  ```
-//
-
-.block.search {
-    input {
-        border-radius: 3px 0 0 3px;
-        border-right: 0;
-        float: left;
-        width: 100%;
-        &:focus + {
-            border-color: @primary3;
-        }
-    }
-    .field .control {
-        width: 260px;
-    }
-    .label,
-    > .title,
-    .action.advanced {
-        display: none;
-    }
-    .action.search {
-        background: @primary7;
-        border: 1px solid @primary3;
-        border-radius: 0 3px 3px 0;
-        color: @primary3;
-        float: left;
-        padding: 7px;
-        &:hover {
-            color: @primary6;
-        }
-        span {
-            .iconAfter(@icon-magnifying-glass, 16px, 0, 'icons');
-            .iconHideText(16px);
-        }
-        .search.autocomplete {
-            display: none !important;
-        }
-    }
-    ::-webkit-input-placeholder {
-        color: @primary4;
-    }
-    :-moz-placeholder {
-        color: @primary4;
-    }
-    ::-moz-placeholder {
-        color: @primary4;
-    }
-    :-ms-input-placeholder {
-        color: @primary4;
-    }
-}
-
-//  #Newsletter sign up form
-//
-//  ```html
-//    <div class="block newsletter">
-//        <div class="title"><strong>Newsletter</strong></div>
-//        <div class="content">
-//            <form>
-//                <div class="field newsletter">
-//                    <label for="newsletter" class="label">Sign Up for Our Newsletter:</label>
-//                    <div class="control">
-//                        <input type="text" placeholder="Enter your email address" name="email">
-//                    </div>
-//                    <div class="actions">
-//                        <button type="submit" title="Subscribe" class="action subscribe">
-//                            <span>Subscribe</span>
-//                        </button>
-//                    </div>
-//                </div>
-//            </form>
-//        </div>
-//    </div>
-//  ```
-//
-
-.block.newsletter {
-    > .title {
-        display: none;
-    }
-    .label {
-        display: block;
-        font-size: @baseFontSizeBigger;
-        line-height: 1.2;
-        margin-bottom: 10px;
-    }
-    .control {
-        .box-sizing();
-        float: left;
-        padding-right: 45px;
-        width: 100%;
-    }
-    input[type="text"] {
-        width: 100%;
-    }
-    .actions {
-        float: right;
-        margin-left: -45px;
-        padding-left: 10px;
-    }
-    .action.subscribe {
-        .box-sizing();
-        background: @primaryActionBg;
-        border-radius: 3px;
-        border: 1px solid @primaryActionBg;
-        padding: 7px;
-        vertical-align: top;
-        &:hover {
-            background: @primaryActionBgH;
-        }
-        span {
-            .iconAfter(@icon-envelope, 16px, 0, "icons");
-            .iconHideText(16px);
-            color: @primary7;
-        }
-    }
-}
-
-//  #Mage Catalog
-//
-//  #Breadcrumbs
-//
-//  ```html
-//    <div class="breadcrumbs">
-//        <ul class="items">
-//            <li class="item">
-//                <a href="#">Home</a>
-//            </li>
-//            <li class="item">
-//                <a href="#">Level 1</a>
-//            </li>
-//            <li class="item">
-//                <strong>Level 2</strong>
-//            </li>
-//        </ul>
-//    </div>
-//  ```
-//
-
-.breadcrumbs {
-    font-size: @baseFontSizeMiddle;
-    .items {
-        margin: 0;
-        padding: 0;
-    }
-    .item {
-        display: inline;
-        font-weight: @baseFontWeightLighter;
-        &:before {
-            content: " / ";
-        }
-        &:first-child:before {
-            content: "";
-        }
-    }
-    strong {
-        font-weight: @baseFontWeight;
-    }
-}
-
-// #Pager
-//
-//  ```html
-//    <div class="pages">
-//        <strong class="label">Page</strong>
-//        <ol class="items">
-//            <li class="item"><a href="#" class="action previous"><span>Previous</span></a></li>
-//            <li class="item"><a href="#"><span>1</span></a></li>
-//            <li class="item current"><strong><span>2</span></strong></li>
-//            <li class="item"><a href="#"><span>3</span></a></li>
-//            <li class="item"><a title="Next" href="#" class="action next"><span>Next</span></a></li>
-//        </ol>
-//    </div>
-//  ```
-//
-
-.pages {
-    ol {
-        .resetList();
-    }
-    .item {
-        display: inline-block;
-    }
-    a {
-        padding: 0 3px;
-    }
-    strong {
-        color: @secondary1;
-        font-weight: normal;
-        padding: 0 3px;
-    }
-    > .label {
-        display: none;
-    }
-    .action {
-        &.previous {
-            .iconAfter(@icon-arrow-left-thick, 16px, 0, "icons");
-            .iconHideText(16px);
-            display: inline-block;
-        }
-        &.next {
-            .iconAfter(@icon-arrow-right-thick, 16px, 0, "icons");
-            .iconHideText(16px);
-            display: inline-block;
-        }
-        color: @primary3;
-        &:hover {
-            color: darken(@primary3, 20%);
-        }
-    }
-}
-
-// #View switcher
-//
-//  ```html
-//    <div class="modes">
-//        <strong class="label">View as</strong>
-//        <strong class="mode active grid">
-//            <span>Grid</span>
-//        </strong>
-//        <a href="#" class="mode list">
-//            <span>List</span>
-//        </a>
-//        <strong class="label">View as</strong>
-//        <a href="#" class="mode grid">
-//            <span>Grid</span>
-//        </a>
-//        <strong class="mode active list">
-//            <span>List</span>
-//        </strong>
-//    </div>
-//  ```
-//
-
-.modes {
-    .label {
-        display: none;
-    }
-    .mode {
-        border: 1px solid @primary3;
-        color: @primary3;
-        display: inline-block;
-        margin: 0 3px;
-        overflow: hidden;
-        padding: 4px;
-        &.active {
-            background: @primary3;
-            border-color: @primary3;
-            cursor: default;
-            color: @primary7;
-            span {
-                color: @primary7;
-            }
-            &:hover {
-                background: @primary3;
-                border-color: @primary3;
-                color: @primary7;
-                span {
-                    color: @primary7;
-                }
-            }
-        }
-        &:hover {
-            background: @primary4;
-            border-color: @primary4;
-            color: @primary7;
-            span {
-                color: @primary7;
-            }
-        }
-        &.grid {
-            .iconAfter(@icon-grid, 13px, 0, "icons");
-            .iconHideText(13px);
-            display: inline-block;
-        }
-        &.list {
-            .iconAfter(@icon-list, 13px, 0, "icons");
-            .iconHideText(13px);
-            display: inline-block;
-        }
-    }
-}
-
-// #"Sort by" switcher
-//
-//  ```html
-//    <div class="sorter">
-//        <label for="sorter" class="label">Sort By</label>
-//        <select data-mage-redirect="{'event':'change'}" id="sorter">
-//            <option selected="selected" value="">Position</option>
-//            <option value="">Name</option>
-//            <option value="">Price</option>
-//        </select>
-//        <a class="action sort desc" title="Set Ascending Direction" href="#">
-//            <span>Set Ascending Direction</span>
-//        </a>
-//        <a class="action sort asc" title="Set Descending Direction" href="#">
-//            <span>Set Descending Direction</span>
-//        </a>
-//    </div>
-//  ```
-//
-
-.sorter {
-    .label {
-        .pagerLabel();
-    }
-    select {
-        padding: 0;
-    }
-    .action.sort {
-        &.desc {
-            .iconAfter(@icon-arrow-down-thick, 13px, 0, "icons");
-            .iconHideText(13px);
-            display: inline-block;
-        }
-        &.asc {
-            .iconAfter(@icon-arrow-up-thick, 13px, 0, "icons");
-            .iconHideText(13px);
-            display: inline-block;
-        }
-    }
-}
-
-// #Pager limiter
-//
-//  ```html
-//    <div class="limiter">
-//        <strong class="label">Show</strong>
-//        <select data-mage-redirect="{'event':'change'}" id="limiter">
-//            <option selected="selected" value="">5</option>
-//            <option value="">10</option>
-//            <option value="">15</option>
-//            <option value="">All</option>
-//        </select>
-//        <span class="text">per page</span>
-//    </div>
-//  ```
-//
-
-.limiter {
-    .label {
-        .pagerLabel();
-    }
-    select {
-        padding: 0;
-    }
-    .text {
-        display: none;
-    }
-}
-
-// #Tags
-//
-//  ```html
-//    <ul class="tags items cloud">
-//        <li class="tag item">
-//            <a class="tag text" href="#" style="font-size:75%;">widget</a>
-//            <span class="amount">34</span>
-//        </li>
-//        <li class="tag item">
-//            <a class="tag text" href="#" style="font-size:75%;">plugin</a>
-//            <span class="amount">6</span>
-//        </li>
-//        <li class="tag item">
-//            <a class="tag text" href="#" style="font-size:145%;">admin</a>
-//            <span class="amount">2</span>
-//        </li>
-//        <li class="tag item">
-//            <a class="tag text" href="#" style="font-size:75%;">sidebar</a>
-//            <span class="amount">4</span>
-//        </li>
-//        <li class="tag item">
-//            <a class="tag text" href="#" style="font-size:110%;">comments</a>
-//            <span class="amount">1</span>
-//        </li>
-//    </ul>
-//  ```
-//
-
-.tags.items.cloud {
-    .resetList();
-    margin: 0 0 20px;
-    .item {
-        .resetList();
-        display: inline-block;
-        margin: 0 0 5px 5px;
-        &:first-child {
-            margin-left: 0;
-        }
-    }
-    .amount {
-        margin-left: 3px;
-        &:before {
-            content: '(';
-        }
-        &:after {
-            content: ')';
-        }
-    }
-}
-
-// #Ratings
-//
-//  ```html
-//    <div class="field ratings">
-//        <label class="label"><span>How do you rate this product?</span></label>
-//        <div class="control">
-//            <div class="nested">
-//                <div class="field rating">
-//                    <label class="label"><span>Price</span></label>
-//                    <div class="control">
-//                        <input type="radio" name="ratings[3]" id="Price_1" value="11">
-//                        <label class="rating-1" for="Price_1" title="1 star">
-//                            <span>1 star</span>
-//                        </label>
-//                        <input type="radio" name="ratings[3]" id="Price_2" value="12">
-//                        <label class="rating-2" for="Price_2" title="2 stars">
-//                            <span>2 stars</span>
-//                        </label>
-//                        <input type="radio" name="ratings[3]" id="Price_3" value="13">
-//                        <label class="rating-3" for="Price_3" title="3 stars">
-//                            <span>3 stars</span>
-//                        </label>
-//                        <input type="radio" name="ratings[3]" id="Price_4" value="14">
-//                        <label class="rating-4" for="Price_4" title="4 stars">
-//                            <span>4 stars</span>
-//                        </label>
-//                        <input type="radio" name="ratings[3]" id="Price_5" value="15">
-//                        <label class="rating-5" for="Price_5" title="5 stars">
-//                            <span>5 stars</span>
-//                        </label>
-//                    </div>
-//                </div>
-//                <div class="field rating">
-//                    <label class="label"><span>Value</span></label>
-//                    <div class="control">
-//                        <input type="radio" name="ratings[2]" id="Value_1" value="6">
-//                        <label class="rating-1" for="Value_1" title="1 star">
-//                            <span>1 star</span>
-//                        </label>
-//                        <input type="radio" name="ratings[2]" id="Value_2" value="7">
-//                        <label class="rating-2" for="Value_2" title="2 stars">
-//                            <span>2 stars</span>
-//                        </label>
-//                        <input type="radio" name="ratings[2]" id="Value_3" value="8">
-//                        <label class="rating-3" for="Value_3" title="3 stars">
-//                            <span>3 stars</span>
-//                        </label>
-//                        <input type="radio" name="ratings[2]" id="Value_4" value="9">
-//                        <label class="rating-4" for="Value_4" title="4 stars">
-//                            <span>4 stars</span>
-//                        </label>
-//                        <input type="radio" name="ratings[2]" id="Value_5" value="10">
-//                        <label class="rating-5" for="Value_5" title="5 stars">
-//                            <span>5 stars</span>
-//                        </label>
-//                    </div>
-//                </div>
-//                <div class="field rating">
-//                    <label class="label"><span>Quality</span></label>
-//                    <div class="control">
-//                        <input type="radio" name="ratings[1]" id="Quality_1" value="1">
-//                        <label class="rating-1" for="Quality_1" title="1 star">
-//                            <span>1 star</span>
-//                        </label>
-//                        <input type="radio" name="ratings[1]" id="Quality_2" value="2">
-//                        <label class="rating-2" for="Quality_2" title="2 stars">
-//                            <span>2 stars</span>
-//                        </label>
-//                        <input type="radio" name="ratings[1]" id="Quality_3" value="3">
-//                        <label class="rating-3" for="Quality_3" title="3 stars">
-//                            <span>3 stars</span>
-//                        </label>
-//                        <input type="radio" name="ratings[1]" id="Quality_4" value="4">
-//                        <label class="rating-4" for="Quality_4" title="4 stars">
-//                            <span>4 stars</span>
-//                        </label>
-//                        <input type="radio" name="ratings[1]" id="Quality_5" value="5">
-//                        <label class="rating-5" for="Quality_5" title="5 stars">
-//                            <span>5 stars</span>
-//                        </label>
-//                    </div>
-//                </div>
-//            </div>
-//        </div>
-//    </div>
-//  ```
-//
-
-.field.ratings {
-    @starSize: 16px;
-    border-bottom: 1px solid;
-    .borderColor(@primary1);
-    padding-bottom: 15px;
-    margin-bottom: 30px;
-    overflow: hidden;
-    position: relative;
-    z-index: 1;
-    .nested {
-        display: table;
-    }
-    .field.rating {
-        display: table-row;
-        > .label {
-            display: table-cell;
-            vertical-align: top;
-            padding: 6px 0;
-        }
-        .control {
-            padding: 5px 10px;
-            display: table-cell;
-            z-index: 1;
-            &:before {
-                letter-spacing: 0.2em;
-                position: absolute;
-                z-index: 1;
-                display: block;
-                float: left;
-                font-family: "icons";
-                content: "\e009\e009\e009\e009\e009";
-                font-style: normal;
-                font-size: @starSize;
-                color: fade(@secondary1, 30%);
-                speak: none;
-                font-weight: normal;
-                -webkit-font-smoothing: antialiased;
-            }
-            input:focus + label:before,
-            input:checked + label:before {
-                color: @secondary1;
-                opacity: 1;
-            }
-            input[type="radio"] {
-                position: absolute;
-                margin-left: -999em;
-            }
-            label {
-                position: absolute;
-                display: block;
-                span {
-                    display: none;
-                }
-                &:before {
-                    letter-spacing: 0.2em;
-                    font-family: "icons";
-                    font-style: normal;
-                    font-size: @starSize;
-                    speak: none;
-                    font-weight: normal;
-                    -webkit-font-smoothing: antialiased;
-                    opacity: 0;
-                }
-                &:hover {
-                    &:before {
-                        color: @secondary1;
-                        opacity: 1;
-                    }
-                    & ~ label:before {
-                        opacity: 0 !important;
-                    }
-                }
-                cursor: pointer;
-            }
-            .rating-1 {
-                z-index: 6;
-                &:before {
-                    content: "\e009";
-                }
-            }
-            .rating-2 {
-                z-index: 5;
-                &:before {
-                    content: "\e009\e009";
-                }
-            }
-            .rating-3 {
-                z-index: 4;
-                &:before {
-                    content: "\e009\e009\e009";
-                }
-            }
-            .rating-4 {
-                z-index: 3;
-                &:before {
-                    content: "\e009\e009\e009\e009";
-                }
-            }
-            .rating-5 {
-                z-index: 2;
-                &:before {
-                    content: "\e009\e009\e009\e009\e009";
-                }
-            }
-        }
-    }
-}
-
-//  #Login form
-//  The login form's design differs from default form layout: labels are in the same line as inputs (in default form layout labels and corresponding inputs are in different lines) The code is the same, it differs only with styles.
-//
-//  ```html
-//    <fieldset class="fieldset login">
-//        <div class="field email required">
-//            <label for="email" class="label"><span>Email Address</span></label>
-//            <div class="control">
-//                <input type="text" class="input-text" value="" name="login[username]">
-//            </div>
-//        </div>
-//        <div class="field password required">
-//            <label class="label" for="pass"><span>Password</span></label>
-//            <div class="control">
-//                <input type="password" class="input-text" name="login[password]">
-//            </div>
-//        </div>
-//        <div class="actions">
-//            <div class="primary">
-//                <button id="send2" name="send" class="action login" type="submit"><span>Login</span></button>
-//            </div>
-//            <div class="secondary"><a href="#" class="action remind"><span>Forgot Your Password?</span></a></div>
-//        </div>
-//    </fieldset>
-//  ```
-//
-
-.fieldset {
-    &.login {
-        margin: 0;
-        padding: 0;
-        > .field {
-            .clearfix();
-            > .label {
-                .box-sizing();
-                float: left;
-                margin: 0;
-                padding-right: 10px;
-                padding-top: 7px;
-                text-align: right;
-                width: 40%;
-            }
-            > .control {
-                float: left;
-                margin: 0;
-                width: 60%;
-            }
-        }
-        .actions {
-            text-align: right;
-            .action.login {
-                &:extend(.primary.action all);
-            }
-            .secondary {
-                margin-top: 0.8em;
-            }
-        }
-    }
-}
-
-// #Loader
-//
-//  ```html
-//  <div class="loader"></div>
-//  ```
-//
-
-.loader {
-    background: url("@{baseDir}/images/loader.gif") no-repeat 50% 50%;
-    .size(20px);
-}
-
-//  #Button with loader
-//
-//  ```html
-//  <button class="action mySecondaryButton loading">Loading</button>
-//  ```
-//
-
-.action.mySecondaryButton {
-    &:extend(.secondary.action all);
-    &.loading {
-        padding-right: 30px;
-        position: relative;
-        &:after {
-            background: url("@{baseDir}/images/loader.gif") no-repeat 50% 50%;
-            .size(16px);
-            content: "";
-            margin: -8px 0 0;
-            position: absolute;
-            right: 7px;
-            top: 50%;
-        }
-    }
-}
-
-//  #Text block under loader
-//
-//  ```html
-//  <div class="textUnderLoader loading">
-//      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed lobortis magna, quis tincidunt elit. Donec molestie scelerisque ligula, ut eleifend nisl laoreet nec. Vivamus dapibus urna id risus porttitor cursus.</p>
-//      <p>Etiam lorem leo, accumsan quis est sit amet, tempus pellentesque ante. Donec rutrum convallis lacus, ac iaculis nulla scelerisque a. Pellentesque malesuada, mi eu condimentum volutpat, mi turpis congue sapien, et ornare nunc nunc vitae nibh. Duis scelerisque purus a sapien ultrices tempor. Sed nec blandit mauris, vel volutpat dolor.</p>
-//      <p>Vestibulum viverra tempus mi a accumsan. Nunc congue quis leo sed scelerisque. Fusce scelerisque magna nulla, sed malesuada nunc congue vel. Donec placerat malesuada bibendum. Nam bibendum nunc at neque consequat placerat. Aenean eu rutrum sapien. Vivamus vel mi urna. Suspendisse sit amet elit nunc.</p>
-//  </div>
-//  ```
-//
-
-.textUnderLoader {
-    background: @primary1;
-    border: 1px solid @primary3;
-    padding: 10px 20px;
-    &.loading {
-        position: relative;
-        &:before {
-            background: @primary7;
-            opacity: 0.7;
-            content: "";
-            position: absolute;
-            top: 0;
-            left: 0;
-            right: 0;
-            bottom: 0;
-        }
-        &:after {
-            background: url("@{baseDir}/images/loader.gif") no-repeat 50% 50%;
-            .size(16px);
-            content: "";
-            margin: -8px 0 0 -8px;
-            position: absolute;
-            left: 50%;
-            top: 50%;
-        }
-    }
-}
-
-//  #Mage Checkout
-//
-//  #Checkout address form
-//  The checkout address form has specific logical fields grouping. Here styles are provided to separate the logical groups. The code is the same, it differs only with styles.
-//
-//  ```html
-//    <div class="opc wrapper">
-//        <form data-hasrequired="* Required Fields" class="form billing">
-//            <div class="field addresses">
-//                <label for="billing-address-select" class="label"><span>Select a billing address from your address book or enter a new address.</span></label>
-//                <div class="control">
-//                    <select class="address-select" name="billing_address_id">
-//                        <option value="">New Address</option>
-//                    </select>
-//                </div>
-//            </div>
-//            <fieldset class="fieldset address">
-//                <div class="field name-firstname required">
-//                    <label for="billing:firstname" class="label"><span>First Name</span></label>
-//                    <div class="control">
-//                        <input type="text" class="input-text" value="" name="billing[firstname]">
-//                    </div>
-//                </div>
-//                <div class="field name-lastname required">
-//                    <label for="billing:lastname" class="label"><span>Last Name</span></label>
-//                    <div class="control">
-//                        <input type="text" class="input-text" value="" name="billing[lastname]">
-//                    </div>
-//                </div>
-//                <div class="field company">
-//                    <label for="billing:company" class="label"><span>Company</span></label>
-//                    <div class="control">
-//                        <input type="text" class="input-text" value="" name="billing[company]">
-//                    </div>
-//                </div>
-//                <div class="field street required">
-//                    <label for="billing:street1" class="label"><span>Address</span></label>
-//                    <div class="control">
-//                        <input type="text" class="input-text" value="" name="billing[street][]">
-//                        <div class="nested">
-//                            <div class="field additional no-label">
-//                                <div class="control">
-//                                    <input type="text" class="input-text " value="" name="billing[street][]">
-//                                </div>
-//                            </div>
-//                        </div>
-//                    </div>
-//                </div>
-//                <div class="field city required">
-//                    <label for="billing:city" class="label"><span>City</span></label>
-//                    <div class="control">
-//                        <input type="text" class="input-text" value="" name="billing[city]">
-//                    </div>
-//                </div>
-//                <div class="field region required">
-//                    <label for="billing:region_id" class="label"><span>State/Province</span></label>
-//                    <div class="control">
-//                        <select name="billing[region_id]" defaultvalue="43">
-//                            <option value="">Please select region, state or province</option>
-//                            <option title="Alabama" value="1">Alabama</option>
-//                            <option title="Alaska" value="2">Alaska</option>
-//                            <option title="Arizona" value="4">Arizona</option>
-//                        </select>
-//                    </div>
-//                </div>
-//                <div class="field zip required">
-//                    <label for="billing:postcode" class="label"><span>Zip/Postal Code</span></label>
-//                    <div class="control">
-//                        <input type="text" class="input-text" value="" name="billing[postcode]">
-//                    </div>
-//                </div>
-//                <div class="field country required">
-//                    <label for="billing:country_id" class="label"><span>Country</span></label>
-//                    <div class="control">
-//                        <select class="validate-select" name="billing[country_id]">
-//                            <option value=""></option>
-//                            <option value="GB">United Kingdom</option>
-//                            <option value="US">United States</option>
-//                        </select>
-//                    </div>
-//                </div>
-//                <div class="field telephone required">
-//                    <label for="billing:telephone" class="label"><span>Telephone</span></label>
-//                    <div class="control">
-//                        <input type="text" class="input-text" value="" name="billing[telephone]">
-//                    </div>
-//                </div>
-//                <div class="field fax">
-//                    <label for="billing:fax" class="label"><span>Fax</span></label>
-//                    <div class="control">
-//                        <input type="text" class="input-text" value="" name="billing[fax]">
-//                    </div>
-//                </div>
-//                <div class="field save choice">
-//                    <input type="checkbox" class="checkbox" value="1" name="billing[save_in_address_book]">
-//                    <label for="billing:save_in_address_book" class="label"><span>Save in address book</span></label>
-//                </div>
-//            </fieldset>
-//            <div class="field choice">
-//                <input type="radio" class="radio" checked="checked" value="1" name="billing[use_for_shipping]">
-//                <label for="billing:use_for_shipping_yes" class="label"><span>Ship to this address</span></label>
-//            </div>
-//            <div class="field choice">
-//                <input type="radio" class="radio" value="0" name="billing[use_for_shipping]">
-//                <label for="billing:use_for_shipping_no" class="label"><span>Ship to different address</span></label>
-//            </div>
-//            <div id="billing-buttons-container" class="actions buttons-set form-buttons btn-only">
-//                <div class="primary">
-//                    <button class="button action continue" type="button"><span>Continue</span></button>
-//                </div>
-//            </div>
-//        </form>
-//    </div>
-//  ```
-//
-
-.opc {
-    .fieldset {
-        margin: 20px 0;
-        .formCols();
-    }
-    .field {
-        margin-bottom: 10px;
-    }
-    .field.fullname + .field.company,
-    .field.name-lastname + .field.company,
-    .field.country,
-    .field.taxvat {
-        margin: 0 40% 30px 0;
-    }
-    .actions .primary .action {
-        &:extend(.primary.action all);
-    }
-    .form {
-        &:extend(.hasRequired all);
-    }
-}
-
-//  #Payment method credit card form
-//  This form differs from the standard layout by its code and by design. Here labels are in the same line as inputs. It is necessary to replace the code by the new one.
-//
-//  ```html
-//    <ul class="form-list">
-//        <li>
-//            <label for="ccsave_cc_type" class="required"><em>*</em>Credit Card Type</label>
-//            <div class="input-box">
-//                <select id="ccsave_cc_type" name="payment[cc_type]">
-//                    <option value="">--Please Select--</option>
-//                    <option value="AE">American Express</option>
-//                    <option value="VI">Visa</option>
-//                    <option value="MC">MasterCard</option>
-//                    <option value="DI">Discover</option>
-//                </select>
-//            </div>
-//        </li>
-//        <li>
-//            <label for="ccsave_cc_number" class="required"><em>*</em>Credit Card Number</label>
-//            <div class="input-box">
-//                <input type="text" name="payment[cc_number]" class="input-text" value="">
-//            </div>
-//        </li>
-//        <li>
-//            <label for="ccsave_expiration" class="required"><em>*</em>Expiration Date</label>
-//            <div class="input-box">
-//                <div class="v-fix">
-//                    <select name="month" class="month">
-//                        <option value="" selected="selected">Month</option>
-//                        <option value="1">01 - January</option>
-//                        <option value="2">02 - February</option>
-//                        <option value="3">03 - March</option>
-//                        <option value="4">04 - April</option>
-//                        <option value="5">05 - May</option>
-//                        <option value="6">06 - June</option>
-//                        <option value="7">07 - July</option>
-//                        <option value="8">08 - August</option>
-//                        <option value="9">09 - September</option>
-//                        <option value="10">10 - October</option>
-//                        <option value="11">11 - November</option>
-//                        <option value="12">12 - December</option>
-//                    </select>
-//                </div>
-//                <div class="v-fix">
-//                    <select name="year" class="year">
-//                        <option value="" selected="selected">Year</option>
-//                        <option value="2013">2013</option>
-//                        <option value="2014">2014</option>
-//                        <option value="2015">2015</option>
-//                        <option value="2016">2016</option>
-//                        <option value="2017">2017</option>
-//                        <option value="2018">2018</option>
-//                        <option value="2019">2019</option>
-//                        <option value="2020">2020</option>
-//                        <option value="2021">2021</option>
-//                        <option value="2022">2022</option>
-//                        <option value="2023">2023</option>
-//                    </select>
-//                </div>
-//            </div>
-//        </li>
-//    </ul>
-//  ```
-//
-
-.form-list {
-    .resetList();
-    .required {
-        em {
-            display: none;
-        }
-        &:first-child:after {
-            color: @requiredField;
-            content: '*';
-        }
-    }
-    > li {
-        .clearfix();
-        margin: 0 0 10px;
-        .field {
-            .clearfix();
-            margin: 10px 0 0;
-            &:first-child {
-                margin: 0;
-            }
-        }
-        > label,
-        .field > label {
-            .box-sizing();
-            clear: left;
-            float: left;
-            padding: 7px 10px 0 0;
-            text-align: right;
-            width: 30%;
-        }
-        .input-box {
-            float: left;
-            width: 70%;
-            > input,
-            > select,
-            > textarea {
-                width: 100%;
-            }
-            > .v-fix {
-                float: left;
-                margin: 0 10px 0 0;
-            }
-        }
-    }
-}
-
-//  #Shopping Cart
-//  #Shopping cart estimation settings
-//  The shopping card estimation settings design differs from standard form layout by the code and by the design. Here the code and the styles are provided.
-//
-//  ```html
-//    <div class="cart summary">
-//
-//        <div class="block shipping active">
-//            <div class="title active"><strong>Estimate Shipping and Tax</strong></div>
-//            <div class="content">
-//            <form>
-//                <fieldset class="fieldset estimate">
-//                    <p class="field note">Enter your destination to get a shipping estimate.</p>
-//                    <div class="field country">
-//                        <label for="country" class="label"><span>Country</span></label>
-//                        <div class="control">
-//                            <select name="country_id" id="country" class="validate-select" title="Country">
-//                                <option value=""></option>
-//                                <option value="GB">United Kingdom</option>
-//                                <option value="US">United States</option>
-//                            </select>
-//                        </div>
-//                    </div>
-//                    <div class="field region">
-//                        <label for="region_id" class="label"><span>State/Province</span></label>
-//                        <div class="control">
-//                            <select name="region_id" title="State/Province" class="required-entry" defaultvalue="43">
-//                                <option value=""></option>
-//                                <option value="1" title="Alabama">Alabama</option>
-//                                <option value="2" title="Alaska">Alaska</option>
-//                                <option value="4" title="Arizona">Arizona</option>
-//                            </select>
-//                        </div>
-//                    </div>
-//                    <div class="field city">
-//                        <label for="city" class="label"><span>City</span></label>
-//                        <div class="control">
-//                            <input class="input-text" type="text" name="estimate_city" value="">
-//                        </div>
-//                    </div>
-//                    <div class="field postcode">
-//                        <label for="postcode" class="label"><span>Zip/Postal Code</span></label>
-//                        <div class="control">
-//                            <input class="input-text validate-postcode required-entry" type="text" name="estimate_postcode" value="">
-//                        </div>
-//                    </div>
-//                    <div class="actions">
-//                        <button type="submit" class="action quote"><span>Get a Quote</span></button>
-//                    </div>
-//                </fieldset>
-//            </form>
-//            <form>
-//                <fieldset class="fieldset rates">
-//                    <dl class="items methods">
-//                        <dt class="item title"><span>Flat Rate</span></dt>
-//                        <dd class="item options">
-//                            <div class="field choice item">
-//                                <input type="radio" class="radio" value="flatrate_flatrate" name="estimate_method">
-//                                <label for="s_method_flatrate_flatrate" class="label">
-//                                    <span>Fixed</span>
-//                                    <span class="price">$15.00</span>
-//                                </label>
-//                            </div>
-//                        </dd>
-//                    </dl>
-//                    <div class="actions">
-//                        <button value="Update Total" name="do" class="action update" type="submit"><span>Update Total</span></button>
-//                    </div>
-//                </fieldset>
-//            </form>
-//        </div>
-//
-//        <div class="block discount active">
-//            <div class="title active"><strong>Discount Codes</strong></div>
-//            <div class="content">
-//                <form>
-//                    <fieldset class="fieldset coupon">
-//                        <div class="field">
-//                            <label class="label" for="coupon_code"><span>Enter your coupon code if you have one.</span></label>
-//
-//                            <div class="control">
-//                                <input type="text" value="" name="coupon_code" class="input-text">
-//                            </div>
-//                        </div>
-//                        <div class="actions">
-//                            <div class="primary">
-//                                <button value="Apply Coupon" type="button" class="action apply">
-//                                    <span>Apply Coupon</span>
-//                                </button>
-//                            </div>
-//                        </div>
-//                    </fieldset>
-//                </form>
-//                </div>
-//            </div>
-//        </div>
-//
-//
-//    </div>
-//  ```
-//
-
-.cart.summary {
-    .fieldset {
-        border: 0;
-        font-size: @baseFontSizeMiddle;
-        padding: 0;
-        margin: 0;
-        .field {
-            margin: 0 0 10px;
-            &:not(.choice) {
-                .label {
-                    padding: 0 0 5px;
-                    display: block;
-                }
-            }
-        }
-        .action:not(.check) {
-            &:extend(.primary.action all);
-            padding: 6px 11px 5px;
-            span {
-                font-size: @baseFontSizeMiddle;
-                line-height: @baseFontSizeMiddle;
-            }
-        }
-        &.coupon,
-        &.estimate {
-            .actions {
-                display: table-cell;
-                width: 1%;
-                white-space: nowrap;
-                vertical-align: bottom;
-            }
-        }
-        &.coupon .field,
-        .field.postcode {
-            display: table-cell;
-            padding-right: 10px;
-            vertical-align: bottom;
-            width: 99%;
-            div.mage-error {
-                position: absolute;
-            }
-        }
-        &.rates {
-            padding-top: 25px;
-            .actions {
-                text-align: right;
-            }
-        }
-    }
-    .title {
-        cursor: pointer;
-        line-height: @baseFontSizeBigger;
-        margin: 0;
-        padding: 10px 5px;
-    }
-    .content {
-        padding: 15px 15px 20px;
-    }
-    input[type="text"] {
-        padding: 0 5px;
-        font-size: 12px;
-        height: 30px;
-    }
-    select {
-        padding: 5px 5px 4px;
-        font-size: 12px;
-    }
-    .items.methods {
-        dt {
-            font-weight: @baseFontWeightBolder;
-        }
-        dd {
-            margin: 10px 10px 25px;
-        }
-    }
-}
-
-//  #Popup
-//  ```html
-//        <div class="popup">
-//            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed lobortis magna, quis tincidunt elit. Donec molestie scelerisque ligula, ut eleifend nisl laoreet nec. Vivamus dapibus urna id risus porttitor cursus.</p>
-//            <p>Etiam lorem leo, accumsan quis est sit amet, tempus pellentesque ante. Donec rutrum convallis lacus, ac iaculis nulla scelerisque a. Pellentesque malesuada, mi eu condimentum volutpat, mi turpis congue sapien, et ornare nunc nunc vitae nibh. Duis scelerisque purus a sapien ultrices tempor. Sed nec blandit mauris, vel volutpat dolor.</p>
-//            <p>Vestibulum viverra tempus mi a accumsan. Nunc congue quis leo sed scelerisque. Fusce scelerisque magna nulla, sed malesuada nunc congue vel. Donec placerat malesuada bibendum. Nam bibendum nunc at neque consequat placerat. Aenean eu rutrum sapien. Vivamus vel mi urna. Suspendisse sit amet elit nunc.</p>
-//            <span data-dismiss="popup" class="close"></span>
-//        </div>
-//        <br>
-//        <br>
-//        <div class="popup system">
-//            <header class="header">
-//                Popup header
-//            </header>
-//            <div class="content">
-//                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed lobortis magna, quis tincidunt elit. Donec molestie scelerisque ligula, ut eleifend nisl laoreet nec. Vivamus dapibus urna id risus porttitor cursus.</p>
-//                <p>Etiam lorem leo, accumsan quis est sit amet, tempus pellentesque ante. Donec rutrum convallis lacus, ac iaculis nulla scelerisque a. Pellentesque malesuada, mi eu condimentum volutpat, mi turpis congue sapien, et ornare nunc nunc vitae nibh. Duis scelerisque purus a sapien ultrices tempor. Sed nec blandit mauris, vel volutpat dolor.</p>
-//                <p>Vestibulum viverra tempus mi a accumsan. Nunc congue quis leo sed scelerisque. Fusce scelerisque magna nulla, sed malesuada nunc congue vel. Donec placerat malesuada bibendum. Nam bibendum nunc at neque consequat placerat. Aenean eu rutrum sapien. Vivamus vel mi urna. Suspendisse sit amet elit nunc.</p>
-//            </div>
-//            <footer class="footer">
-//                <div class="actions">
-//                    <button type="button" class="action submit">OK</button>
-//                    <button type="button" class="action cancel">Cancel</button>
-//                </div>
-//            </footer>
-//            <span data-dismiss="popup" class="close"></span>
-//        </div>
-//    </div>
-//
-//    <div class="wrapper">
-//        <div class="fade">
-//            <div class="popup">
-//                <header class="header">
-//                    Popup header
-//                </header>
-//                <div class="content">
-//                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed lobortis magna, quis tincidunt elit. Donec molestie scelerisque ligula, ut eleifend nisl laoreet nec. Vivamus dapibus urna id risus porttitor cursus.</p>
-//                    <p>Etiam lorem leo, accumsan quis est sit amet, tempus pellentesque ante. Donec rutrum convallis lacus, ac iaculis nulla scelerisque a. Pellentesque malesuada, mi eu condimentum volutpat, mi turpis congue sapien, et ornare nunc nunc vitae nibh. Duis scelerisque purus a sapien ultrices tempor. Sed nec blandit mauris, vel volutpat dolor.</p>
-//                    <p>Vestibulum viverra tempus mi a accumsan. Nunc congue quis leo sed scelerisque. Fusce scelerisque magna nulla, sed malesuada nunc congue vel. Donec placerat malesuada bibendum. Nam bibendum nunc at neque consequat placerat. Aenean eu rutrum sapien. Vivamus vel mi urna. Suspendisse sit amet elit nunc.</p>
-//                </div>
-//                <footer class="footer">
-//                    Some footer text
-//                    <div class="actions">
-//                        <button type="button" class="action submit">OK</button>
-//                        <button type="button" class="action cancel">Cancel</button>
-//                    </div>
-//                </footer>
-//                <span class="close" data-dismiss="popup"></span>
-//            </div>
-//        </div>
-//    </div>
-//  ```
-//
-
-.popup {
-    background: @primary2;
-    border: 1px solid @primary3;
-    display: inline-block;
-    padding: 20px;
-    position: relative;
-    > .close {
-        color: @primary4;
-        cursor: pointer;
-        position: absolute;
-        right: 5px;
-        top: 3px;
-        .iconBefore(@icon-close-thick, 12px, 0, "icons");
-        &:hover {
-            color: @primary6;
-        }
-    }
-    .fade & {
-        background: @pageMainBg;
-        box-shadow: 0 0 10px 0 @primary4;
-    }
-    > .header,
-    > .content {
-        margin: 0 0 5px;
-    }
-    > .header {
-        font-size: @baseFontSizeBigger;
-        font-weight: @baseFontWeightBolder;
-    }
-    .actions {
-        margin: 15px 0 0;
-        .action.submit {
-            &:extend(.primary.action all);
-            margin-right: 10px;
-        }
-        .action.cancel {
-            &:extend(.secondary.action all);
-        }
-    }
-    &.system {
-        background: @pageMainBg;
-        padding: 0;
-        > .header {
-            background: @primary2;
-            border-bottom: 1px solid @primary3;
-            border-radius: 5px 5px 0 0;
-            cursor: move;
-            padding: 10px 20px;
-        }
-        > .content {
-            padding: 20px;
-        }
-        > .footer {
-            border-top: 1px solid @primary3;
-            padding: 10px 20px;
-        }
-        .actions {
-            margin: 0;
-        }
-        .close {
-            right: 8px;
-            top: 8px;
-        }
-    }
-}
-
-.fade {
-    background-color: @primeBlackOpacity;
-    position: relative;
-    left: 0;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    padding: 10%;
-}
-
-
-//  #CSS tooltip
-//
-//  ####Accepted parameters
-//  **.tooltipSimple(*[background]*, *[color]*, *[fontSize]*, *[margin]*, *[padding]*, *[maxWidth]*, *[cursor]*);**
-//
-//  Tooltip can be added to any element
-//  ```html
-//  Projects in Sublime Text capture the full contents of the workspace,
-//  <span class="tooltip">
-//  <strong>Your content</strong>
-//  <div class="tooltip-content">Tooltip content</div>
-//  </span>
-//  including modified and unsaved files.
-//  You can switch between projects in a manner similar to Goto Anything,
-//  and the switch is instant, with no save prompts - all your modifications will be restored next time the project is opened.
-//  ```
-//
-
-//  #Radiobutton tooltip
-//
-//  ```html
-//  <div class="field choice tooltip">
-//  <input type="radio" class="radio" checked="" value="1" name="inputRadio">
-//  <label for="inputRadio" class="label"><span>Radiobutton choice</span></label>
-//  <div class="tooltip-content">Tooltip content</div>
-//  </div>
-//  ```
-
-.tooltip {
-    .tooltipCSS(rgba(0,0,0,.5), #fff, 16px, 10px 0 0, 8px, 500px, help);
-}
-
-//  #JS tooltip:
-//
-//  ####Accepted parameters
-//  **.tooltipJS(*[background]*, *[color]*, *[fontSize]*, *[padding]*, *[maxWidth]*);**
-//
-//  ####Add attributes to the tag:
-//
-//  **tooltip**="text tooltip"
-//
-//  **tooltip-position**="n, nw, ne, w, e, s, sw, se"
-//
-//  ```html
-//  <div class="example-tooltips">
-//    <button tooltip="Tooltip content positioned by <strong class='example-tooltip-elem'>tooltip-position='nw'</strong>" tooltip-position="nw">
-//      <span>&#8598;</span>
-//    </button>
-//    <button tooltip="Tooltip content positioned by <strong class='example-tooltip-elem'>tooltip-position='n'</strong>" tooltip-position="n">
-//      <span>&#8593;</span>
-//    </button>
-//    <button tooltip="Tooltip content positioned by <strong class='example-tooltip-elem'>tooltip-position='ne'</strong>" tooltip-position="ne">
-//      <span>&#8599;</span>
-//    </button>
-//    <div class="separator"></div>
-//    <button tooltip="Tooltip content positioned by <strong class='example-tooltip-elem'>tooltip-position='w'</strong>" tooltip-position="w">
-//      <span>&#8592;</span>
-//    </button>
-//    <button tooltip="Default tooltip content from <strong class='example-tooltip-elem'>'tooltip'</strong> attribute">
-//      <span>Default</span>
-//    </button>
-//    <button tooltip="Tooltip content positioned by <strong class='example-tooltip-elem'>tooltip-position='e'</strong>" tooltip-position="e">
-//      <span>&#8594;</span>
-//    </button>
-//    <div class="separator"></div>
-//    <button tooltip="Tooltip content positioned by <strong class='example-tooltip-elem'>tooltip-position='sw'</strong>" tooltip-position="sw">
-//      <span>&#8601;</span>
-//    </button>
-//    <button tooltip="Tooltip content positioned by <strong class='example-tooltip-elem'>tooltip-position='s'</strong>" tooltip-position="s">
-//      <span>&#8595;</span>
-//    </button>
-//    <button tooltip="Tooltip content positioned by <strong class='example-tooltip-elem'>tooltip-position='se'</strong>" tooltip-position="se">
-//      <span>&#8600;</span>
-//    </button>
-//  <div>
-//  ```
-
-.tipsy {
-    .tooltipJS(rgba(0,0,0,.9), #fff);
-}
-
-//  #Tooltip mixins:
-.tooltipCSS(@background: @primeBlackOpacity, @color: @primary7, @fontSize: 16px, @margin: 10px 0 0, @padding: 4px 8px, @maxWidth: 200px, @cursor: help) {
-    display: inline-block;
-    vertical-align: middle;
-    line-height: 1.1;
-    cursor: @cursor;
-    .tooltip-content {
-        display: none;
-        position: absolute;
-        max-width: @maxWidth;
-        margin: @margin;
-        padding: @padding;
-        background: @background;
-        color: @color;
-        border-radius: 3px;
-        z-index: 20;
-        &:before {
-            content: '';
-            position: absolute;
-            width: 0;
-            height: 0;
-            top: -5px;
-            left: 20px;
-            border-left: 5px solid transparent;
-            border-right: 5px solid transparent;
-            border-bottom: 5px solid @background;
-        }
-    }
-    &:hover > .tooltip-content {
-        display: block;
-    }
-}
-
-.tooltipJS(@background: @primeBlackOpacity, @color: @primary7, @fontSize: 16px, @padding: 5px, @maxWidth: 200px) {
-    position: absolute;
-    left: 0;
-    top: 0;
-    display: none;
-    padding: @padding;
-    font-size: @fontSize;
-    z-index: 9999;
-    .tipsy-inner {
-        padding: 5px 8px 4px;
-        background-color: @background;
-        color: @color;
-        max-width: @maxWidth;
-        border-radius: 3px;
-    }
-    .tipsy-arrow {
-        position: absolute;
-        width: 0;
-        height: 0;
-        border-left: 5px solid transparent;
-        border-right: 5px solid transparent;
-        border-bottom: 5px solid @background;
-    }
-    &.tipsy-s .tipsy-arrow {
-        top: 0;
-        left: 50%;
-        margin-left: -4px;
-    }
-    &.tipsy-se .tipsy-arrow {
-        top: 0;
-        left: 10px;
-    }
-    &.tipsy-sw .tipsy-arrow {
-        top: 0;
-        right: 10px;
-    }
-    &.tipsy-n .tipsy-arrow,
-    &.tipsy-ne .tipsy-arrow,
-    &.tipsy-nw .tipsy-arrow {
-        bottom: 0;
-        border-left: 5px solid transparent;
-        border-right: 5px solid transparent;
-        border-top: 5px solid @background;
-        border-bottom: none;
-    }
-    &.tipsy-n .tipsy-arrow {
-        left: 50%;
-        margin-left: -4px;
-    }
-    &.tipsy-ne .tipsy-arrow {
-        left: 10px;
-    }
-    &.tipsy-nw .tipsy-arrow {
-        right: 10px;
-    }
-    &.tipsy-w .tipsy-arrow,
-    &.tipsy-e .tipsy-arrow {
-        top: 50%;
-        margin-top: -4px;
-        border-top: 5px solid transparent;
-        border-bottom: 5px solid transparent;
-    }
-    &.tipsy-w .tipsy-arrow {
-        right: 0;
-        border-right: none;
-        border-left: 5px solid @background;
-    }
-    &.tipsy-e .tipsy-arrow {
-        left: 0;
-        border-right: 5px solid @background;
-        border-left: none;
-    }
-}
-
-
-.example-tooltips {/*presentation styles*/
-    padding: 70px;
-    text-align: center;
-}
-
-.example-tooltips button {/*presentation styles*/
-    width: 70px;
-    height: 70px;
-    font-size: 18px;
-    margin: 10px 5px;
-}
diff --git a/app/design/frontend/Magento/plushe/css/source/vars.less b/app/design/frontend/Magento/plushe/css/source/vars.less
deleted file mode 100644
index 92730eb39d74a873090a506816c96797a2286c30..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/source/vars.less
+++ /dev/null
@@ -1,283 +0,0 @@
-// /**
-// //  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
-//  *
-//  * @category    design
-//  * @package     magento2_reference
-//  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
-//  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
-//  */
-
-// Primary colors
-@primary1: #f8f8f8;
-@primary2: #e5e5e5;
-@primary3: #c2c2c2;
-@primary4: #999;
-@primary5: #837d75;
-@primary6: #675f55;
-@primary7: #fff;
-@primeBlack: #7f7f7f;
-@primeBlackOpacity: rgba(0, 0, 0, 0.5);
-@commonBg: #fff;
-
-// Secondary colors
-@secondary1: #da370a;
-@secondary2: #55c2e6;
-
-// Buttons
-@primaryActionBg: @secondary1;
-@primaryActionBgH: darken(@secondary1, 10%);
-@primaryActionColor: #fff;
-
-@secondaryActionBg: @primary3;
-@secondaryActionBgH: darken(@primary3, 10%);
-@secondaryActionColor: #fff;
-
-@actionFont: 600 14px/16px;
-
-// Tooltip
-@optionsBg: rgba(0, 0, 0, .8);
-@optionsColor: #fff;
-
-// Layout
-@LayoutMaxWidth: 1025px;
-@LayoutMinWidth: 1025px;
-
-// Links
-@link: #332e29;
-@linkHover: @secondary1;
-
-// Base font
-@baseFont: "sourcesanspro";
-@baseFontSizeBigger: 16px;
-@base-font-size: 14px; // re-declarate base font size for clearLess
-@baseFontSize: 14px;
-@baseFontSizeMiddle: 12px;
-@baseFontSizeSmall: 10px;
-@baseFontWeight: 400;
-@baseFontWeightLighter: 200;
-@baseFontWeightBolder: 700;
-@baseLineHeight: 1.33;
-@baseColor: @primary6;
-
-@pageMainBg: #fff;
-@headerBg: #d6d7d2;
-@headerBgImage: url("@{baseDir}/images/header-bg.jpg");
-@pageBottomBg: @pageMainBg;
-@footerBg: @pageMainBg;
-@textColor: @primary6;
-@linksColor: @primary6;
-@gutter-width: 0;
-@using-ieclasses: false;
-
-// Headings:
-// H1
-@h1font: 200 30px/1.2 @baseFont;
-@h1color: @primary6;
-
-// H2
-@h2font: 400 20px/1.2 @baseFont;
-@h2color: @primary6;
-
-// H3
-@h3font: 600 18px/1.2 @baseFont;
-@h3color: @primary6;
-
-// H4
-@h4font: 600 16px/1.2 @baseFont;
-@h4color: @primary6;
-
-// H5
-@h5font: 600 14px/1.2 @baseFont;
-@h5color: @primary6;
-
-// H6
-@h6font: 600 12px/1.2 @baseFont;
-@h6color: @primary6;
-
-// Forms
-@legendFontSize: 20px;
-@fieldBg: #fff;
-
-// Required fields and validation
-@requiredField:   #da370a;
-@nonValidHilight: #da370a;
-@validHilight:    #42b649;
-
-// Messages colors
-@messageIconColor: #fff;
-// Success message
-@messageSuccessColor:  #1b6720;
-@messageSuccessBg:     #d3edd5;
-@messageSuccessIconBg: #42b649;
-// Error message
-@messageErrorColor:  #911c00;
-@messageErrorBg:     #ffd9d0;
-@messageErrorIconBg: #ff3200;
-// Notice message, Info message
-@messageNoticeColor:  #926e00;
-@messageNoticeBg:     #ffedb8;
-@messageNoticeIconBg: #ffc000;
-
-@baseDir: ~".."; //default
-@paypalRetinaButton: url("@{baseDir}/images/express-checkout-retina.png");
-
-// # Icons
-//  ```
-//  <span class="icon example" data-icon="&#xe006;">@icon-pencil</span>
-//  <span class="icon example" data-icon="&#xe007;">@icon-menu</span>
-//  <span class="icon example" data-icon="&#xe008;">@icon-location</span>
-//  <span class="icon example" data-icon="&#xe00a;">@icon-info</span>
-//  <span class="icon example" data-icon="&#xe00c;">@icon-flag</span>
-//  <span class="icon example" data-icon="&#xe00d;">@icon-expand</span>
-//  <span class="icon example" data-icon="&#xe00e;">@icon-exclamation</span>
-//  <span class="icon example" data-icon="&#xe010;">@icon-dropdown</span>
-//  <span class="icon example" data-icon="&#xe011;">@icon-collapse</span>
-//  <span class="icon example" data-icon="&#xe012;">@icon-close-thick</span>
-//  <span class="icon example" data-icon="&#xe013;">@icon-checkmark</span>
-//  <span class="icon example" data-icon="&#xe014;">@icon-cart</span>
-//  <span class="icon example" data-icon="&#xe015;">@icon-arrow-up-thin</span>
-//  <span class="icon example" data-icon="&#xe016;">@icon-arrow-right-thin</span>
-//  <span class="icon example" data-icon="&#xe017;">@icon-arrow-left-thin</span>
-//  <span class="icon example" data-icon="&#xe018;">@icon-arrow-down-thin</span>
-//  <span class="icon example" data-icon="&#xe019;">@icon-arrow-up-thick</span>
-//  <span class="icon example" data-icon="&#xe01a;">@icon-arrow-right-thick</span>
-//  <span class="icon example" data-icon="&#xe01b;">@icon-arrow-left-thick</span>
-//  <span class="icon example" data-icon="&#xe01c;">@icon-arrow-down-thick</span>
-//  <span class="icon example" data-icon="&#xe01d;">@icon-wishlist</span>
-//  <span class="icon example" data-icon="&#xe01e;">@icon-comment</span>
-//  <span class="icon example" data-icon="&#xe01f;">@icon-comment-reflected</span>
-//  <span class="icon example" data-icon="&#xe002;">@icon-list</span>
-//  <span class="icon example" data-icon="&#xe003;">@icon-grid</span>
-//  <span class="icon example" data-icon="&#xe004;">@icon-close-thin</span>
-//  <span class="icon example" data-icon="&#xe000;">@icon-trash</span>
-//  <span class="icon example" data-icon="&#xe001;">@icon-envelope</span>
-//  <span class="icon example" data-icon="&#xe005;">@icon-magnifying-glass</span>
-//  <span class="icon example" data-icon="&#xe02b;">@icon-arrow-right-filled</span>
-//  <span class="icon example" data-icon="&#xe02c;">@icon-arrow-bottom-filled</span>
-//  <span class="icon example" data-icon="&#xe02a;">@icon-arrow-left-filled</span>
-//  <span class="icon example" data-icon="&#xe029;">@icon-arrow-up-filled</span>
-//  <span class="icon example" data-icon="&#xe009;">@icon-star</span>
-//  <span class="icon example" data-icon="&#xe00b;">@icon-calendar</span>
-// ```
-
-@icon-pencil: "\e006";
-@icon-menu: "\e007";
-@icon-location: "\e008";
-@icon-info: "\e00a";
-@icon-flag: "\e00c";
-@icon-expand: "\e00d";
-@icon-exclamation: "\e00e";
-@icon-dropdown: "\e010";
-@icon-collapse: "\e011";
-@icon-close-thick: "\e012";
-@icon-checkmark: "\e013";
-@icon-cart: "\e014";
-@icon-arrow-up-thin: "\e015";
-@icon-arrow-right-thin: "\e016";
-@icon-arrow-left-thin: "\e017";
-@icon-arrow-down-thin: "\e018";
-@icon-arrow-up-thick: "\e019";
-@icon-arrow-right-thick: "\e01a";
-@icon-arrow-left-thick: "\e01b";
-@icon-arrow-down-thick: "\e01c";
-@icon-wishlist: "\e01d";
-@icon-comment: "\e01e";
-@icon-comment-reflected: "\e01f";
-@icon-list: "\e002";
-@icon-grid: "\e003";
-@icon-close-thin: "\e004";
-@icon-trash: "\e000";
-@icon-envelope: "\e001";
-@icon-magnifying-glass: "\e005";
-@icon-arrow-right-filled: "\e02b";
-@icon-arrow-bottom-filled: "\e02c";
-@icon-arrow-left-filled: "\e02a";
-@icon-arrow-up-filled: "\e029";
-@icon-star: "\e009";
-@icon-calendar: "\e00b";
-
-// Responsive
-@breakPoint1: 640px;
-@icon-expand-mobile: "+";
-@icon-collapse-mobile: "–";
-
-
-
-
-// Messages variables
-
-@message-border: none;
-@message-border-radius: 3px;
-@message-padding: 13px 20px 12px;
-@message-margin: 3px 0;
-@message-font-size: 14px;
-@message-line-height: 16px;
-@message-icon-font-size: 20px;
-@message-icon-inner-padding-left: 40px;
-@message-icon-lateral-width: 30px;
-
-// Info
-@message-info-color: @messageNoticeColor;
-@message-info-background: @messageNoticeBg;
-@message-info-link-color: @link;
-@message-info-link-color-hover: @linkHover;
-@message-info-icon: @icon-info;
-@message-info-icon-color: #c07600;
-@message-info-icon-background: @messageNoticeIconBg;
-@message-info-border: @message-border;
-
-// Warning
-@message-warning-color: @messageNoticeColor;
-@message-warning-background: @messageNoticeBg;
-@message-warning-link-color: @link;
-@message-warning-link-color-hover: @linkHover;
-@message-warning-icon: @icon-info;
-@message-warning-icon-color: #c07600;
-@message-warning-icon-background: @messageNoticeIconBg;
-@message-warning-border: @message-border;
-
-// Error
-@message-error-color: @messageErrorColor;
-@message-error-background: @messageErrorBg;
-@message-error-link-color: @link;
-@message-error-link-color-hover: @linkHover;
-@message-error-icon: @icon-info;
-@message-error-icon-color: #b30000;
-@message-error-icon-background: @messageErrorIconBg;
-@message-error-border: @message-border;
-
-// Success
-@message-success-color: @messageSuccessColor;
-@message-success-background: @messageSuccessBg;
-@message-success-link-color: @link;
-@message-success-link-color-hover: @linkHover;
-@message-success-icon: @icon-checkmark;
-@message-success-icon-color: #006400;
-@message-success-icon-background: @messageSuccessIconBg;
-@message-success-border: @message-border;
-
-// Notice
-@message-notice-color: @messageNoticeColor;
-@message-notice-background: @messageNoticeBg;
-@message-notice-link-color: @link;
-@message-notice-link-color-hover: @linkHover;
-@message-notice-icon: @icon-info;
-@message-notice-icon-color: #c07600;
-@message-notice-icon-background: @messageNoticeIconBg;
-@message-notice-border: @message-border;
diff --git a/app/design/frontend/Magento/plushe/css/styles.less b/app/design/frontend/Magento/plushe/css/styles.less
deleted file mode 100644
index 2507f5de4d9038d22a25ce1294cf40cea41c7992..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/css/styles.less
+++ /dev/null
@@ -1,5713 +0,0 @@
-/**
-//  * Magento
-//  *
-//  * NOTICE OF LICENSE
-//  *
-//  * This source file is subject to the Academic Free License (AFL 3.0)
-//  * that is bundled with this package in the file LICENSE_AFL.txt.
-//  * It is also available through the world-wide-web at this URL:
-//  * http://opensource.org/licenses/afl-3.0.php
-//  * If you did not receive a copy of the license and are unable to
-//  * obtain it through the world-wide-web, please send an email
-//  * to license@magentocommerce.com so we can send you a copy immediately.
-//  *
-//  * DISCLAIMER
-//  *
-//  * Do not edit or add to this file if you wish to upgrade Magento to newer
-//  * versions in the future. If you wish to customize Magento for your
-//  * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @category    design
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-
-.normalize();
-
-@import "source/clearless/all"; // import ClearLess
-@import "source/styles/base";
-@import "source/lib/snippets";
-@import "source/lib/buttons";
-@import "source/lib/forms";
-@import "source/lib/grids";
-@import "source/lib/icons";
-@import "source/lib/messages";
-@import "source/lib/navigation";
-@import "source/lib/sections";
-@import "source/vars";
-@import "source/styles/magento";
-
-strong {
-    font-weight: 700;
-}
-
-.items {
-    .resetList();
-}
-
-.hidden,
-.no-display {
-    .hidden();
-}
-
-/*
-    Forms
--------------------------------------- */
-.field.required > .label > span:first-child:after {
-    content: '*';
-    color: @requiredField;
-}
-.fields .field {
-    padding-right: 20px;
-}
-
-/*
-    Magento_Theme
--------------------------------------- */
-html, body, button, input, select, textarea {
-    color: @textColor;
-    font: 400 14px/1.33 "sourcesanspro";
-}
-
-html {
-    background: @footerBg;
-}
-
-body {
-    position: relative;
-}
-
-.page.wrapper {
-    background: @pageMainBg;
-}
-
-.action.skip {
-    .visually-hidden();
-}
-
-/*
-    Page Layout
--------------------------------------- */
-.columns {
-    .pageWidth();
-}
-
-.page.main {
-    .clearfix();
-    clear: both;
-    padding: 30px 0;
-}
-
-.page.title {
-    .clearfix();
-    margin-bottom: 30px;
-    .title {
-        display: inline;
-        margin: 0;
-        line-height: 1.2;
-        font-weight: @baseFontWeightLighter;
-        font-size: 30px;
-        color: @primary5;
-    }
-    .action {
-        float: right;
-        &:extend(.primary.action all);
-    }
-}
-
-.page.main > .page.title {
-    .pageWidth();
-    margin-bottom: 30px;
-}
-
-.column.main {
-    min-height: 500px;
-}
-
-.column.left,
-.column.right {
-    .box-sizing();
-    min-height: 1px;
-}
-
-.layout-1 {
-    .column.main {
-        .column(12);
-    }
-}
-
-.layout-2-left {
-    .column.main {
-        float: right !important;
-        .column(10);
-    }
-    .column.left {
-        .column(2);
-        padding-right: 12px;
-    }
-}
-
-.layout-2-right {
-    .column.main {
-        .column(10);
-    }
-    .column.right {
-        .column(2);
-        padding-left: 12px;
-    }
-}
-
-.layout-3 {
-    .column.main {
-        .clearfix();
-        .column(8);
-        float: none !important;
-        display: inline-block !important;
-        vertical-align: top;
-    }
-    .column.left {
-        .column(2);
-        float: left;
-        padding-right: 12px;
-    }
-    .column.right {
-        .column(2);
-        float: none !important;
-        display: inline-block !important;
-        padding-left: 12px;
-    }
-}
-
-/*
-    Header
--------------------------------------- */
-.page.header {
-    background-color: @headerBg;
-    background-image: @headerBgImage;
-    background-repeat: repeat;
-    background-position: 0;
-    border-bottom: 1px solid;
-    .borderColor(@headerBg);
-    padding: 15px 0;
-    > .content {
-        .pageWidth();
-        .clearfix();
-        border: 0;
-        padding-top: 0;
-        padding-bottom: 0;
-        .links {
-            .resetList();
-            margin-bottom: 5px;
-            li {
-                margin-left: 20px;
-                display: inline;
-                text-transform: capitalize;
-            }
-            a {
-                .colorA(@primary5, @secondary1);
-            }
-        }
-        text-align: right;
-    }
-
-    .panel {
-        .pageWidth();
-        .clearfix();
-        margin-bottom: 15px;
-        text-align: right;
-    }
-}
-
-.logo {
-    font-family: "marvel";
-    font-style: normal;
-    font-weight: @baseFontWeight;
-    font-size: 55px;
-    display: block;
-    float: left;
-    line-height: 1;
-    text-align: center;
-    img {
-        display: inline-block;
-        vertical-align: middle;
-        margin: 0 auto;
-    }
-    span {
-        display: inline-block;
-        vertical-align: middle;
-        margin-left: 15px;
-        color: @primary5;
-        margin-top: -8px;
-    }
-    &:active {
-        outline: 0;
-    }
-}
-
-/*
-    Header Banner
--------------------------------------- */
-.page.header .panel .widget {
-    display: inline-block;
-    text-align: left;
-}
-
-.banner-header:visited,
-.banner-header:hover,
-.banner-header {
-    font-size: @baseFontSizeBigger;
-    text-transform: uppercase;
-    color: @secondary1;
-}
-
-/*
-    Search
--------------------------------------- */
-.block.search {
-    float: right;
-    > .content {
-        white-space: nowrap;
-    }
-    .field,
-    .actions,
-    .field .control {
-        float: left;
-    }
-    .actions {
-        margin-right: 0;
-    }
-    .search.autocomplete {
-        background: @primary7;
-        border: 1px solid @primary3;
-        border-width: 0 1px 1px;
-        border-radius: 0 0 5px 5px;
-        overflow: hidden;
-        z-index: 5;
-        display: none;
-        ul {
-            .resetList();
-            li {
-                border-top: 1px solid @primary2;
-                cursor: pointer;
-                padding: 5px 40px 5px 10px;
-                position: relative;
-                text-align: left;
-                white-space: normal;
-                &:first-child {
-                    border-top: none;
-                }
-                &:hover {
-                    background: @primary1;
-                }
-                .amount {
-                    color: @primary4;
-                    font-weight: 600;
-                    position: absolute;
-                    right: 7px;
-                    top: 6px;
-                }
-            }
-        }
-    }
-}
-
-/*
-    Navigation
--------------------------------------- */
-.navigation {
-    z-index: 4;
-    > ul > .level-top {
-        &.hover,
-        &:hover {
-            > .submenu {
-                z-index: 3;
-            }
-        }
-        &.more {
-            > .submenu {
-                background: @primary1;
-                > ul {
-                    .pageWidth();
-                    position: relative;
-                }
-            }
-            &.hover {
-                > .submenu {
-                    border-bottom: 1px solid @primary3;
-                    overflow: visible !important;
-                }
-            }
-        }
-    }
-}
-
-.navigation > ul,
-.navigation > ul > .level0 > .submenu > ul.level0 {
-    .pageWidth();
-    padding-left: 0;
-    padding-right: 0;
-}
-
-@media only screen and (max-width: 640px) {
-    .navigation > ul,
-    .navigation > ul > .level0 > .submenu > ul.level0 {
-        min-width: 100%;
-        max-width: 100%;
-    }
-}
-
-/*
-    General block
--------------------------------------- */
-.column.main .block,
-.sidebar .block {
-    margin-bottom: 45px;
-    > .title {
-        margin-bottom: 15px;
-        strong {
-            line-height: 1.2;
-            font-weight: @baseFontWeightLighter;
-            font-size: 20px;
-        }
-        .qty.counter {
-            font-size: 16px;
-        }
-    }
-    &.filter {
-        .item {
-            margin-bottom: 10px;
-        }
-    }
-}
-
-.qty.counter {
-    &:before {
-        content: "(";
-    }
-    &:after {
-        content: ")";
-    }
-}
-
-.sidebar .block > .title strong {
-    font-size: 18px;
-}
-
-/*
-    Sidebar Paypal logo
--------------------------------------- */
-.sidebar .paypal.acceptance {
-    margin-bottom: 45px;
-}
-
-/*
-    Breadcrumbs
--------------------------------------- */
-.breadcrumbs {
-    .pageWidth();
-    margin-top: 30px;
-}
-
-/*
-    Footer
--------------------------------------- */
-.footer {
-    background: @footerBg;
-    border-top: 1px solid;
-    .borderColor(@footerBg);
-    padding: 30px 0 80px;
-    > .content {
-        .pageWidth();
-        text-align: left;
-        border: 0;
-        padding-top: 0;
-        padding-bottom: 0;
-    }
-    .links {
-        ul {
-            .resetList();
-        }
-        display: inline-block;
-        padding: 0;
-        margin: 1px 3px 19px 0;
-        li {
-            list-style: none;
-            list-style-image: none;
-            margin: 0;
-            padding: 0;
-            display: inline;
-            &:after {
-                content: ' | ';
-            }
-            &:last-child:after {
-                content: '';
-            }
-        }
-        + .links li:first-child:before {
-            content: ' | ';
-        }
-        a {
-            .colorA(@primary5, @secondary1);
-        }
-    }
-    .copyright {
-        font-size: @base-font-size;
-        display: block;
-        padding-top: 10px;
-    }
-    .bugs {
-        margin-top: 25px;
-        font-size: 12px;
-        span {
-            &:after {
-                content: '\00a0\2014\00a0';
-                display: inline-block;
-            }
-        }
-        a {
-            font-weight: bold;
-        }
-    }
-    .switcher-store {
-        margin-bottom: 30px;
-    }
-}
-
-/*
-    Switchers
--------------------------------------- */
-.switcher {
-    display: inline-block;
-    text-align: left;
-    .page.header .panel & {
-        margin-right: 25px;
-        &:last-child {
-            margin-right: 0;
-        }
-    }
-    font-size: 11px;
-    vertical-align: middle;
-    .label {
-        display: none;
-    }
-    strong {
-        color: @primary5;
-        font-weight: 600;
-    }
-    .options {
-        display: inline-block;
-        position: relative;
-        z-index: 1;
-        > ul {
-            .resetList();
-            margin: 0;
-            padding: 5px 10px;
-            position: absolute;
-            top: 100%;
-            right: 0;
-            margin-left: -11px;
-            min-width: 100%;
-            float: left;
-            background: @primary1;
-            border: 1px solid darken(@headerBg, 5%);
-            visibility: hidden;
-            opacity: 0;
-            .transition(visibility 0s linear 2s);
-            li {
-                margin: 5px 0;
-                white-space: nowrap;
-            }
-        }
-        &.active {
-            z-index: 999;
-            > ul {
-                visibility: visible;
-                opacity: 1;
-                .transitionDelay(0s);
-            }
-        }
-        &.active strong,
-        &:hover strong {
-            color: @primary6;
-        }
-    }
-}
-
-.action.switch {
-    .resetAction();
-    vertical-align: top;
-    color: @primary5;
-    span {
-        .iconAfter(@content: '\e02c', @font: "icons");
-        .iconHideText();
-        &:after {
-            line-height: 12px;
-        }
-    }
-    &:focus,
-    &:hover,
-    &.active {
-        color: @primary6;
-    }
-    &.active span:after {
-        content: "\e029";
-    }
-    .no-js &:focus + ul {
-        visibility: visible;
-        opacity: 1;
-        .transitionDelay(0s);
-    }
-}
-
-/*
-    Global Notices
--------------------------------------- */
-.notice.global.site {
-    .box-sizing();
-    position: absolute;
-    width: 100%;
-    padding: 8px;
-    background: #4d5d64;
-    color: #fff;
-    top: 0;
-    left: 0;
-    text-align: center;
-    p {
-        margin: 0;
-    }
-}
-
-/*
-    Additional Information
--------------------------------------- */
-.data.table.additional.attributes {
-    width: 100%;
-    th,
-    td {
-        .box-sizing();
-        padding: 7px 10px;
-        text-align: left;
-    }
-    th {
-        width: 40%;
-    }
-    td {
-        width: 60%;
-    }
-    tr:nth-child(2n+1) th,
-    tr:nth-child(2n+1) td {
-        background: @primary1;
-    }
-}
-
-/*
-    Reviews
--------------------------------------- */
-@starSize : 16px;
-.reviews.summary {
-    line-height: @starSize;
-    .action {
-        font-size: @baseFontSizeMiddle;
-    }
-    .reviews.actions {
-        font-size: @baseFontSizeMiddle;
-        display: inline;
-    }
-    .action.view {
-        span:before {
-            content: ' ';
-        }
-    }
-    .action.view + .action.add {
-        &:before {
-            content: '\00A0|\00A0\00A0';
-            display: inline-block;
-            color: @link;
-        }
-    }
-    &.short:not(.no-rating) {
-        .action.view {
-            span {
-                display: none;
-            }
-            &:before {
-                content: '(';
-                display: inline-block;
-            }
-            &:after {
-                content: ')';
-                display: inline-block;
-            }
-        }
-    }
-}
-
-.block.reviews.dashboard .rating,
-.reviews.summary .rating {
-    width: 5 * @starSize;
-    margin-right: 3px;
-    line-height: 1;
-    color: fade(@secondary1, 30%);
-    display: inline-block;
-    vertical-align: top;
-    margin-top: -1px;
-    > span {
-        display: block;
-        overflow: hidden;
-        color: @secondary1;
-        height: 0;
-        padding-top: @starSize;
-        line-height: 1;
-        margin-top: -@starSize;
-        &:before {
-            margin-top: -@starSize;
-        }
-    }
-    &:before,
-    > span:before {
-        display: block;
-        top: 0;
-        left: 0;
-        width: 100%;
-        font-family: "icons";
-        content: @icon-star@icon-star@icon-star@icon-star@icon-star;
-        font-style: normal;
-        font-size: @starSize;
-        speak: none;
-        font-weight: normal;
-        -webkit-font-smoothing: antialiased;
-    }
-}
-
-/*
-    Customer Reviews
--------------------------------------- */
-.block.reviews.list {
-    margin: 0 0 30px -20px;
-    padding: 0;
-    > .title {
-        display: none;
-    }
-    .item.review {
-        padding: 15px;
-        .review.title {
-            font-weight: 600;
-            display: block;
-            margin: 15px 0;
-        }
-        &:nth-child(odd) {
-            background: @primary1;
-        }
-    }
-    .review.details {
-        .author {
-            strong {
-                text-transform: uppercase;
-                font-weight: 600;
-            }
-        }
-        .review.date {
-            font-size: 12px;
-        }
-        p {
-            margin: 5px 0;
-            span {
-                display: none;
-            }
-        }
-    }
-}
-
-.block.add.review {
-    margin: 0 0 30px -20px;
-    padding: 20px;
-    background: @primary1;
-    .title {
-        display: none;
-    }
-    .fieldset {
-        .formFieldset();
-        border: 0;
-        padding: 0;
-        margin: 0;
-        > .legend {
-            .box-sizing();
-            float: left;
-            width: 100%;
-            margin: 0 0 20px;
-            padding: 10px 0 30px;
-            border-bottom: 1px solid;
-            .borderColor(@primary1);
-            & + br {
-                clear: both;
-                display: block !important;
-            }
-            span {
-                line-height: 1.2;
-                font-weight: @baseFontWeightLighter;
-                font-size: 20px;
-            }
-            strong {
-                margin-left: 20px;
-                font-size: @baseFontSize;
-                font-weight: 600;
-            }
-        }
-        > .field:not(.ratings) {
-            .formField();
-            .fieldStyle();
-            > .label {
-                padding: 0 0 5px;
-            }
-        }
-    }
-    .action.submit {
-        &:extend(.primary.action all);
-    }
-    .action.cancel {
-        .resetAction();
-        .actionLink();
-        position: absolute;
-        left: 100%;
-        text-decoration: underline;
-        text-transform: uppercase;
-        margin-left: 20px;
-        margin-top: 10px;
-    }
-    .actions,
-    .field:not(.ratings) {
-        width: 60%;
-    }
-    .actions {
-        padding-top: 20px;
-        text-align: right;
-        position: relative;
-        z-index: 1;
-    }
-}
-
-/*
-    Review details
--------------------------------------- */
-.review.view {
-    .product.name {
-        display: inline-block;
-        margin: 0;
-    }
-    .product.details {
-        float: left;
-        margin-right: 30px;
-    }
-    .product.photo {
-        display: block;
-        margin-bottom: 30px;
-    }
-    .review.details {
-        margin: 30px 0;
-        display: table;
-
-        .ratings.summary {
-            margin-bottom: 30px;
-            strong {
-                font-weight: 600;
-                display: block;
-                margin: 0 0 15px;
-            }
-            .item {
-                display: table-row;
-            }
-            .label {
-                padding: 0 0 10px;
-                padding-right: 10px;
-                display: table-cell;
-                &:after {
-                    content: ': ';
-                }
-            }
-        }
-        .review.date {
-            font-size: @baseFontSizeMiddle;
-        }
-        .review.title {
-            font-weight: 600;
-            font-size: @baseFontSizeBigger;
-            margin: 0 0 15px;
-        }
-    }
-}
-
-.customer.review.view + .actions {
-    clear: both;
-}
-
-/*
-    Messages
--------------------------------------- */
-.page.messages {
-    .pageWidth();
-    margin: 15px auto;
-}
-
-/*
-    Magento_Checkout
-    One page
--------------------------------------- */
-.block.progress.onepage {
-    .content > dt {
-        font-size: @baseFontSizeBigger;
-        font-weight: @baseFontWeight;
-        margin: 0 0 10px 0;
-        a {
-            font-size: @baseFontSize;
-        }
-    }
-    dd.complete {
-        padding: 0;
-        margin: 0 0 30px;
-        .cards.items {
-            dd {
-                margin-left: 0;
-                .card.item {
-                    font-size: 12px;
-                    margin: 5px 0 10px;
-                    dt {
-                        font-weight: bold;
-                    }
-                    dd {
-                        margin-bottom: 5px;
-                    }
-                }
-            }
-        }
-    }
-    address {
-        font-style: normal;
-    }
-}
-
-// Payment methods - for OPC and Order pages
-.payment.method {
-    .block.progress.onepage &,
-    .order.details .block.order & {
-        margin: 0;
-        .content {
-            margin: 5px 0;
-            padding: 0;
-        }
-        &.purchase.order,
-        &.checkmemo {
-            .content strong:after {
-                content: ": ";
-            }
-            .content .number {
-                white-space: nowrap;
-            }
-        }
-        .data.table {
-            th {
-                font-size: 14px;
-                padding: 5px 0;
-                text-align: left;
-                width: 50%;
-            }
-            td {
-                padding: 5px;
-            }
-        }
-    }
-}
-
-
-.opc.wrapper {
-    > .opc {
-        .resetList();
-        .section {
-            margin-bottom: 4px;
-            > .step.title {
-                padding: 15px 20px;
-                line-height: 1;
-                background: @secondary1;
-                font-size: 22px;
-                h2 {
-                    font-weight: @baseFontWeight;
-                    font-size: 18px;
-                    margin: 0;
-                    padding: 0;
-                    color: #fff;
-                }
-                .number {
-                    display: none;
-                }
-            }
-            &.active {
-                > .step.title {
-                    background: @primary1;
-                    margin-bottom: 0;
-                    h2 {
-                        color: @primary6;
-                    }
-                }
-            }
-            &.allow > .step.title {
-                cursor: pointer;
-                h2:after {
-                    display: block;
-                }
-            }
-            > .step.content {
-                padding: 0 20px 20px;
-                background: @primary1;
-                &:before {
-                    content: '';
-                    border-top: 3px solid @primary2;
-                    display: block;
-                    margin-bottom: 20px;
-                }
-            }
-        }
-    }
-    .form:not(.login) {
-        .fieldset {
-            .formCols();
-            padding: 0;
-            margin: 20px 0;
-            border: 0;
-            position: relative;
-        }
-        .field {
-            .fieldStyle();
-            &:not(.choice) {
-                .label {
-                    display: block;
-                    padding-bottom: 5px;
-                }
-            }
-        }
-        .field.fullname + .field.company,
-        .field.name-lastname + .field.company,
-        .field.country,
-        .field.taxvat {
-            margin: 0 40% 30px 0;
-        }
-        .field.confirm,
-        .field.password {
-            margin-top: 20px;
-            margin-bottom: 20px;
-        }
-        .field.choice {
-            width: 100%;
-            display: block;
-        }
-        .field.persistent,
-        .field.save {
-            margin: 20px 0 0;
-        }
-        .field.addresses {
-            margin-bottom: 20px;
-        }
-        &:after {
-            content: attr(data-hasrequired);
-            display: block;
-            letter-spacing: normal;
-            word-spacing: normal;
-            color: @secondary1;
-        }
-    }
-    .actions {
-        .clearfix();
-        text-align: right;
-        button.action {
-            float: right;
-            &:extend(.primary.action all);
-        }
-        .secondary {
-            padding-top: 10px;
-            clear: right;
-            float: right;
-        }
-    }
-    .check.payable {
-        margin: 0 0 0 20px;
-        .title {
-            display: inline-block;
-            padding: 5px 0;
-            width: 30%;
-        }
-        .content {
-            display: inline-block;
-            margin: 0;
-            padding: 5px 0;
-            width: 68%;
-        }
-    }
-    .methods.payment {
-        margin:15px 0;
-        .item.content {
-            padding:0;
-            & > * {
-                padding:15px 0;
-            }
-        }
-        .items,
-        .fieldset.items {
-            margin: 0 0 0 6px;
-        }
-        .paypal.field.items {
-            padding: 0;
-            width: 100%;
-        }
-        .paypal.icon {
-            display: inline-block;
-            margin-right: 5px;
-            vertical-align: middle;
-        }
-    }
-}
-
-.action.toggle.checkout.progress {
-    display: none;
-}
-
-.opc.loading .active {
-    position: relative;
-    z-index: 1;
-    &:before {
-        content: '';
-        display: block;
-        position: absolute;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background: rgba(255, 255, 255, 0.1);
-    }
-    .actions .secondary,
-    .actions .primary {
-        visibility: hidden;
-        overflow: hidden;
-        height:0px;
-    }
-    .actions .load.indicator {
-        margin-top:0;
-    }
-}
-
-.fieldset.ccard {
-    > .legend {
-        margin:15px 0;
-    }
-    .formCols();
-    padding: 20px 0;
-    margin: 20px 0;
-    border: 0;
-    position: relative;
-}
-.fieldset.ccard .field {
-    &.logos {
-        img {
-            display: inline-block;
-            vertical-align: middle;
-        }
-    }
-    .fieldStyle();
-    &:not(.choice) {
-        .label {
-            display: block;
-            padding-bottom: 5px;
-        }
-    }
-    &.cvv {
-        input.cvv { width:80px; }
-        .tooltip {
-            .box-shadow(0 0 3px rgba(0,0,0,0.25));
-            background: @primary7;
-            border: 1px solid @primary3;
-            z-index: 99;
-            width:500px;
-            height:250px;
-            position: fixed;
-            float:left;
-            top:50%;
-            left:50%;
-            padding:25px;
-            text-align: center;
-            margin:-125px 0 0 -250px;
-            background-color:@pageMainBg;
-            border:1px solid @primary2;
-            &:before {
-                content:'';
-                position: fixed;
-                z-index: -1;
-                display: block;
-                top:0; left: 0; right:0; bottom: 0;
-                background-color:fade(@pageMainBg, 15%);
-            }
-        }
-    }
-}
-
-/*
-    Load Indicator
--------------------------------------- */
-.load.indicator {
-    display: inline-block;
-    padding: 8px;
-    vertical-align: middle;
-    span {
-        display: block;
-        line-height: 16px;
-        &:before {
-            content: '';
-            margin-right: 5px;
-            display: inline-block;
-            width: 16px;
-            height: 16px;
-            background: url(../images/loader.gif) no-repeat 0 0;
-            background-color: @secondary1;
-            vertical-align: top;
-        }
-    }
-}
-
-/*
-    Step Login
--------------------------------------- */
-.step.login.wrapper {
-    .clearfix();
-    position: relative;
-    z-index: 1;
-    padding-bottom: 70px;
-    .block {
-        .column(6);
-        .box-sizing();
-        .fieldset {
-            border: 0;
-            margin: 0;
-            padding: 0;
-            .field {
-                width: 100%;
-            }
-        }
-        &.guest {
-            padding-left: 50px;
-            &:before {
-                content: '';
-                border-left: 1px solid @primary2;
-                position: absolute;
-                top: 0;
-                margin-left: -25px;
-                bottom: 20px;
-            }
-        }
-    }
-    button.action:not(.reload) {
-        &:extend(.primary.action all);
-    }
-    .actions {
-        position: absolute;
-        bottom: 0;
-        padding: 20px 0;
-        text-align: right;
-        margin: 0;
-        width: 50%;
-        .secondary {
-            font-size: @baseFontSizeMiddle;
-            margin-top: .5em;
-            line-height: 1.4em;
-            margin-bottom: -1.9em;
-        }
-    }
-    .guest .actions {
-        margin-left: -50px;
-    }
-}
-
-.fieldset.guest {
-    > .field {
-        .fieldStyle();
-    }
-}
-
-/*
-    Step Review
--------------------------------------- */
-.checkout.submit.order {
-    .actions {
-        margin-top: 20px;
-        .clearfix();
-        .primary {
-            float: right;
-        }
-        .secondary {
-            clear:none;
-            float: left;
-            line-height: 32px;
-        }
-    }
-}
-
-.order.data.items {
-    tfoot tr:first-child td {
-        border-top: 3px solid @primary2;
-        padding-top: 15px;
-    }
-    tr.total td {
-        padding-top: 5px;
-        padding-bottom: 5px;
-        text-align: right;
-    }
-    tr.total:last-child td {
-        padding-bottom: 20px;
-    }
-    tr.grand.total td {
-        vertical-align: middle;
-    }
-    tr.grand.total .amount {
-        font-size: 24px;
-        color: @secondary1;
-    }
-    tr.tax.totals.details {
-        display: none;
-        &.shown {
-            display: table-row;
-        }
-    }
-    tr.tax.totals.summary {
-        .detailed {
-            cursor: pointer;
-            .iconBefore(@content: @icon-expand, @size: 18px, @font: "icons");
-            &:before {
-                vertical-align: top;
-                font-size: 12px;
-                margin-right: 5px;
-            }
-        }
-        &.expanded .detailed:before {
-            content: @icon-collapse;
-        }
-    }
-    tfoot {
-        .amount {
-            text-align: right;
-        }
-    }
-}
-
-.order.review.data {
-    th.col.price,
-    th.col.subtotal {
-        text-align: right;
-        padding-right: 10px;
-    }
-    th.col.item {
-        text-align: left;
-        padding-left: 20px;
-    }
-}
-
-.checkout.agreements {
-    margin: 10px 0;
-    .item {
-        margin: 0 0 10px;
-        &:last-child {
-            margin: 0;
-        }
-    }
-    .agreement {
-        background-color: @primary1;
-        border: 1px solid @primary2;
-        font-size: 11px;
-        overflow: auto;
-        margin: 0 0 10px;
-        padding: 15px;
-    }
-}
-
-/*
-    Magento_Checkout
-    Multishipping
--------------------------------------- */
-.multicheckout {
-    &.progress {
-        .resetList();
-        li {
-            font-size: 16px;
-            font-weight: 400;
-            margin: 0 0 10px 0;
-            &.active {
-                font-weight: bold;
-            }
-        }
-    }
-    .title {
-        .clearfix();
-        margin: 0 0 30px;
-        > strong {
-            font-size: 20px;
-            font-weight: 400;
-            margin: 4px 0 0;
-        }
-    }
-    .subtitle {
-        display: block;
-        .clearfix();
-        margin: 0 0 20px;
-        > span {
-            font-size: 18px;
-            font-weight: normal;
-            margin: 4px 0 0;
-        }
-    }
-    .title,
-    .subtitle {
-        .action {
-            font-weight: 400;
-            font-size: 14px;
-            margin-left: 20px;
-            text-decoration: underline;
-            display: inline-block;
-            text-transform: lowercase;
-            &:hover {
-                text-decoration: none;
-            }
-        }
-    }
-    .content {
-        .clearfix();
-        > .block {
-            margin-bottom: 20px;
-            &:last-child {
-                margin-bottom: 0;
-            }
-        }
-    }
-    address {
-        font-style: normal;
-    }
-// Shipping metods
-    > .block.shipping .box,
-    > .block.billing .box {
-        &:extend(.profileBlockWithBg all);
-        margin-bottom: 20px;
-        &:last-child {
-            margin-bottom: 0;
-        }
-    }
-    > .block.shipping,
-    &.overview > .block.billing {
-        .box {
-            &.address {
-                float: left;
-                width: 49%;
-            }
-            &.method {
-                float: right;
-                width: 49%;
-            }
-            &.items {
-                clear: both;
-            }
-        }
-    }
-// Overview
-    &.overview {
-        > .block.billing {
-            .clearfix();
-            .box.method {
-                p {
-                    margin: 0 0 10px;
-                }
-                th,
-                td {
-                    font-size: 14px;
-                    padding: 0;
-                }
-            }
-        }
-        > .block.shipping {
-            .content {
-                margin-bottom: 20px;
-                &:last-child {
-                    margin-bottom: 0;
-                }
-            }
-        }
-        > .checkout.review {
-            .grand.total {
-                margin: 15px 0;
-                text-align: right;
-                .label {
-                    font-size: 18px;
-                    font-weight: 400;
-                }
-                .price {
-                    color: @secondary1;
-                    font-size: 24px;
-                    font-weight: 700;
-                }
-            }
-        }
-        .box.method {
-            .payment.method {
-                margin: 0;
-            }
-            .title {
-                margin: 0 0 5px;
-            }
-            .content {
-                margin: 0 0 0 10px;
-            }
-        }
-    }
-
-// Oher goods (can't be shipped: virtual, downloadable)
-    .block.other .content {
-        &:extend(.profileBlockWithBg all);
-    }
-
-// Change billing
-    &.change.billing {
-        .box {
-            .box-sizing();
-            background: @primary1;
-            float: left;
-            margin-bottom: 20px;
-            margin-left: 2%;
-            padding: 30px;
-            width: 49%;
-            &.odd {
-                clear: left;
-                margin-left: 0;
-            }
-            .actions {
-                margin: 15px 0 0;
-            }
-        }
-        .actions {
-             clear: left;
-        }
-    }
-
-// Actions
-    .actions {
-        .clearfix();
-        margin: 20px 0;
-    }
-    &.change.billing .actions {
-        margin-top: 0;
-    }
-    .action {
-        &.update {
-            &:extend(.secondary.action all);
-        }
-        &.back {
-            float: left;
-            margin: 9px 0 0;
-            span:before {
-                content: "\00AB\00A0";
-            }
-        }
-        &.continue,
-        &.submit {
-            &:extend(.primary.action all);
-            &.disabled {
-                opacity: 0.3;
-                &:hover {
-                    background: @primaryActionBg;
-                }
-            }
-        }
-        &.add {
-            &:extend(.primary.action all);
-            float: right;
-            text-decoration: none;
-            text-transform: uppercase;
-        }
-    }
-    &.success .action.continue {
-        &:extend(.button.link all);
-        text-decoration: none;
-        text-transform: none;
-    }
-
-// Tables
-    .product.name {
-        margin-bottom: 0;
-    }
-    .items.data {
-        .col {
-            &.item {
-                padding-left: 0;
-                text-align: left;
-            }
-        }
-        th.col {
-            &.item,
-            &.qty {
-                padding-bottom: 5px;
-            }
-        }
-        .mark,
-        .amount {
-            text-align: right;
-        }
-        tfoot tr {
-            &.total {
-                &:first-child td {
-                    border-top: 3px solid #e5e5e5;
-                    padding-top: 15px;
-                }
-                &:last-child td {
-                    border-bottom: 0;
-                }
-                td {
-                    padding-top: 5px;
-                    padding-bottom: 5px;
-                    text-align: right;
-
-                }
-                &.grand {
-                    td {
-                        vertical-align: middle;
-                    }
-                    .amount {
-                        color: @secondary1;
-                        font-size: 24px;
-                    }
-                }
-            }
-        }
-        .applicable {
-            padding-top: 7px;
-        }
-    }
-    .block .items.data {
-        tr td {
-            &:first-child {
-                padding-left: 0;
-            }
-            &:last-child {
-                padding-right: 0;
-            }
-        }
-    }
-    .shipping .items.data tr:last-child td {
-        border-bottom: 1px solid @primary2;
-    }
-    .sp-methods,
-    .items.methods {
-        margin: 0;
-        dt {
-            margin: 0;
-        }
-        dd {
-            margin: 0;
-            padding: 0;
-            ul {
-                margin: 0 0 15px;
-                padding: 10px;
-            }
-        }
-    }
-
-    &.form.address {
-        .control.address {
-            margin-top: -6px;
-            select {
-                max-width: 450px;
-            }
-        }
-    }
-}
-
-.block.gift.message {
-    margin: 30px 0 0;
-    .title {
-        font-size: 16px;
-        font-weight: 400;
-        margin-bottom: 15px;
-    }
-}
-
-/*
-    Magento_Checkout
-    Gift Message
--------------------------------------- */
-.gift.message {
-    > .legend {
-        font-size: 16px;
-        margin: 0 0 20px;
-    }
-    .block.items {
-        .box-sizing();
-        background: @primary2;
-        margin:0 -20px;
-        //height: 310px;
-        //overflow: auto;
-        padding: 20px;
-    }
-    dt {
-        margin: 30px 0 0;
-        &:first-child {
-            margin: 0;
-        }
-        .title {
-            font-size: 16px;
-            margin: 0 0 15px;
-        }
-        > .price {
-            margin: 0 0 10px;
-        }
-    }
-    dd {
-        margin: 20px 0 0 20px;
-    }
-    .field.choice input {
-        margin-right: 5px;
-        margin-top: 2px;
-        vertical-align: top;
-    }
-    .activate.message {
-        display: inline-block;
-        margin: 10px 0 0;
-        + div {
-            .fieldset {
-                margin-top: 0;
-            }
-        }
-    }
-    .options.order {
-        .field.text {
-            width: 100%;
-        }
-    }
-    .options.individual {
-        ol {
-            .resetList();
-        }
-        li {
-            .clearfix();
-            border-bottom: 1px solid @primary2;
-            margin: 0 0 15px;
-            padding: 0 0 15px;
-            overflow: hidden;
-        }
-        .number {
-            border-bottom: 1px solid @primary2;
-            color: @primary4;
-            margin: 0 0 15px;
-            padding: 0 0 5px;
-        }
-        .product {
-            float: left;
-            margin-right: 20px;
-            text-align: center;
-            > .product {
-                float: none;
-                margin: 0;
-            }
-            .img {
-                margin-bottom: 5px;
-            }
-        }
-        .options-items-container {
-            width: 100%;
-            .field {
-                .box-sizing();
-                width: 100%;
-            }
-        }
-        .field.text {
-            width: 100%;
-        }
-        .item.options {
-            overflow: hidden;
-        }
-    }
-    .extra-options-container {
-        margin: 10px 0 0;
-        .field.choice {
-            margin: 0 0 10px;
-        }
-    }
-    .multicheckout & {
-        margin: 20px 0;
-        .fieldset {
-            margin: 20px 0;
-        }
-        .block.message {
-            margin: 0;
-            .fieldset {
-                margin: 0;
-            }
-        }
-        .field {
-            display: inline-block;
-            padding-right: 20px;
-            vertical-align: top;
-            width: 50%;
-        }
-    }
-}
-
-/*
-    Magento_Checkout
-    Shopping Cart
--------------------------------------- */
-.cart.container {
-    .clearfix();
-    position: relative;
-    z-index: 1;
-}
-
-.cart.actions {
-    padding: 20px 0;
-    .action.continue {
-        position: absolute;
-        text-decoration: underline;
-        right: 0;
-        top: 3px;
-    }
-    .action.update,
-    .action.clear {
-        &:extend(.secondary.action all);
-    }
-}
-
-.items.data {
-    width: 100%;
-    thead tr:last-child th {
-        padding-bottom: 10px;
-    }
-    th > span {
-        white-space: nowrap
-    }
-    th.col.item > span {
-        display: none;
-    }
-    td.col.qty {
-        width: 40px;
-        text-align: center;
-        .control {
-            margin-top: -6px;
-        }
-    }
-    th.col.qty {
-        text-transform: uppercase;
-    }
-    input.qty {
-        width: 50px;
-        text-align: center
-    }
-    td.col.price,
-    td.col.subtotal {
-        text-align: right;
-    }
-    .img.photo.container,
-    .product.photo {
-        padding-right: 20px;
-        display: table-cell;
-        width: 1%;
-        vertical-align: top;
-    }
-    .product.photo {
-        .img.photo.container {
-            display: block;
-            padding:0;
-            width:auto;
-        }
-    }
-    .product.details {
-        display: table-cell;
-        width: 99%;
-        vertical-align: top;
-    }
-    .item.actions {
-        text-align: right;
-        div.actions {
-            padding-bottom: 30px;
-        }
-    }
-    td {
-        border-left:0;
-        border-right:0;
-        padding: 26px 10px 10px;
-        vertical-align: top;
-        background: transparent;
-    }
-    td:first-child {
-        padding-left: 20px;
-    }
-    td:last-child {
-        padding-right: 20px;
-    }
-    tbody:nth-child(even) tr {
-        background: @primary1;
-    }
-    th {
-        border-left:0;
-        border-right:0;
-        text-align: center;
-        font-weight: @baseFontWeight;
-        font-size: @baseFontSize;
-        vertical-align: top;
-    }
-    tr:first-child th {
-        font-weight: @baseFontWeight;
-        font-size: @baseFontSizeBigger;
-    }
-    .item.actions td {
-        padding: 0 20px 10px;
-        line-height: 16px;
-        .action {
-            margin-left: 20px;
-        }
-        .action.towishlist {
-            font-size: @baseFontSize;
-        }
-        .action.delete {
-            vertical-align: top;
-            margin-top: 0;
-        }
-        &:before {
-            content: '';
-            border-top: 1px solid @primary2;
-            display: block;
-            height: 0;
-            overflow: hidden;
-            margin: 0 0 10px;
-        }
-    }
-    .item.options {
-        dt {
-            font-weight: @baseFontWeight;
-            display: inline;
-            margin-right: 10px;
-            float: left;
-            clear: left;
-            &:after {
-                content: ': ';
-            }
-        }
-        dd {
-            font-weight: @baseFontWeightLighter;
-            margin: 0 0 10px 10px;
-            padding: 0;
-            em:after {
-                content:':';
-            }
-        }
-
-    }
-}
-
-.cart.table.wrapper {
-    float: left;
-    width: 665px;
-}
-
-.cart.summary {
-    position: relative;
-    z-index: 1;
-    margin-top: 33px;
-    background: @primary1;
-    display: inline-block;
-    width: 290px;
-    padding: 20px;
-    margin-left: 10px;
-    .summary.title {
-        font-size: 20px;
-        font-weight: 200;
-        display: block;
-        border-bottom: 3px solid @primary2;
-        padding-bottom: 15px;
-    }
-    .block {
-        margin-bottom: 0;
-        border-bottom: 1px solid @primary2;
-        > .title {
-            cursor: pointer;
-            padding: 10px 5px;
-            margin: 0;
-            line-height: 16px;
-            strong {
-                font-size: @baseFontSizeMiddle;
-                font-weight: 600;
-                &:after {
-                    content: @icon-expand;
-                    font-family: "icons";
-                    float: right;
-                    font-weight: @baseFontWeight;
-                    font-size: @baseFontSizeBigger;
-                    line-height: 16px;
-                }
-            }
-            &.active strong:after {
-                content: @icon-collapse;
-            }
-
-        }
-        > .content {
-            display: none;
-            padding: 15px 15px 20px;
-        }
-        &.active {
-            > .content {
-                display: block;
-            }
-        }
-        .fieldset {
-            padding: 0;
-            margin: 0;
-            border: 0;
-            .field {
-                margin: 0 0 10px;
-            }
-        }
-        font-size: @baseFontSizeMiddle;
-        input[type="text"] {
-            padding: 0 5px;
-            font-size: @baseFontSizeMiddle;
-            height: 30px;
-        }
-        .field:not(.choice) {
-            .label {
-                padding: 0 0 5px;
-                display: block;
-            }
-        }
-        select {
-            padding: 5px 5px 4px;
-            font-size: @baseFontSizeMiddle;
-        }
-        .action {
-            &:extend(.primary.action all)
-        ;
-            padding: 6px 11px 5px;
-            span {
-                font-size: @baseFontSizeMiddle;
-                line-height: 12px;
-            }
-            &.check span {
-                .actionLink();
-            }
-        }
-    }
-}
-
-.cart.container {
-    & > .summary.sticky {
-        position: fixed;
-        display: inline-block !important;
-    }
-    & > .summary.bottom {
-        position: absolute;
-        vertical-align: bottom;
-        bottom: 0;
-    }
-}
-
-.cart &>.summary.fixed,
-.cart.container &>.summary &>.container.fixed {
-    position: fixed;
-    top: 0;
-}
-
-.cart.table.wrapper.detailed + .cart.summary {
-    margin-top: 54px;
-}
-
-
-
-.sp-methods,
-.items.methods {
-    dt,
-    .item.title {
-        font-weight: bold;
-    }
-    dd,
-    .item.options {
-        margin: 0 0 15px;
-        padding: 10px;
-    }
-}
-.field.choice.payment {
-    > .label {
-        font-weight: bold;
-    }
-}
-
-.data-table {
-    width: 100%;
-    border: 0;
-    td {
-        border-right: 1px solid @primary2;
-        padding: 5px;
-        vertical-align: top;
-    }
-    td:last-child {
-        border: 0;
-    }
-}
-
-.cart.totals {
-    .table.totals {
-        width: 100%;
-    }
-    padding: 20px 0;
-    td,
-    th {
-        text-align: right;
-        padding: 4px 0 4px 5px;
-    }
-    td:not(:first-child) {
-        strong {
-            font-size: 24px;
-            color: @secondary1;
-        }
-    }
-    td:first-child {
-        text-align: left;
-        padding-left: 0;
-        strong {
-            font-size: @baseFontSize;
-        }
-    }
-}
-
-.checkout.methods.items {
-    background: #fff;
-    padding: 20px;
-    .item {
-        margin: 15px auto;
-        text-align: center;
-    }
-    .action.multicheckout {
-        text-decoration: underline;
-    }
-    .page.title & {
-        display: none;
-    }
-}
-
-/*
-    Magento_Checkout
-    Mini cart
--------------------------------------- */
-.minicart.wrapper {
-    float: right;
-    margin-right: 40px;
-    z-index: 11;
-    .block.minicart {
-        .clearfix();
-        left: -100%;
-        margin-top: 15px;
-        position: absolute;
-        z-index: 2;
-        background: @primary1;
-        border: 2px solid darken(@primary1, 13%);
-        border-radius: 3px;
-        text-align: center;
-        padding: 58px 345px 25px 15px;
-        &:before {
-            content: '';
-            border-left: 10px solid transparent;
-            border-right: 10px solid transparent;
-            border-bottom: 10px solid @primary1;
-            height: 0;
-            width: 0;
-            overflow: hidden;
-            display: block;
-            position: absolute;
-            top: 0;
-            margin-top: -10px;
-            margin-right: 25px;
-            right: 0;
-            zoom: 1;
-            z-index: 2;
-        }
-        > .content {
-            margin-top: -33px;
-            .subtotal {
-                .clearfix();
-                .mark {
-                    display: inline-block;
-                    font-weight: 600;
-                    font-size: 18px;
-                    float: left;
-                    line-height: 24px;
-                }
-                > .amount {
-                    text-align: right;
-                    float: right;
-                    display: inline-block;
-                    font-weight: @baseFontWeightBolder;
-                    font-size: 24px;
-                    line-height: 24px;
-                    color: @secondary1;
-                }
-                .amount.incl.tax {
-                    display: block;
-                    font-size: @baseFontSize;
-                    &:after {
-                        content: ')';
-                    }
-                    .price:after {
-                        content: ' (';
-                    }
-                }
-            }
-            .disclaimer {
-                font-size: @baseFontSizeMiddle;
-            }
-            .actions {
-                .secondary {
-                    margin-top: 15px;
-                    margin-bottom: -15px;
-                    text-align: right;
-                    a {
-                        color: @secondary1;
-                    }
-                }
-            }
-            .subtitle {
-                display: block;
-                text-align: left;
-                padding: 0 50px;
-                margin: 0 0 15px 0;
-                font-weight: @baseFontWeight;
-                &.empty {
-                    margin: 10px -320px 0 0;
-                    padding: 0;
-                    float: right;
-                    width: 310px;
-                    clear: right;
-                }
-            }
-        }
-        .minicart.empty.text,
-        > .title,
-        > .content .subtotal,
-        > .content .disclaimer,
-        > .content > .actions {
-            margin: 0 -330px 15px 0;
-            text-align: left;
-            float: right;
-            width: 310px;
-            clear: right;
-        }
-        > .title {
-            .text {
-                display: none;
-            }
-            .qty:before {
-                content: attr(title) ": ";
-            }
-        }
-        .minicart.empty.text {
-            margin-top: 15px;
-        }
-        > .title strong {
-            font-weight: 400;
-        }
-    }
-    &.active {
-        &:before {
-            content: '';
-            position: fixed;
-            z-index: 1;
-            top: 0;
-            left: 0;
-            right: 0;
-            bottom: 0;
-            background: #000;
-            opacity: 0.01;
-        }
-        position: relative;
-        z-index: 11;
-        .block.minicart {
-            left: auto;
-            right: -20px;
-        }
-    }
-    .action.previous,
-    .action.next {
-        .resetAction();
-        width: 25px;
-        overflow: hidden;
-        span {
-            .iconAfter(@content: @icon-arrow-right-thick, @size: 42px, @font: "icons");
-            .iconHideText(42px);
-            color: @primary3;
-            margin-left: -10px;
-            overflow: hidden;
-        }
-        &[disabled] {
-            opacity: 0.3;
-        }
-        position: absolute;
-        right: 10px;
-        top: 50%;
-        margin-top: -22px;
-    }
-    .action.previous {
-        right: auto;
-        left: 0;
-        span:after {
-            content: @icon-arrow-left-thick;
-        }
-    }
-    .action.close {
-        position: absolute;
-        top: 10px;
-        right: 15px;
-    }
-    p {
-        clear: both;
-    }
-}
-
-.block.minicart.empty > .title,
-.eq-ie8 .minicart.wrapper.active:before {
-    display: none;
-}
-
-/*
-    Product options
--------------------------------------- */
-.minicart {
-    @textColor: @primary6;
-    .product.options.wrapper {
-        position: relative;
-        display: inline;
-        z-index: 1;
-        margin: 7px 0;
-        .more {
-            color: @textColor;
-            font-size: @baseFontSizeMiddle;
-            line-height: 1;
-            padding: 0;
-            border-bottom: 1px dotted @textColor;
-            cursor: help;
-        }
-        &:hover {
-            z-index: 99;
-            .product.options.details {
-                display: block;
-            }
-            &:before {
-                content: '';
-                border-left: 10px solid @optionsBg;
-                border-top: 10px solid transparent;
-                border-bottom: 10px solid transparent;
-                height: 0;
-                width: 0;
-                overflow: hidden;
-                display: block;
-                position: absolute;
-                top: 0;
-                margin-top: 0;
-                left: -10px;
-                zoom: 1;
-                z-index: 2;
-            }
-        }
-
-    }
-    .product.options.details {
-        display: none;
-        position: absolute;
-        background: @optionsBg;
-        border-radius: 6px;
-        padding: 10px;
-        right: 100%;
-        top: 50%;
-        margin-top: -20px;
-        margin-right: 10px;
-        float: left;
-        max-width: 200px;
-        min-width: 100px;
-        .title {
-            font-weight: 600;
-        }
-        color: @optionsColor;
-    }
-    .product.options.list {
-        padding-left: 10px;
-        dt {
-            font-size: @baseFontSizeMiddle;
-            display: inline;
-            margin: 0;
-            padding: 0;
-            font-weight: 600;
-            &:after {
-                content: ': ';
-            }
-            &:before {
-                content: '';
-                display: block;
-            }
-        }
-        dd {
-            font-size: @baseFontSizeMiddle;
-            display: inline-block;
-            padding: 0;
-            margin: 0;
-        }
-    }
-    .item:not(.shown) + .shown,
-    :first-child {
-        .product.options.details {
-            right: auto;
-            left: 100%;
-            margin-left: 10px;
-        }
-        .product.options.wrapper:before {
-            border-right: 10px solid @optionsBg;
-            border-left: 0;
-            left: auto;
-            right: -10px;
-        }
-    }
-}
-
-.minicart.wrapper .block.minicart > .content > .actions .primary {
-    .clearfix();
-    text-align: center;
-    .checkout.paypal {
-        display: inline;
-        input[type="image"] {
-            margin-top: 5px;
-            float: left;
-        }
-        &:after {
-            float: none;
-        }
-    }
-    .action.checkout {
-        float: right;
-    }
-}
-
-.block.minicart {
-    .products.minilist {
-        @itemWidth : 187px;
-        float: left;
-        padding: 0;
-        border-right: 1px solid darken(@primary1, 13%);
-        max-width: @itemWidth*3;
-        padding: 0 30px;
-        position: relative;
-        z-index: 1;
-        .minilist.items {
-            position: relative;
-            white-space: nowrap;
-        }
-        &.animation {
-            .items-wrapper {
-                overflow: hidden;
-            }
-            position: relative;
-            .item {
-                visibility: visible;
-            }
-        }
-        .item {
-            padding: 0 20px;
-            .box-sizing();
-            vertical-align: top;
-            text-align: left;
-            &:before {
-                content: '';
-                width: 0;
-                display: block;
-                border-left: 1px solid darken(@primary1, 13%);
-                height: 100%;
-                margin-left: -20px;
-                position: absolute;
-            }
-            &.item:not(.shown) + .shown:before,
-            &:first-child:before {
-                display: none;
-            }
-            white-space: normal;
-            display: none;
-            display: inline-block;
-            width: @itemWidth;
-            visibility: hidden;
-            .box-sizing();
-            margin-left: 0;
-
-            .wrapper.active &.shown {
-                visibility: visible;
-            }
-            &.hidden {
-                margin-left: -@itemWidth !important;
-            }
-
-            .product.photo {
-                display: block;
-                margin-bottom: 10px;
-                .photo.container {
-                    overflow: visible !important;
-                    margin: 0 auto;
-                }
-                .photo.image {
-                    border: 1px solid darken(@primary1, 11%);
-                    display: block;
-                    margin: 0 auto;
-                }
-            }
-            .pricing {
-                margin-top: 10px;
-                &:not(.complex) {
-                    .label.display {
-                        display: none;
-                    }
-                }
-                .label:after {
-                    content: ': ';
-                }
-            }
-            .actions {
-                float: right;
-            }
-            .action.edit {
-                font-size: @baseFontSizeMiddle;
-            }
-            .product.options.wrapper + .action.edit {
-                margin-right:16px;
-                &:before {
-                    content: '|';
-                    display: inline-block;
-                    text-decoration: none;
-                    padding: 0 3px;
-                }
-                &:hover:before {
-                    color: @primary6;
-                }
-            }
-            .action.delete {
-                position: absolute;
-                margin-left: -5px;
-                margin-top: -1.35em;
-                bottom: 0;
-            }
-        }
-    }
-}
-
-.eq-ie8 .block.minicart {
-    .products.minilist {
-        .action.delete,
-        .action.edit {
-            visibility: hidden;
-        }
-        .shown {
-            .action.delete,
-            .action.edit {
-                visibility: visible;
-            }
-        }
-        .item {
-            &:before {
-                border-left: 0;
-            }
-        }
-    }
-}
-
-.action.delete {
-    display: inline-block;
-    span {
-        color: @primary3;
-        .iconAfter(@content: @icon-trash, @font: 'icons');
-        .iconHideText();
-    }
-    &:focus,
-    &:active,
-    &:hover {
-        outline: none;
-        span {
-            color: @primary4;
-        }
-    }
-}
-
-.action.checkout {
-    &:extend(.primary.action all);
-}
-
-.action.checkout.shadow {
-    span {
-        text-shadow: 0px 1px 2px #000;
-    }
-}
-
-.action.close {
-    .resetAction;
-    span {
-        .iconAfter(@content: @icon-close-thick, @size: 11px, @font: 'icons');
-        .iconHideText(11px);
-    }
-}
-
-.action.showcart {
-    .iconAfter(@content: @icon-cart, @size: 32px, @font: 'icons');
-    .iconHideText(32px);
-    margin-top: 20px;
-    margin-left: 20px;
-    color: @primary5;
-    position: relative;
-    &:hover,
-    &:active,
-    &:focus,
-    &.active {
-        color: @primary4;
-        outline: none;
-    }
-
-    .qty {
-        position: absolute;
-        left: 70%;
-        top: 0;
-        margin-top: -30%;
-        text-indent: 0;
-        background: @secondary1;
-        display: inline-block;
-        border: 1px solid @secondary1;
-        border-radius: 50px;
-        font-size: @baseFontSize;
-        font-weight: 600;
-        color: #fff;
-        @height: 1.7em;
-        line-height: @height;
-        vertical-align: middle;
-        .box-sizing();
-        min-width: 1.1 * @height;
-        min-height: @height;
-        text-align: center;
-        padding: 0 4px;
-        &:before,
-        &:after {
-            content: "";
-        }
-    }
-    .qty.empty {
-        display: none;
-    }
-}
-
-/*
-    Paypal button
--------------------------------------- */
-.checkout.paypal {
-    display: none;
-    input[type="image"] {
-        display: inline-block;
-        vertical-align: top;
-    }
-    display: inline-block;
-    vertical-align: top;
-    &.before:before {
-        content: "- " attr(data-label) " -";
-        text-transform: uppercase;
-        display: inline-block;
-        line-height: 32px;
-        font-size: @baseFontSize;
-        vertical-align: middle;
-        margin: 0 5px;
-    }
-    &.after:after {
-        content: "- " attr(data-label) " -";
-        text-transform: uppercase;
-        display: inline-block;
-        line-height: 32px;
-        font-size: 14px;
-        vertical-align: middle;
-        margin: 0 5px;
-    }
-    .box.tocart & {
-        margin-top: 10px;
-    }
-}
-
-.box.tocart .checkout.paypal {
-    &.after:after {
-        display: none;
-    }
-    &.after:before {
-        content: "- " attr(data-label) " -";
-        text-transform: uppercase;
-        display: inline-block;
-        line-height: 32px;
-        font-size: @baseFontSize;
-        vertical-align: middle;
-        margin: 0 5px;
-    }
-}
-
-.checkout.methods .checkout.paypal {
-    &.after:after {
-        display: block;
-        text-align: center;
-    }
-}
-
-/*
-    Magento_Sales
--------------------------------------- */
-.block.reorder {
-    padding-right: 30px;
-    .item {
-        padding-left: 20px;
-        input {
-            float: left;
-            margin-top: 2px;
-            margin-left: -20px;
-        }
-    }
-    .subtitle {
-        display: block;
-        margin: 0 0 15px;
-        font-weight: 600;
-    }
-    .actions {
-        margin: 15px 0 0;
-        text-align: left;
-        .primary,
-        .secondary {
-            margin: 0 10px 10px 0;
-            display: inline-block;
-            vertical-align: middle;
-        }
-    }
-}
-
-/*
-    Magento_Newsletter
--------------------------------------- */
-.block.newsletter {
-    @fit: 45px;
-    text-align: left;
-    .fieldset {
-        margin: 0;
-    }
-    .title {
-        display: none;
-    }
-    .field {
-        .clearfix();
-    }
-    .label {
-        display: block;
-        font-size: 16px;
-        margin-bottom: 10px;
-        line-height: 1.2;
-    }
-    .control {
-        float: left;
-        width: 100%;
-        .box-sizing();
-        padding-right: @fit;
-    }
-    .actions {
-        padding-left: 10px;
-        float: right;
-        margin-left: -@fit;
-    }
-    input[type="text"] {
-        width: 100%;
-    }
-    .footer & {
-        width: 310px;
-        float: right;
-    }
-}
-
-.action.subscribe {
-    .resetAction();
-    background: @secondary1;
-    border-radius: 3px;
-    padding: 7px;
-    border: 1px solid @secondary1;
-    vertical-align: top;
-    span {
-        .iconAfter(@content: @icon-envelope, @font: 'icons');
-        .iconHideText();
-        color: #fff;
-    }
-}
-
-.form.newsletter.manage {
-    .fieldset {
-        margin: 0 0 20px;
-        padding: 0;
-        border: 0;
-        .legend {
-            float: left;
-            margin: 0 0 20px;
-            font-weight: 200;
-        }
-        .legend + br {
-            display: block;
-            clear: both;
-        }
-    }
-    .action.save {
-        &:extend(.primary.action all);
-    }
-    .actions .primary {
-        margin-bottom: 15px;
-    }
-}
-
-/*
-    Widgets
--------------------------------------- */
-.widget ul {
-    .resetList();
-}
-
-.widget.static.block {
-    .clearfix();
-    .page.header &,
-    .footer & {
-        display: inline-block;
-    }
-}
-
-.widget.link,
-.widget.static.block {
-    .product.info.main + &,
-    .product.info.detailed + &,
-    .block.search + & {
-        clear: both;
-    }
-}
-
-span.widget.link,
-.widget.static.block {
-    .footer .links & {
-        margin-left: 3px;
-        white-space: normal;
-        &:before {
-            content: ' | ';
-            display: inline-block;
-            margin-right: 3px;
-        }
-    }
-}
-
-.widget.link,
-.widget.static.block {
-    .minicart.wrapper .block.minicart > .content & {
-        clear: right;
-        float: right;
-        margin: 0 -330px 15px 0;
-        text-align: left;
-        width: 310px;
-    }
-    .minicart.wrapper .block.minicart > .content .actions & {
-        margin-right: 0;
-    }
-}
-
-.widget.link + .product.info.detailed {
-    margin-top: 20px;
-}
-
-span.widget.link {
-    display: inline-block;
-}
-
-.widget.mini.products.images {
-    .item {
-        display: inline-block;
-        margin: 0 3px;
-    }
-}
-
-/*
-    Magento_Catalog
-    Compare
--------------------------------------- */
-.block.compare {
-    > .title .qty {
-        font-size: 16px;
-        margin-right: -5px;
-        &:before {
-            content: '(';
-        }
-        &:after {
-            content: ')';
-        }
-    }
-    .item {
-        padding-right: 20px;
-        overflow: hidden;
-    }
-    .product.name {
-        float: left;
-    }
-    .action.delete {
-        margin-right: -20px;
-        float: right;
-    }
-    .action.compare {
-        &:extend(.secondary.action all);
-        float: right;
-    }
-    .action.clear {
-        float: left;
-        margin-top: 10px;
-    }
-    .actions {
-        .clearfix();
-        margin-top: 15px;
-    }
-}
-
-.catalog-product-compare-index {
-    .action.print {
-        float: right;
-        margin-top: -50px;
-    }
-}
-
-.comparison.wrapper {
-    clear: both;
-    position: relative;
-    z-index: 1;
-    &:after {
-        content: '';
-        position: absolute;
-        z-index: 2;
-        right: 0;
-        top: 0;
-        height: 100%;
-        width: 15px;
-    }
-    margin-bottom: 50px;
-}
-
-.comparison.container {
-    overflow-y: hidden;
-    overflow-x: auto;
-}
-
-.data.comparison {
-    table-layout: fixed;
-
-    .cell.label {
-        width: 130px;
-        padding-left: 10px;
-        font-weight: 600;
-        text-align: left;
-        border-right: 1px solid @primary2;
-        .attribute.label {
-            display: block;
-            width: 100%;
-            word-break: break-all;
-        }
-        &.product {
-            border-bottom: 1px solid @primary2;
-        }
-    }
-    .cell {
-        padding: 15px;
-        vertical-align: top;
-        p:first-child {
-            margin-top: 0;
-        }
-        .attibute.value {
-            width: 100%;
-            overflow: hidden;
-        }
-    }
-    .cell.product {
-        width: 140px;
-        &.info {
-            border-bottom: 1px solid @primary2;
-        }
-    }
-    .cell.attribute {
-        font-size: @baseFontSizeMiddle;
-        img {
-            max-width: 100%;
-            height: auto;
-        }
-    }
-    td:last-child {
-        border-right: 1px solid @primary2;
-    }
-    tbody:first-child .cell.attribute {
-        background-color: @primary1;
-    }
-    tr:nth-child(odd) .cell.attribute {
-        background-color: @primary7;
-    }
-    tr:nth-child(even) .cell.attribute {
-        background-color: @primary1;
-    }
-    .product.photo {
-        .img.photo.container {
-            display: inline-block !important;
-        }
-        text-align: center;
-        display: block;
-        margin: 0 auto 15px;
-    }
-    .actions,
-    .price-box,
-    .product.rating,
-    .product.name {
-        margin: 15px 0;
-    }
-    .addto.links {
-        margin-top: 15px;
-        padding-top: 15px;
-        border-top: 1px solid @primary2;
-        font-size: @baseFontSizeMiddle;
-    }
-    .cell.remove {
-        padding-top: 0;
-        padding-bottom: 0;
-        text-align: right;
-        .action.delete {
-            &:extend(.secondary.action all);
-            float: right;
-            padding: 4px;
-            span {
-                overflow: hidden;
-                line-height: 0;
-                &:after {
-                    content: @icon-close-thick;
-                    font-size: @baseFontSizeMiddle;
-                    color: #fff;
-                }
-            }
-            margin-right: -15px;
-        }
-    }
-}
-
-.comparison.headings {
-    position: absolute;
-    z-index: 2;
-    top: 0;
-    left: 0;
-    width: auto;
-    background-color: @pageMainBg;
-    th {
-        background-color: @pageMainBg;
-    }
-}
-
-/*
-    Magento_Catalog
-    Compare
--------------------------------------- */
-.item.link.compare {
-    .qty {
-        &:before {
-            content: '(';
-        }
-        &:after {
-            content: ')';
-        }
-    }
-}
-
-/*
-    Magento_Catalog
-    Product lists
--------------------------------------- */
-.productItems() {
-    @spacing: 0 0 10px;
-    .item.product {
-        .column(4);
-        .box-sizing();
-        .layout-3 & {
-            width: 50%;
-        }
-        display: inline-block;
-        vertical-align: top;
-        margin: 0;
-        padding: 20px;
-        float: none;
-        .product.photo {
-            float: left;
-            margin-right: 20px;
-        }
-        .product.details {
-            overflow: hidden;
-        }
-        .product.name,
-        .price-box {
-            margin: @spacing;
-        }
-        .addto.links {
-            .action:after {
-                content: '';
-                display: block;
-            }
-        }
-        .actions {
-            visibility: hidden;
-            .primary {
-                margin: 0 0 10px;
-            }
-        }
-        &:hover {
-            .actions {
-                visibility: visible;
-            }
-        }
-    }
-}
-
-.blocklist() {
-    clear: both;
-    margin: 30px 0;
-    padding-top: 25px;
-    border-top: 1px solid @primary2;
-    .products.list {
-        clear: both;
-        margin: 0 -20px;
-        .productItems();
-    }
-}
-
-.block.related {
-    .action.select {
-        .resetAction();
-        .actionLink();
-    }
-    .field.choice.related {
-        margin: 0 0 10px;
-    }
-}
-
-.block.widget.viewed,
-.block.crosssell,
-.block.upsell,
-.block.related,
-.block.widget.new,
-.block.widget.compared {
-    .blocklist();
-}
-
-.block.crosssell {
-    .products.list.items.crosssell {
-        .clearfix();
-        margin: 0 -13px;
-        .item.product {
-            .column(2);
-            padding: 13px;
-            .product.photo {
-                float: none;
-                display: block;
-                margin: 0 0 10px;
-            }
-            margin-bottom: 90px;
-            .actions {
-                position: absolute;
-            }
-        }
-    }
-}
-
-.block.widget.viewed {
-    .products.list.items.widget-viewed-grid {
-        .item.product {
-            .column(2);
-            float: none;
-            display: inline-block;
-            .layout-2-left &,
-            .layout-2-right & {
-                width: 19.99%;
-            }
-            .layout-3 & {
-                width: 25%;
-            }
-            .product.photo {
-                float: none;
-                display: block;
-                margin: 0 0 10px;
-            }
-        }
-    }
-    .products.list.items.widget-viewed-list {
-        .item.product {
-            .column(12);
-            float: none;
-            display: inline-block;
-        }
-    }
-}
-
-.block.widget.compared {
-    .products.list.items.widget-compared-grid {
-        .item.product {
-            .column(2);
-            float: none;
-            display: inline-block;
-            .layout-2-left &,
-            .layout-2-right & {
-                width: 19.99%;
-            }
-            .layout-3 & {
-                width: 25%;
-            }
-            .product.photo {
-                float: none;
-                display: block;
-                margin: 0 0 10px;
-            }
-        }
-    }
-    .products.list.items.widget-compared-list {
-        .item.product {
-            .column(12);
-            float: none;
-            display: inline-block;
-        }
-    }
-}
-
-.block.widget.new {
-    .products.list.items.widget-new-grid,
-    .products.list.items.new.grid {
-        .item.product {
-            width: 20%;
-            float: none;
-            display: inline-block;
-            .layout-2-left &,
-            .layout-2-right & {
-                .column(3);
-                float: none;
-                display: inline-block;
-            }
-            .layout-3 & {
-                .column(4);
-                float: none;
-                display: inline-block;
-            }
-            .product.photo {
-                float: none;
-                display: block;
-                margin: 0 0 10px;
-            }
-        }
-    }
-    .products.list.items.widget-new-list {
-        .item.product {
-            .column(12);
-            float: none;
-            display: inline-block;
-        }
-    }
-}
-
-// Sidebar widgets
-.sidebar .block.widget.viewed,
-.sidebar .block.crosssell,
-.sidebar .block.upsell,
-.sidebar .block.related,
-.sidebar .block.widget.new,
-.sidebar .block.widget.compared {
-    border: 0;
-    padding-top: 0;
-}
-
-// Images and names template
-.sidebar .minilist.products.items {
-    margin: 0;
-    .item.product {
-        margin: 0 0 20px;
-        padding: 0;
-        position: relative;
-        width: 100%;
-        .product.actions {
-            visibility: hidden;
-            .transition( visibility .01s ease-in-out 0.1s );
-        }
-        &:hover {
-            .product.actions {
-                visibility: visible;
-            }
-        }
-        position: relative;
-        z-index: 1;
-    }
-    .product.details {
-        overflow: hidden;
-        padding-bottom: 40px;
-    }
-    .product.photo {
-        float: left;
-        margin: 0 10px 10px 0;
-    }
-    .product.name {
-        overflow: hidden;
-    }
-    .actions {
-/*        */
-    }
-    .primary {
-        bottom: -10px;
-        left: 0;
-        position: absolute;
-    }
-    .action.tocart {
-        &:extend(.secondary.action all);
-        padding: 5px 11px;
-        display: inline-block;
-    }
-    .secondary {
-        position: absolute;
-        left:100%;
-        margin-left: -5px;
-        top:0;
-    }
-}
-
-// Images only template
-.block.widget.photos {
-    margin: 0 0 30px;
-    .items {
-        list-style: none;
-        .clearfix();
-        margin: 0;
-        padding: 0;
-    }
-    .item {
-        float: left;
-        margin: 0 3px 3px 0;
-        padding: 0;
-    }
-    .product.photo {
-        margin-right: 0;
-    }
-}
-
-.product.info.detailed + .block.upsell,
-.product.info.detailed + .block.related {
-    margin-top: 70px;
-    clear: none;
-    float: right;
-    width: 140px;
-    border-top: 0;
-    padding-top: 0;
-    padding-left: 25px;
-    border-left: 1px solid @primary2;
-    .products.list {
-        margin: 0;
-        .item.product {
-            display: block;
-            width: auto;
-            padding: 13px 0;
-            .product.photo {
-                float: none;
-                display: block;
-                margin: 0 0 10px;
-            }
-        }
-    }
-}
-
-.block.widget {
-    @optionsHeigth: 23px;
-    .pager {
-        float: right;
-        .amount {
-            float: left;
-            line-height: @optionsHeigth + 2px;
-            margin: 2px 15px 0 0;
-            display: none;
-        }
-        .text {
-            display: none;
-        }
-    }
-    .pages {
-        margin-left: 15px;
-        float: left;
-        .label {
-            line-height: @optionsHeigth + 2px;
-            display: inline-block;
-        }
-        strong.label {
-            font-weight: 400;
-            float: left;
-            line-height: @optionsHeigth + 2px;
-            margin-top: 2px;
-            margin-right: 5px;
-            display: none;
-        }
-        input {
-            width: 30px;
-            margin: 0 5px;
-            text-align: center;
-            padding: 0 5px;
-            height: @optionsHeigth + 2px;
-            line-height: @optionsHeigth + 2px;
-        }
-        > ol {
-            .resetList;
-            display: inline-block;
-            vertical-align: top;
-            margin-top: 2px;
-            line-height: @optionsHeigth + 2px;
-            vertical-align: middle;
-            li {
-                display: inline;
-            }
-            strong,
-            a {
-                padding: 0 3px;
-            }
-            strong {
-                font-weight: 400;
-                color: @secondary1;
-            }
-        }
-    }
-    .action.next,
-    .action.previous {
-        overflow: hidden;
-        display: inline-block;
-        vertical-align: middle;
-        span {
-            color: @primary3;
-            .iconAfter(@content: '', @font: "icons");
-            .iconHideText();
-        }
-    }
-    .action.next span:after {
-        content: @icon-arrow-right-thin;
-    }
-    .action.previous span:after {
-        content: @icon-arrow-left-thin;
-    }
-}
-
-// Orders and returns
-.find.orders {
-    .label {
-        display: block;
-        margin: 0 0 3px;
-    }
-    .control {
-        margin: 0 0 10px;
-    }
-    .action.submit {
-        &:extend(.secondary.action all);
-        padding: 5px 11px;
-    }
-}
-
-/*
-    Magento_Catalog
-    Layered Navigation
--------------------------------------- */
-.block.filter {
-    .subtitle {
-        display: none;
-    }
-    > .content {
-        padding: 0;
-    }
-    .filtered {
-        .item {
-            border-top: 1px solid @primary3;
-            padding: 2px 0 5px;
-            margin: 0 0 5px;
-            position: relative;
-            z-index: 1;
-        }
-        .label {
-            font-weight: 600;
-            text-transform: uppercase;
-            display: block;
-        }
-    }
-    .action.remove {
-        overflow: hidden;
-        display: inline-block;
-        padding: 4px;
-        position: absolute;
-        top: -1px;
-        right: 0;
-        background: @primary3;
-        span {
-            color: #fff;
-            .iconAfter(@content: @icon-close-thick, @size: 13px, @font: "icons");
-            .iconHideText(13px);
-        }
-    }
-    .actions {
-        margin-bottom: 30px;
-    }
-    .action.reset {
-        font-size: 12px;
-        text-transform: lowercase;
-        text-decoration: underline;
-    }
-    dt {
-        text-transform: uppercase;
-    }
-    dd {
-        margin: 0;
-        padding: 15px 0 25px;
-    }
-    .count {
-        font-size: 12px;
-        &:before {
-            content: ' (';
-        }
-        &:after {
-            content: ')';
-        }
-    }
-}
-
-/*
-    Magento_Catalog
-    Product Listing
--------------------------------------- */
-.toolbar {
-    @optionsHeigth: 23px;
-    clear: both;
-    margin: 17px 0;
-    &:first-child {
-        margin-top: 0;
-    }
-    &.alternative {
-        direction: rtl;
-        .pager {
-            direction: ltr;
-        }
-        .settings {
-            display: inline;
-            direction: ltr;
-        }
-        .pages,
-        .amount,
-        .limiter {
-            border-left: 1px solid @primary2;
-            padding: 2px 0 2px 15px;
-        }
-    }
-    .amount {
-        display: none;
-    }
-    .clearfix();
-    .settings {
-        display: inline;
-    }
-    .modes {
-        margin-left: 30px;
-        display: inline-block;
-        margin-top: 3px;
-        margin-right: 14px;
-        vertical-align: top;
-        .label {
-            display: none;
-        }
-    }
-    .limiter,
-    .sorter {
-        .clearfix();
-        padding: 2px 0;
-        float: left;
-        display: inline-block;
-        select {
-            margin-top: 1px;
-            margin-right: 5px;
-        }
-    }
-    .options {
-        float: left;
-        border: 1px solid @primary2;
-        white-space: nowrap;
-        height: @optionsHeigth;
-        line-height: @optionsHeigth;
-        overflow: visible;
-        display: block;
-        padding: 0 7px;
-        .current {
-            font-weight: 400;
-            float: left;
-            padding-right: 7px;
-        }
-        ul {
-            .resetList();
-            height: 0;
-            overflow: hidden;
-            clear: both;
-            padding: 0 30px 0 7px;
-            margin: 0 -8px;
-            border: 1px solid @primary3;
-            visibility: hidden;
-            top: -(@optionsHeigth + 1px);
-            background: #fff;
-            position: relative;
-            z-index: 2;
-        }
-        .action.switch {
-            float: right;
-            margin-top: 4px;
-        }
-        .selected {
-            color: @secondary1;
-        }
-        &.active {
-            ul {
-                height: auto;
-                visibility: visible;
-            }
-        }
-    }
-    .pager {
-        float: right;
-        .amount {
-            float: left;
-            line-height: @optionsHeigth + 2px;
-            margin: 2px 15px 0 0;
-        }
-        .text {
-            display: none;
-        }
-    }
-    .pages {
-        margin-left: 15px;
-        float: left;
-        .label {
-            line-height: @optionsHeigth + 2px;
-            display: inline-block;
-        }
-        strong.label {
-            font-weight: 400;
-            float: left;
-            line-height: @optionsHeigth + 2px;
-            margin-top: 2px;
-            margin-right: 5px;
-            display: none;
-        }
-        input {
-            width: 30px;
-            margin: 0 5px;
-            text-align: center;
-            padding: 0 5px;
-            height: @optionsHeigth + 2px;
-            line-height: @optionsHeigth + 2px;
-        }
-        > ul {
-            .resetList();
-            display: inline-block;
-            vertical-align: top;
-            margin-top: 2px;
-            line-height: @optionsHeigth + 2px;
-            vertical-align: middle;
-            li {
-                display: inline;
-                .label {
-                    position: absolute;
-                    width: 1px;
-                    height: 1px;
-                    margin: -1px;
-                    padding: 0;
-                    overflow: hidden;
-                    clip: rect(0,0,0,0);
-                    border: 0;
-                }
-            }
-            strong,
-            a {
-                padding: 0 3px;
-            }
-            strong {
-                font-weight: 400;
-                color: @secondary1;
-            }
-        }
-    }
-}
-
-/*
-    Magento_Catalog
-    Product List
--------------------------------------- */
-@imageHeight: 180px;
-@imageWidth: 180px;
-
-.category.image {
-    img {
-        max-width: 100%;
-    }
-}
-
-.products.wrapper .products.list {
-    .item {
-        .product.photo {
-            display: block;
-            margin-bottom: 10px;
-            text-align: center;
-            > .photo {
-                display: block;
-                margin: 0 auto;
-            }
-        }
-        z-index: 1;
-        position: relative;
-        border: 1px solid transparent;
-        background: transparent;
-        &:hover {
-            border: 1px solid @primary3;
-            background: @primary1;
-            .product.actions {
-                opacity: 1;
-                visibility: hidden;
-                .action.tocart,
-                .secondary {
-                    visibility: visible;
-                }
-            }
-            z-index: 99;
-        }
-        .product.actions {
-            opacity: 0.8;
-            visibility: hidden;
-            .action.tocart,
-            .secondary {
-                visibility: hidden;
-            }
-        }
-        .price-box,
-        .product.reviews {
-            display: block;
-            margin-bottom: 7px;
-        }
-        .secondary {
-            border: solid @primary3;
-            .box-sizing();
-            white-space: nowrap;
-            position: absolute;
-            .action {
-                padding: 10px;
-                white-space: normal;
-                vertical-align: top;
-                display: inline-block;
-                line-height: 1;
-            }
-        }
-    }
-}
-
-.products.wrapper.grid {
-    margin-bottom: 20px;
-}
-
-.products.wrapper.grid .products.list {
-    .item.product {
-        .box-sizing();
-        @total-columns: 10;
-        .column(2);
-        display: inline-block;
-        float: none;
-        .layout-2-left &,
-        .layout-2-right & {
-            @total-columns: 12;
-            .column(3);
-            display: inline-block;
-            float: none;
-            margin-bottom: 30px;
-        }
-        .layout-3 & {
-            @total-columns: 12;
-            .column(4);
-            display: inline-block;
-            float: none;
-            margin-bottom: 30px;
-        }
-        padding: 9px 9px 9px;
-        vertical-align: top;
-    }
-    .secondary {
-        border-width: 1px;
-        background: @primary1;
-        top: 100%;
-        .box-sizing();
-        left: -1px;
-        right: -1px;
-        .action {
-            padding: 10px 0;
-            text-align: center;
-            width: 49%;
-        }
-    }
-}
-
-.products.wrapper.list .products.list {
-    margin-bottom: 20px;
-    .item.product {
-        .clearfix();
-        display: block;
-        border-bottom: 1px solid @primary3;
-        padding: 9px 9px 9px 9px;
-        .product.details {
-            padding-bottom: 40px;
-        }
-        margin-bottom: -1px;
-    }
-    .product.details {
-        display: table;
-    }
-    .product.photo {
-        float: left;
-        margin-right: 9px;
-        margin-bottom: 0;
-    }
-    .secondary {
-        bottom: 0;
-        top: auto !important;
-        margin-left: 18px;
-        border-width: 1px 0 0;
-        right: 20px;
-    }
-    .product.description {
-        margin: 9px 0;
-    }
-}
-
-/*
-    General product item styling
--------------------------------------- */
-.product.name {
-    color: @primary6;
-    font-weight: 600;
-    line-height: 1.2;
-    display: block;
-    margin-bottom: 10px;
-}
-
-.price-box p,
-.pricing p {
-    margin: 5px 0;
-    &:first-child {
-        margin-top: 0;
-    }
-    &:last-child {
-        margin-bottom: 0;
-    }
-}
-
-.product.details .price-box .price-excluding-tax,
-.product.details .price-box .price-including-tax {
-    display: block;
-}
-
-.old-price,
-.old.price {
-    text-decoration: line-through;
-}
-
-.special-price,
-.special.price {
-    color: @secondary1;
-}
-
-.stock[title] {
-    line-height: 16px;
-    span:before {
-        content: '';
-        line-height: 16px;
-        background: #42b649;
-        display: inline-block;
-        border-radius: 5px;
-        width: 10px;
-        height: 10px;
-        margin-right: 5px;
-        vertical-align: middle;
-    }
-    &.unavailable {
-        color: @primary3;
-        span:before {
-            background: @primary3;
-        }
-    }
-}
-
-.product.item .product.description {
-    font-size: @baseFontSizeMiddle;
-}
-
-.action.tocart {
-    &:extend(.primary.action all);
-    padding: 5px 11px;
-
-    .block .product.actions & {
-        display: inline-block;
-        margin: 10px 0;
-    }
-}
-
-.action.tocompare,
-.action.towishlist {
-    font-size: 12px;
-    span:before {
-        content: "\002B\00A0";
-    }
-    .item.product & {
-        margin-left: 0;
-    }
-}
-
-/*
-    Magento_Catalog
-    Product View
--------------------------------------- */
-.fieldset {
-    .formFieldset();
-    > .field {
-        .formField();
-    }
-}
-
-.product.info.main {
-    float: right;
-    width: 430px;
-    padding-bottom: 30px;
-
-    .layout-2-left &,
-    .layout-2-right & {
-        width: 370px;
-    }
-    .layout-3 & {
-        float: none;
-        width: 100%;
-    }
-}
-
-.product.info.main {
-    .price-box {
-        font-size: 20px;
-        padding-bottom: 10px;
-        margin: 15px 0;
-        line-height: 1.2;
-        font-weight: @baseFontWeightLighter;
-    }
-    .page.title.product + .price-box {
-        border-bottom: 1px solid @primary2;
-    }
-    .col.price .price-box {
-        margin: 0;
-    }
-    p {
-        margin: 5px 0;
-    }
-    .old-price {
-        font-size: @baseFontSizeBigger;
-        .price-label {
-            //display: none;
-        }
-        .price {
-            text-decoration: line-through;
-        }
-    }
-    .stock {
-        margin: 15px 0;
-    }
-    .product.options.bottom {
-        .price-box {
-            display: none;
-        }
-    }
-    .product.addto.links {
-        margin: 15px 0 0;
-        padding-top: 10px;
-        border-top: 1px solid @primary2;
-        .action {
-            float: left;
-            margin-right: 15px;
-        }
-    }
-    .product.alert {
-        font-size: 12px;
-        margin: 5px 0;
-    }
-}
-
-.product.main.info {
-    .product.options.wrapper {
-        .field {
-            .fieldStyle();
-            .formField();
-            &:not(.choice) > .label {
-                .labelStyle();
-            }
-        }
-        .type-configurable & {
-            select {
-                min-width: 40%;
-                width: auto;
-                padding: 2px;
-            }
-        }
-    }
-    .product.options.wrapper .fieldset {
-        margin: 0;
-        .field.required .control .field.choice .label span:after {
-            content: "";
-        }
-        .field.date {
-            input[type="text"] {
-                width: auto;
-            }
-        }
-        .datetime-picker + .ui-datepicker-trigger {
-            margin: 0 15px 0 7px;
-        }
-        .payment.product.options,
-        .payment.product.schedule {
-            .content {
-                margin: 5px 0 0;
-            }
-        }
-    }
-}
-
-.action.primary.customize,
-.action.primary.tocart {
-    &:extend(.primary.action all);
-    line-height: 16px;
-    padding: 9px 15px;
-    span {
-        font-weight: 400;
-        font-size: @baseFontSizeBigger;
-    }
-}
-
-.product.media {
-    float: left;
-    width: 540px;
-    padding-bottom: 30px;
-
-    .layout-2-left &,
-    .layout-2-right & {
-        width: 400px;
-    }
-    .layout-3 & {
-        float: none;
-        width: 100%;
-    }
-}
-
-.box.tocart {
-    .clearfix();
-    margin: 15px 0;
-    .field {
-        float: left;
-        padding-right: 10px;
-    }
-    .label {
-        display: block;
-        text-align: left;
-        font-weight: 600;
-        text-transform: uppercase;
-        line-height: 25px;
-    }
-    .control {
-        width: 60px;
-        text-align: center;
-    }
-    .actions {
-        float: left;
-        padding-top: 24px;
-    }
-    .qty {
-        text-align: center;
-    }
-}
-
-.prices.tier {
-    padding: 20px;
-    margin: 15px 0;
-    background: @primary1;
-    strong {
-        font-weight: @baseFontWeight;
-    }
-}
-
-.product.social.links {
-    float: right;
-    text-align: right;
-}
-
-.action.mailto {
-    span {
-        .iconAfter(@content: @icon-envelope, @font: "icons");
-        .iconHideText();
-        color: @primary3;
-    }
-}
-
-.product.photo.thumbs {
-    float: left;
-    padding-left: 15px;
-    .title {
-        display: none;
-    }
-    .item.thumb {
-        margin-bottom: 8px;
-        img {
-            border: 1px solid transparent;
-        }
-        .active img {
-            border: 1px solid @primary5;
-        }
-    }
-}
-
-.product.photo.main {
-    float: left;
-    text-align: center;
-    .notice {
-        font-size: 11px;
-    }
-}
-
-.magento-zoom > .img > img {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    margin: auto;
-    max-height: 100%;
-    max-width: 100%;
-}
-
-.product.attibute.sku {
-    font-size: @baseFontSizeMiddle;
-    .value {
-        display: inline
-    }
-    .type:after {
-        content: '#';
-    }
-}
-
-.product.attibute.description {
-    img {
-        max-width: 100%;
-        height: auto;
-    }
-}
-
-@media only screen
-and (max-width : 99999px) {
-    .product.data {
-        .column(10);
-        .data-tabs();
-        .data-tabs-styling();
-    }
-
-    .temp-upsell-placeholder {
-        .column(2);
-        background: red;
-        height: 200px;
-        margin-top: 50px;
-    }
-}
-
-@media only screen
-and (max-width : 768px) {
-    .product.data {
-        .column(12);
-        .data-accordion();
-        .data-accordion-styling();
-    }
-
-    .temp-upsell-placeholder {
-        .column(12);
-        background: red;
-        height: 200px;
-        margin-top: 20px;
-    }
-}
-
-// Catalog Inventory
-.availability.only {
-    &.detailed {
-        display: none;
-        &.active {
-            display: block;
-        }
-    }
-    .data.table {
-        width: 100%;
-    }
-}
-
-/*
-    Magento_Bundle
-    Product View
--------------------------------------- */
-body.type-bundle {
-    overflow-x: hidden;
-}
-
-@media only screen
-and (max-width : 768px) {
-    body.type-bundle {
-        overflow: auto;
-        .customize {
-            &:before {
-                left: -10px;
-                right: -10px;
-
-            }
-        }
-    }
-}
-
-.product.info.main {
-    .action.primary.customize {
-        margin: 40px 0;
-    }
-}
-
-.bundle.options.container {
-    margin: 45px 0;
-    clear: both;
-    position: relative;
-    z-index: 1;
-    &:before {
-        position: relative;
-        z-index: 1;
-        content: '';
-        display: block;
-        position: absolute;
-        left: -999em;
-        right: -999em;
-        z-index: -1;
-        background: @primary1;
-        top: 0;
-        bottom: 0;
-    }
-
-    .product.add.form {
-        .clearfix();
-        position: relative;
-        z-index: 1;
-        display: none;
-        padding: 45px 0;
-    }
-    .product.options.wrapper {
-        float: left;
-        width: 500px;
-
-        .layout-2-left &,
-        .layout-2-right & {
-            width: 450px;
-        }
-        .layout-3 & {
-            width: 360px;
-        }
-    }
-    .product.options.bottom {
-        .box-sizing();
-        float: left;
-        padding: 0 10px 20px 30px;
-        width: 500px;
-        clear: left;
-    }
-
-    .prices.tier {
-        background: @primary2;
-        + .price-box {
-            font-size: @baseFontSizeBigger;
-            .price {
-                color: @secondary1;
-            }
-        }
-    }
-}
-
-.fieldset.bundle.options {
-    border: 0;
-    padding: 0;
-    margin: 0;
-    .legend {
-        font-size: 26px;
-        font-weight: 200;
-        float: left;
-        margin-bottom: 20px;
-    }
-    .legend + br {
-        display: block;
-        clear: both;
-    }
-    .bundle-slide-back {
-        float: right;
-    }
-    > .field {
-        > .label {
-            font-size: 20px;
-            font-weight: 200;
-            display: block;
-            margin-bottom: 20px;
-        }
-        margin: 0 0 50px;
-        padding: 20px;
-        background: @primary7;
-        &:last-child {
-            margin-bottom: 0;
-        }
-    }
-    .nested {
-        .field {
-            margin: 10px 0;
-        }
-        .field.qty {
-            margin-top: 20px;
-            .label {
-                display: inline-block;
-                vertical-align: middle;
-                span:after {
-                    content: ':';
-                }
-            }
-            .control {
-                width: 60px;
-                display: inline-block;
-                vertical-align: middle;
-            }
-            input {
-                text-align: center;
-            }
-        }
-    }
-}
-
-.product.options.wrapper {
-    .nested.mage-error-group {
-        position: relative;
-        z-index: 1;
-        .field {
-            z-index: 2;
-            position: relative;
-        }
-        &:before {
-            z-index: 1;
-            border:1px solid @nonValidHilight !important;
-            background: fadeout(@nonValidHilight,96%);
-            content: '';
-            left:-8px;
-            right:-8px;
-            top:-5px;
-            bottom:-5px;
-            display: block;
-            position: absolute;
-        }
-    }
-}
-
-.block.bundle.summary {
-    background: @primary7;
-    margin-top: 54px;
-    float: right;
-    position: relative;
-    width: 380px;
-
-    .layout-2-left &,
-    .layout-2-right & {
-        width: 320px;
-    }
-    .layout-3 & {
-        width: 230px;
-    }
-    > .title {
-        font-weight: 400;
-        border-bottom: 3px solid @primary2;
-        line-height: 1;
-        padding: 20px 20px 10px;
-        margin-bottom: 0;
-    }
-    .photo {
-        float: left;
-        border: 1px solid @primary2;
-        margin-right: 20px;
-        .photo {
-            float: none;
-            border: none;
-            margin-right: 0;
-        }
-    }
-    > .content {
-        padding: 20px;
-    }
-    .price-box {
-        .clearfix();
-        padding: 20px 0 0;
-        clear: both;
-        line-height: 24px;
-        .price-label {
-            float: left;
-            font-size: 18px;
-            font-weight: 600;
-        }
-        .full-product-price {
-            float: right;
-            .price {
-                color: @secondary1;
-                font-weight: 700;
-                font-size: 24px;
-            }
-        }
-    }
-    .box.tocart {
-        padding: 10px 0 20px;
-        border-top: 1px solid @primary2;
-        border-bottom: 1px solid @primary2;
-    }
-    .addto.links {
-        .action {
-            font-size: 14px;
-            margin-right: 20px;
-            &:last-child {
-                margin-right: 0;
-            }
-        }
-    }
-    .subtitle {
-        display: block;
-        margin: 20px -20px 0;
-        font-weight: @baseFontWeightLighter;
-        font-size: 20px;
-        border-bottom: 3px solid @primary2;
-        line-height: 1;
-        padding: 20px 20px 10px;
-        margin-bottom: 0;
-    }
-    .bundle.summary {
-        div > ul {
-            list-style: none;
-            margin: 10px 0 0;
-            padding: 0;
-            > li {
-                margin: 0 0 10px;
-                > div > div {
-                    margin: 0 0 5px;
-                }
-            }
-        }
-    }
-}
-
-.action.back.customization {
-    .resetAction();
-    .actionLink();
-    position: absolute;
-    top: 57px;
-    right: 0;
-}
-
-/*
-    CMS
--------------------------------------- */
-img[align="left"] {
-    margin: 0 22px 22px 0;
-}
-
-img[align="right"] {
-    margin: 0 0 22px 22px;
-}
-
-.home.main.slider {
-    img {
-        width: 100%;
-        display: block;
-    }
-}
-
-/*
-    Magento_Customer
--------------------------------------- */
-.customer.welcome {
-    display: inline-block !important;
-    position: relative;
-    z-index: 1;
-    cursor: pointer;
-    .menu {
-        padding:0;
-        margin: 0;
-    }
-    .menu > ul {
-        font-weight: 600;
-        font-size: @baseFontSizeMiddle;
-        margin: 0;
-        position: absolute;
-        top: 100%;
-        margin-left: -11px;
-        float: left;
-        right: 0;
-        text-align: left;
-        background: @primary1;
-        border: 1px solid darken(@headerBg, 5%);
-        visibility: hidden;
-        opacity: 0;
-        .transition(visibility 0s linear .2s);
-        li {
-            margin: 15px;
-            display: block;
-            white-space: nowrap;
-        }
-    }
-    &.active {
-        z-index: 9999;
-        .menu > ul {
-            visibility: visible;
-            opacity: 1;
-            .transitionDelay(0s);
-        }
-    }
-    .page.header .content & .customer.name {
-        font-weight: 400;
-        span {
-            color: @primary5;
-            .iconAfter(@content: @icon-arrow-bottom-filled, @font: "icons");
-            &:after {
-                line-height: @base-font-size;
-            }
-        }
-        &:focus span,
-        &:hover span,
-        &.active span {
-            color: @primary6;
-            outline: 0;
-        }
-        &.active span:after {
-            content: @icon-arrow-up-filled;
-        }
-    }
-    & + li {
-        display: none;
-    }
-}
-
-.customer.welcome + li,
-.customer.welcome + .greet.welcome + li {
-    display: none !important;
-}
-
-.login.container {
-    .clearfix();
-    background: @primary1;
-    padding: 40px;
-    position: relative;
-    z-index: 1;
-    padding-bottom: 150px;
-    .block {
-        .box-sizing();
-        float: left;
-        width: 50%;
-        > .title {
-            margin-bottom: 25px;
-        }
-        .actions {
-            .box-sizing();
-            text-align: right;
-            position: absolute;
-            bottom: 140px;
-            width: 50%;
-            padding: 0 40px;
-            .secondary {
-                margin-bottom: -2em;
-                margin-top: 0.8em;
-                line-height: 1.2em;
-                float: right;
-            }
-        }
-        &.login {
-            padding-right: 90px;
-            .actions {
-                margin-left: -90px;
-            }
-        }
-        &.new {
-            padding-left: 40px;
-            .actions {
-                margin-left: -40px;
-            }
-            &:before {
-                content: '';
-                border-left: 1px solid;
-                .borderColor(@primary1);
-                position: absolute;
-                top: 40px;
-                margin-left: -40px;
-                bottom: 60px;
-            }
-        }
-    }
-    .action.login,
-    .action.create {
-        &:extend(.primary.action all);
-    }
-}
-
-.form.login {
-    .fieldset.login {
-        .formFieldset();
-        .formInline(40%);
-        margin: 0;
-        padding: 0;
-        border: 0;
-        .field {
-            .fieldStyle();
-            .label {
-                padding-top: 7px;
-                padding-right: 10px;
-                text-align: right;
-            }
-        }
-    }
-}
-
-.form.login,
-.step.login {
-    .field.persistent {
-        .link.tip {
-            display: inline-block;
-            padding-top: 7px;
-        }
-        .checkbox {
-            margin-top: 10px;
-        }
-    }
-}
-
-.action.reload {
-    .resetAction();
-    position: absolute;
-    background: #fff;
-    padding: 2px;
-    span {
-        // TODO: add 'reload' icon to mui
-        .iconAfter(@content: @icon-info, @size: 22px, @font: "icons");
-        .iconHideText(22px);
-        color: @secondary1;
-        text-shadow: 0px 1px rgba(0, 0, 0, 0.4);
-    }
-}
-
-/*
-    Registration
--------------------------------------- */
-.form.send.friend,
-.form.address.edit,
-.form.edit.account,
-.form.search.advanced,
-.form.orders.search,
-.form.contact,
-.form.password.forget,
-.form.create.account,
-.form.wishlist.share,
-.form.password.reset,
-.form.paypal.review,
-.form.send.confirmation {
-    .formCommon();
-}
-
-.form.send.friend {
-    .fieldset.recipients {
-        .fields {
-            .clearfix();
-            margin-bottom: 30px;
-            position: relative;
-            z-index: 1;
-            .field {
-                .box-sizing();
-                width: 50%;
-                padding-right: 20px;
-                float: left;
-            }
-        }
-        .action.delete {
-            position: absolute;
-            right: 0;
-            top: 50%;
-        }
-        .actions {
-            width: 100%;
-            margin: 0;
-            .action.add {
-                &:extend(.secondary.action all);
-            }
-            .primary {
-                float: left;
-            }
-        }
-    }
-}
-
-.form.address.edit .field.company,
-.form.edit.account .field.password.current,
-.form.edit.account .field.choice {
-    margin-right: 30%;
-}
-
-.form.address.edit .field.note.default,
-.form.address.edit .field.choice.set,
-.form.wishlist.share .field.emails,
-.form.wishlist.share .field.text,
-.form.wishlist.share .field.choice {
-    width: 100%;
-}
-
-// Move to other place
-.form.search.advanced,
-.form.orders.search,
-.form.contact {
-    .box-sizing();
-    background: @primary1;
-    padding: 40px;
-    .fieldset {
-        width: auto;
-        background: none;
-        margin-bottom: 0;
-        .legend {
-            background: none;
-        }
-    }
-    .actions {
-        width: auto;
-        padding-right: 30px;
-        text-align: right;
-        .action {
-            &:extend(.primary.action all);
-        }
-    }
-    .fields.range {
-        .field:first-child {
-            .control {
-                padding-right: 30px;
-                position: relative;
-                &:after {
-                    content: '\2014';
-                    display: inline-block;
-                    margin-right: 0;
-                    position: absolute;
-                    right: 6px;
-                    top: 5px;
-                    text-align: center;
-                    width: 25px;
-                }
-            }
-        }
-    }
-}
-
-.form.contact {
-    .fieldset {
-        .field {
-            float: left;
-            width: 40%;
-            margin-right: 60%;
-            &.comment {
-                width: 55%;
-                margin-left: -55%;
-                margin-right: 0;
-                float: none;
-                textarea {
-                    min-height: 13.2em;
-                }
-            }
-        }
-    }
-}
-
-/*
-    Review paypal express checkout order
--------------------------------------- */
-.paypal.review.view {
-    .paypal.subtitle.caption {
-        margin-bottom: 25px;
-        .action {
-            margin-left: 10px;
-        }
-        strong {
-            font-size: 20px;
-            font-weight: 200;
-            line-height: 1.2;
-        }
-    }
-    .form.paypal.review {
-        .fieldset {
-            width: 100%;
-            &.shipping.address {
-                float: right;
-                width: 49%;
-            }
-            &.billing.address {
-                float: left;
-                width: 49%;
-            }
-            &.shipping.method {
-                clear: both;
-            }
-            .nested {
-                margin-top: 10px;
-            }
-        }
-    }
-    .actions {
-        margin-top: 35px;
-        .action.update {
-            &:extend(.secondary.action all);
-            margin-left: 10px;
-        }
-    }
-    .paypal.review.items {
-        clear: left;
-    }
-    .data.table.paypal.review.items {
-        width: 100%;
-        td,
-        th {
-            padding: 10px 20px;
-            text-align: left;
-            &.col.total {
-                text-align: right;
-            }
-        }
-        th {
-            font-size: 16px;
-            font-weight: 400;
-        }
-        tbody tr:nth-child(odd) td {
-            background: @primary1;
-        }
-        tfoot tr:first-child td {
-            border-top: 3px solid @primary2;
-            padding-top: 15px;
-        }
-    }
-
-    .block.shipping.information,
-    .block.billing.information {
-        margin-bottom: 45px;
-        > .content {
-            .clearfix();
-        }
-        .box {
-            float: left;
-            padding-right: 2%;
-            width: 48%;
-            > .content {
-                background: @primary1;
-                padding: 30px;
-                .select {
-                    width: 100%;
-                }
-                .actions {
-                    margin: 25px 0 0;
-                }
-            }
-        }
-        address {
-            font-style: normal;
-        }
-        .subtitle {
-            display: block;
-            font-size: 18px;
-            font-weight: 200;
-            margin-bottom: 20px;
-            .action {
-                display: inline-block;
-                font-size: 14px;
-                font-weight: 400;
-                margin-left: 20px;
-                text-decoration: underline;
-                text-transform: lowercase;
-            }
-        }
-    }
-}
-
-.paypal.iframe {
-    display: none;
-}
-
-/*
-    MISC
--------------------------------------- */
-.action.back {
-    span:before {
-        content: '\00AB\00A0';
-    }
-}
-
-/*
-    Magento_Customer
-    Account
--------------------------------------- */
-.layout-2-left.account {
-    .column.main {
-        .column(9);
-    }
-    .column.left {
-        .column(3);
-    }
-}
-
-.block.account.nav {
-    .title {
-        font-size: 18px;
-    }
-    .item {
-        margin-bottom: 10px;
-        &.current {
-            color: @secondary1;
-            a {
-                color: @secondary1;
-            }
-        }
-    }
-    .item strong {
-        font-weight: 400;
-    }
-}
-
-.account {
-    .pager {
-        .amount,
-        .limiter {
-            display: inline-block;
-        }
-    }
-    .form {
-        .fieldset > .legend {
-            margin: 0 0 30px;
-        }
-    }
-    .column.main {
-        > .actions,
-        .form > .actions,
-        .block > .actions {
-            .clearfix();
-            margin: 30px 0 0;
-            > .primary {
-                float: right;
-            }
-            > .secondary {
-                float: left;
-            }
-        }
-    }
-    .data.table {
-        width: 100%;
-        td,
-        th {
-            padding: 10px 20px;
-            text-align: left;
-            &.col.actions {
-                white-space: nowrap;
-                .action:last-child {
-                    margin-left: 20px;
-                }
-                .action:first-child,
-                .action.details {
-                    margin-left: 0;
-                }
-            }
-            em {
-                font-style: normal;
-            }
-        }
-        th {
-            font-size: 16px;
-            font-weight: @baseFontWeight;
-        }
-        tr:nth-child(odd) td {
-            background: @primary1;
-        }
-    }
-}
-
-.block.dashboard {
-    .title .action,
-    .subtitle .action {
-        font-weight: @baseFontWeight;
-        font-size: @baseFontSize;
-        margin-left: 20px;
-        text-decoration: underline;
-        display: inline-block;
-        text-transform: lowercase;
-        span {
-        }
-        &:first-letter {
-            text-transform: uppercase;
-        }
-    }
-    .box {
-        .box-sizing();
-        float: left;
-        width: 50%;
-        line-height: 1.666;
-        address {
-            font-style: normal;
-        }
-    }
-    .content {
-        .clearfix();
-    }
-}
-
-.block.dashboard:not(.welcome):not(.orders) {
-    .content {
-        background: @primary1;
-        padding: 30px;
-    }
-    .subtitle {
-        font-size: 18px;
-        font-weight: @baseFontWeightLighter;
-        display: block;
-        margin-bottom: 20px;
-    }
-}
-
-.data.table.orders {
-    td,
-    th {
-        &.col.total {
-            text-align: right;
-        }
-    }
-}
-
-/*
-    Address book
--------------------------------------- */
-.block.addresses:not(.dashboard) {
-    .box-sizing();
-    float: left;
-    .title .action,
-    .subtitle .action {
-        font-weight: @baseFontWeight;
-        font-size: @baseFontSize;
-        margin-left: 20px;
-        text-decoration: underline;
-        display: inline-block;
-        text-transform: lowercase;
-        &:first-letter {
-            text-transform: uppercase;
-        }
-    }
-    .content {
-        background: @primary1;
-        padding: 30px;
-    }
-    .subtitle {
-        font-size: 18px;
-        font-weight: @baseFontWeightLighter;
-        display: block;
-        margin-bottom: 20px;
-    }
-    .box {
-        &:first-child {
-            margin-bottom: 30px;
-        }
-    }
-    address {
-        line-height: 1.666;
-        font-style: normal;
-    }
-    &.default {
-        float: left;
-        width: 60%;
-    }
-    &.list {
-        float: right;
-        width: 35%;
-        .item {
-            margin-bottom: 30px;
-        }
-        .item.actions {
-            margin-top: 15px;
-        }
-        .action {
-            margin-right: 10px;
-        }
-    }
-}
-
-.customer-address-index .column.main .actions {
-    clear: left;
-}
-
-/*
-    My Account -> My Product Reviews
--------------------------------------- */
-.data.table.reviews {
-    .product.name {
-        margin: 0;
-    }
-}
-
-/*
-    Wishlist sidebar
--------------------------------------- */
-.block.wishlist {
-    .subtitle {
-        display: block;
-        font-weight: 600;
-        margin: 0 0 15px;
-    }
-}
-
-/*
-    My Account -> My Wishlist
--------------------------------------- */
-.wrapper.table {
-    .data.table.wishlist {
-        @optionsBg: rgba(0, 0, 0, .8);
-        @optionsColor: #fff;
-
-        margin-bottom: 15px;
-
-        thead th {
-            padding-top: 0;
-            padding-bottom: 10px;
-            text-align: left;
-            font-weight: @baseFontWeight;
-            font-size: @baseFontSizeBigger;
-        }
-
-        td,
-        th {
-            padding: 16px 10px 10px;
-            vertical-align: top;
-        }
-
-        td:first-child,
-        th:first-child {
-            padding-left: 20px;
-        }
-
-        td:last-child,
-        th:last-child {
-            padding-right: 20px;
-        }
-
-        tbody tr:nth-child(even) {
-            background: @primary1;
-        }
-
-        textarea {
-            width: 100%;
-        }
-
-        .box.tocart .qty {
-            width: 50px;
-        }
-
-        .col.photo {
-            width: 100px;
-        }
-        .col.actions {
-            width: 200px;
-            .price-excluding-tax,
-            .price-including-tax {
-                display: block;
-            }
-        }
-    }
-    & + .actions {
-        .primary {
-            margin-bottom: 15px;
-            .action.share,
-            .action.update {
-                &:extend(.primary.action all);
-                padding: 5px 11px;
-            }
-            .action.update {
-                margin-left: 5px;
-            }
-        }
-    }
-}
-/*
-    Page -> Advanced Search
--------------------------------------- */
-.form.search.advanced {
-    .range.price.fields.group {
-        .field {
-            .box-sizing();
-            .column(6);
-            padding-right: 0;
-        }
-        .field:first-child input {
-            width: 96%;
-        }
-    }
-    .range.dates.fields.group {
-        .field {
-            .box-sizing();
-            .column(6);
-            padding-right: 0;
-            .control {
-                padding-right: 20px;
-            }
-        }
-        .field:first-child .control {
-            padding-right: 50px;
-            .ui-datepicker-trigger {
-                right: 32px;
-            }
-        }
-    }
-    .group.price {
-        .addon {
-            .addafter {
-                color: @textColor;
-                border: none;
-                background: none;
-                padding: 0 20px 0 5px;
-            }
-        }
-    }
-}
-
-/*
-    Popular Search Terms
--------------------------------------- */
-.search.terms {
-    .resetList();
-    .item {
-        display: inline-block;
-        margin-right: 3px;
-    }
-}
-
-/*
-    My Account -> My orders
--------------------------------------- */
-.order.details {
-    .clearfix();
-
-    .status {
-        margin: 0 0 .5em;
-        line-height: 1.2;
-        font-weight: 400;
-        font-size: 30px;
-        float: left;
-    }
-
-    .subtitle.caption,
-    .title {
-        strong {
-            line-height: 1.2;
-            font-weight: 200;
-            font-size: 20px;
-        }
-        .action {
-            margin-left: 10px;
-        }
-    }
-
-    .subtitle.caption {
-        margin-bottom: 45px;
-    }
-
-    .order.toolbar {
-        clear: none;
-        float: right;
-
-        .action {
-            margin-left: 10px;
-        }
-    }
-
-    .block.order {
-        float: left;
-        width: 48%;
-        padding-right: 2%;
-
-        &.billing.address {
-            clear: left;
-        }
-        .content {
-            background: @primary1;
-            padding: 30px;
-        }
-        p {
-            margin-top: 0;
-            &:last-child {
-                margin-bottom: 0;
-            }
-        }
-    }
-
-    .order.info {
-        clear: both;
-
-        > dt {
-            line-height: 1.2;
-            font-weight: 200;
-            font-size: 20px;
-        }
-
-        > dd {
-            margin: 0;
-            .items {
-                .clearfix();
-                background: @primary1;
-                margin: 10px 0 0 0;
-                padding: 30px;
-                .item {
-                    float: left;
-                    margin-right: 15px;
-                }
-            }
-        }
-    }
-
-    .additional.details {
-        margin-bottom: 45px;
-        .order.comments {
-            background: @primary1;
-            padding: 30px;
-        }
-        .subtitle.caption {
-            font-size: 20px;
-            font-weight: 200;
-            line-height: 1.2;
-            margin-bottom: 15px;
-        }
-        &.gift {
-            .gift.message {
-                background: @primary1;
-                padding: 30px;
-                dt {
-                    margin: 0;
-                }
-                dd {
-                    margin: 0 0 0 40px;
-                }
-            }
-        }
-    }
-}
-
-.order.details.items {
-    .order.toolbar {
-        margin: 5px 0 0 0;
-    }
-    .order.title {
-        margin-bottom: 10px;
-    }
-    h3.product-name {
-        margin: 0;
-    }
-    .action.show {
-        text-decoration: none;
-        .iconAfter(@content: @icon-arrow-bottom-filled, @size: 12px, @font: "icons");
-        &.expanded:after {
-            content: @icon-arrow-up-filled;
-        }
-    }
-    .gift.message.details {
-        position: relative;
-    }
-    .gift.message {
-        margin: 0;
-    }
-    .action.close {
-        position: absolute;
-        right: 0;
-        top: 0;
-        span {
-            .iconAfter(@content: @icon-close-thick, @size: 12px, @font: "icons");
-        }
-    }
-    + .order.details.view {
-        margin-top: 45px;
-    }
-}
-
-.shipping-tracking-popup {
-    .action.close {
-        &:extend(.secondary.action all);
-        text-indent: 0;
-
-        span {
-            width: auto;
-            text-indent: 0;
-            &:after {
-                content: "";
-                display: none;
-            }
-        }
-    }
-}
-
-.data.table {
-    th, td {
-        border-right-width:0;
-    }
-}
-.data.table.order {
-    margin-bottom: 45px;
-    width: 100%;
-
-    thead th {
-        padding: 0 10px;
-    }
-
-    thead tr:last-child th {
-        padding-bottom: 10px;
-    }
-
-    td.col.qty {
-        width: 90px;
-        text-align: left;
-    }
-
-    td.col.price,
-    td.col.subtotal {
-        text-align: left;
-    }
-    td {
-        padding: 16px 10px 10px;
-        vertical-align: top;
-
-        h4 {
-            margin: 0;
-        }
-    }
-    td:first-child,
-    th:first-child {
-        padding-left: 20px;
-    }
-    td:last-child,
-    th:last-child {
-        padding-right: 20px;
-    }
-    tbody:nth-child(even) tr {
-        background: @primary1;
-    }
-    th {
-        text-align: left;
-        font-weight: 400;
-        font-size: 14px;
-        vertical-align: top;
-    }
-    tr:first-child th {
-        font-weight: 400;
-        font-size: 16px;
-    }
-    .item-options {
-        margin: 5px 0;
-
-        dt {
-            font-weight: 400;
-            display: inline;
-            margin-right: 10px;
-            float: left;
-            clear: left;
-
-            &:after {
-                content: ': ';
-            }
-        }
-        dd {
-            font-weight: 200;
-            margin: 0 0 5px 10px;
-            padding: 0;
-        }
-    }
-
-    tfoot tr:first-child td {
-        border-top: 3px solid @primary2;
-        padding-top: 15px;
-    }
-
-    &.tracking {
-        th, td {
-            padding: 0;
-        }
-        .label {
-            width: 40%;
-        }
-    }
-    .qty.summary {
-        .resetList();
-        .label {
-            &:after {
-                content: ": ";
-            }
-        }
-    }
-}
-
-/*
-    My Account -> Billing agreements
--------------------------------------- */
-.billing.agreements {
-    .data.table {
-        margin-bottom: 40px;
-    }
-    .form.new.agreement {
-        .formCols(30%);
-
-        .fieldset {
-            margin: 0;
-            > .legend {
-                margin: 0 0 20px;
-            }
-        }
-
-        .action.create {
-            padding-top: 7px;
-            padding-bottom: 6px;
-        }
-    }
-}
-
-/*
-    My Account -> Recurring payments
--------------------------------------- */
-.recurring.order.details {
-    .block.view.info {
-        .clearfix();
-        .box {
-            float: left;
-            padding-right: 2%;
-            width: 48%;
-            .subtitle {
-                font-size: 20px;
-                font-weight: 200;
-                line-height: 1.2;
-                display: inline-block;
-                margin-bottom: 15px;
-            }
-            .content {
-                background: @primary1;
-                padding: 30px;
-                .clearfix();
-            }
-            .data.table {
-                th,
-                td {
-                    padding: 4px 7px;
-                }
-            }
-        }
-    }
-    > .actions {
-        .primary {
-            text-align: right;
-            .action {
-                &:extend(.primary.action all);
-            }
-        }
-    }
-}
-
-/*
-    My Account -> Send confirmation link
--------------------------------------- */
-.form.send.confirmation {
-    .action.send {
-        &:extend(.primary.action all);
-    }
-}
-
-/*
-    Overlay popup
--------------------------------------- */
-.window.overlay {
-    background: @primeBlackOpacity;
-    display: none;
-    min-height: 100%;
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    z-index: 990;
-    &.active {
-        display: block;
-    }
-}
-
-.popup {
-    background: @primary7;
-    left: 50%;
-    top: 40%;
-    position: absolute;
-    margin: -85px 0 0 -250px;
-    width: 500px;
-    z-index: 1000;
-    position: fixed;
-    display: none;
-    &.active {
-        display: block;
-    }
-    > .action.close span {
-        .iconHideText();
-        &:after {
-            content: "";
-        }
-    }
-    .title {
-        font-size: 18px;
-        margin: 0 0 30px;
-        strong {
-            font-weight: 400;
-        }
-    }
-    .fieldset {
-        .action.close span {
-            line-height: inherit;
-            text-indent: 0;
-            width: auto;
-            &:after {
-                content: "";
-                display: none;
-            }
-        }
-    }
-}
-
-.truncated {
-    position: relative;
-    .truncated.full.value {
-        background: @optionsBg;
-        color: @optionsColor;
-        display: none;
-        position: absolute;
-        border-radius: 5px;
-        padding: 10px;
-        right: 100%;
-        top: 50%;
-        margin-top: -20px;
-        margin-right: 15px;
-        max-width: 200px;
-        min-width: 100px;
-        &.show {
-            display: block;
-            &:before {
-                content: '';
-                border-left: 10px solid @optionsBg;
-                border-top: 10px solid transparent;
-                border-bottom: 10px solid transparent;
-                height: 0;
-                width: 0;
-                overflow: hidden;
-                display: block;
-                position: absolute;
-                top: 12px;
-                margin-top: 0;
-                right: -10px;
-                z-index: 2;
-            }
-        }
-        > p {
-          margin-top: 0;
-        }
-        dl {
-            margin: 0;
-            dt {
-                display: inline;
-                font-weight: 600;
-                &:after {
-                    content: ':';
-                }
-            }
-            dd {
-                margin: 0;
-                white-space: normal;
-            }
-        }
-    }
-    .action.details {
-        font-size: @baseFontSizeMiddle;
-        border-bottom: 1px dotted @link;
-        cursor: help;
-    }
-}
-
-/*
-    Minimum Advertising Price
--------------------------------------- */
-.map.popup {
-    background: @commonBg;
-    border: 1px solid @primary3;
-    margin: 18px 0 0;
-    position: absolute;
-    padding: 20px;
-    width: 300px;
-    z-index: 10;
-    &:before {
-        border-color: transparent transparent @primary7 transparent;
-        border-style: solid;
-        border-width: 0 15px 15px;
-        content: "";
-        height: 0;
-        left: 50%;
-        margin: 0 0 0 -7px;
-        position: absolute;
-        top: -15px;
-        width: 0;
-        z-index: 2;
-    }
-    &:after {
-        border-color: transparent transparent @primary3 transparent;
-        border-style: solid;
-        border-width: 0 16px 16px;
-        content: "";
-        height: 0;
-        left: 50%;
-        margin: 0 0 0 -8px;
-        position: absolute;
-        top: -16px;
-        width: 0;
-        z-index: 1;
-    }
-    .title {
-        margin-bottom: 20px;
-    }
-    .map.msrp .old.price {
-        text-decoration: line-through;
-    }
-    .form.map.checkout {
-        float: right;
-    }
-    .content {
-        margin: 15px 0 0;
-        .map.msrp,
-        .map.price {
-            > .label:after {
-                content: ": ";
-            }
-        }
-        .map.price > .label {
-            font-weight: 700;
-        }
-    }
-    .price-excluding-tax,
-    .price-including-tax {
-        display: block;
-    }
-    + .category.view {
-        position: relative;
-        z-index: 1;
-    }
-}
-
-@import "source/responsive/responsive.less";
diff --git a/app/design/frontend/Magento/plushe/fonts/.htaccess b/app/design/frontend/Magento/plushe/fonts/.htaccess
deleted file mode 100644
index d7ef2e0846f3540b53f8fdea30f721dd61a899cb..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/fonts/.htaccess
+++ /dev/null
@@ -1,13 +0,0 @@
-# deny *everything*
-<FilesMatch ".*">
-  Order Allow,Deny
-  Deny from all
-</FilesMatch>
-
-# but now allow just *certain* necessary files:
-<FilesMatch ".*\.(js|JS|css|CSS|jpg|JPG|gif|GIF|png|PNG|swf|SWF|xsl|XSL|svg|eot|ttf|woff)$">
-  Order Allow,Deny
-  Allow from all
-</FilesMatch>
-
-IndexIgnore */*
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/fonts/icons/icons.dev.svg b/app/design/frontend/Magento/plushe/fonts/icons/icons.dev.svg
deleted file mode 100644
index 661704d2967fd064336e62489321f4876409c84f..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/fonts/icons/icons.dev.svg
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>
-This is a custom SVG font generated by IcoMoon.
-<iconset grid="16"></iconset>
-</metadata>
-<defs>
-<font id="icons" horiz-adv-x="512" >
-<font-face units-per-em="512" ascent="480" descent="-32" />
-<missing-glyph horiz-adv-x="512" />
-<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
-<glyph unicode="&#xe006;" d="M 323.52,366.72L 169.984,366.72L 93.216,268.192L 400.288,268.192 						zM 246.752,480L 182.88,383.872L 310.656,383.872 						zM 393.728,251.808L 99.808,251.808 c-13.088,0-23.712-10.624-23.712-23.776l0-236.256 C 76.096-21.344, 86.72-32, 99.808-32l 293.92,0 
-							c 13.056,0, 23.68,10.656, 23.68,23.776L 417.408,228.032 C 417.408,241.184, 406.784,251.808, 393.728,251.808z" data-tags="pencil" />
-<glyph unicode="&#xe007;" d="M0,243.648L 512,243.648L 512,204.32L0,204.32zM0,381.536L 512,381.536L 512,342.144L0,342.144zM0,105.824L 512,105.824L 512,66.496L0,66.496z" data-tags="menu" />
-<glyph unicode="&#xe008;" d="M 425.12,310.88C 425.12,404.256, 349.344,480, 256,480C 162.56,480, 86.88,404.256, 86.88,310.88c0-73.632, 47.040-136.256, 112.672-159.488l 15.232-49.504
-						L 256-32l 41.216,133.888l 15.232,49.504C 378.112,174.624, 425.12,237.248, 425.12,310.88z M 349.6,256.832L 256,202.816L 162.368,256.832L 162.368,364.896 L 256,418.944
-						l 93.6-54.016L 349.6,256.832 z" data-tags="location" />
-<glyph unicode="&#xe00a;" d="M 149.824-32L 262.304-32L 332.672,319.616L 220.128,319.616 				zM 357.248,450.432c-3.264,6.56-7.712,12-13.344,16.192c-5.664,4.256-11.936,7.488-19.008,9.856C 317.888,478.816, 310.592,480, 303.136,480
-					C 293.728,480, 284.928,478.24, 276.736,474.72s-15.36-8.096-21.44-13.728C 249.184,455.36, 244.384,448.704, 240.864,440.928
-					c-3.52-7.68-5.248-15.808-5.248-24.256c0-8.864, 1.632-16.64, 4.896-23.2c 3.264-6.56, 7.712-11.936, 13.344-16.192
-					c 5.632-4.192, 11.968-7.36, 19.008-9.504c 7.040-2.080, 14.304-3.168, 21.792-3.168c 19.264,0, 35.328,5.984, 48.192,17.984
-					c 12.928,11.936, 19.328,27.072, 19.328,45.344C 362.176,436.416, 360.544,443.904, 357.248,450.432z" data-tags="info" />
-<glyph unicode="&#xe00c;" d="M 368.032,304L 512,447.968L 96,447.968L 96,480L 32,480L 32,447.968L0,447.968L0,160L 32,160L 32-32L 96-32L 96,160L 512,160 
-											z" data-tags="flag" />
-<glyph unicode="&#xe00d;" d="M 512,275.2L 307.2,275.2L 307.2,480L 204.8,480L 204.8,275.2L0,275.2L0,172.8L 204.8,172.8L 204.8-32L 307.2-32L 307.2,172.8L 512,172.8 			z" data-tags="expand" />
-<glyph unicode="&#xe00e;" d="M 200.064,26.528c0,17.024, 5.376,31.040, 16.128,42.048c 10.752,10.976, 24.16,16.544, 40.192,16.544s 29.312-5.568, 39.744-16.544
-					c 10.56-11.040, 15.808-25.024, 15.808-42.048s-5.248-31.072-15.808-42.016C 285.696-26.528, 272.416-32, 256.384-32s-29.44,5.472-40.192,16.512
-					C 205.44-4.544, 200.064,9.504, 200.064,26.528z M 215.104,394.4L 212.8,480l 87.136,0 L 296.928,394.4l-12.064-256L 227.104,138.4 L 215.104,394.4z" data-tags="exclamation" />
-<glyph unicode="&#xe010;" d="M 256,46.624L0,401.376l 512,0 L 256,46.624z" data-tags="dropdown" />
-<glyph unicode="&#xe011;" d="M 512,275.2L 512,172.8 L0,172.8 L0,275.2 L 512,275.2 z" data-tags="collapse" />
-<glyph unicode="&#xe012;" d="M 512-3.296L 284.576,224.48L 511.168,451.328L 482.56,480L 255.936,253.12L 29.504,479.84L 0.864,451.168L 227.328,224.448L0-3.136L 28.64-31.84L 255.936,195.744L 483.392-32 			z" data-tags="close-thick" />
-<glyph unicode="&#xe013;" d="M 44.384,252.768L 182.72,89.568L 459.552,480L 505.696,427.488L 183.904-32L 6.304,197.152 		z" data-tags="checkmark" />
-<glyph unicode="&#xe014;" d="M 480,320L 96,384C 90.784,384, 86.048,382.464, 81.728,380.256L 79.36,388.384C 78.624,391.008, 77.248,393.376, 75.328,395.328l-32,32
-					c-6.24,6.24-16.384,6.24-22.624,0s-6.24-16.384,0-22.624l 29.056-29.056L 110.912,161.6l-29.216-58.432
-					c-2.496-4.96-2.208-10.848, 0.672-15.552C 85.312,82.88, 90.432,80, 96,80l 48,0 l0-20.896 C 134.624,53.536, 128,43.712, 128,32
-					c0-17.696, 14.304-32, 32-32s 32,14.304, 32,32c0,11.712-6.624,21.536-16,27.104L 176,80 l 192,0 l0-20.896 C 358.592,53.536, 352,43.712, 352,32
-					c0-17.696, 14.304-32, 32-32s 32,14.304, 32,32c0,11.712-6.592,21.536-16,27.104L 400,80 L 448,80 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 121.888,112 
-					l 20.448,40.832c 1.792,3.584, 2.176,7.68, 1.056,11.552l-0.32,1.12C 148.064,162.336, 153.632,160, 160,160l 288,0 c 17.696,0, 32,14.304, 32,32l 32,96
-					C 512,305.696, 497.696,320, 480,320z" data-tags="cart" />
-<glyph unicode="&#xe015;" d="M 512,132.864L 267.552,315.072L 267.616,315.136L 255.968,323.776L0,132.96L 11.616,124.288L 255.936,306.432L 500.352,124.224 			z" data-tags="arrow-up-thin" />
-<glyph unicode="&#xe016;" d="M 164.864-32L 347.072,212.448L 347.136,212.384L 355.776,224.032L 164.96,480L 156.288,468.384L 338.432,224.064L 156.224-20.352 			z" data-tags="arrow-right-thin" />
-<glyph unicode="&#xe017;" d="M 347.136,480L 164.928,235.552L 164.864,235.616L 156.224,223.968L 347.040-32L 355.712-20.384L 173.568,223.936L 355.776,468.352 			z" data-tags="arrow-left-thin" />
-<glyph unicode="&#xe018;" d="M0,315.136L 244.448,132.928L 244.384,132.864L 256.032,124.224L 512,315.040L 500.384,323.712L 256.064,141.568L 11.648,323.776 			z" data-tags="arrow-down-thin" />
-<glyph unicode="&#xe019;" d="M 256,382.944L 255.968,382.976L0,127.008L 62.048,64.96L 256.032,258.912L 449.984,65.024L 512,127.072L 256.064,383.040 			z" data-tags="arrow-up-thick" />
-<glyph unicode="&#xe01a;" d="M 414.944,224L 414.976,224.032L 159.008,480L 96.96,417.952L 290.912,223.968L 97.024,30.016L 159.072-32L 415.040,223.936 			z" data-tags="arrow-right-thick" />
-<glyph unicode="&#xe01b;" d="M 97.056,224L 97.024,223.968L 352.992-32L 415.040,30.048L 221.088,224.032L 414.976,417.984L 352.928,480L 96.96,224.064 			z" data-tags="arrow-left-thick" />
-<glyph unicode="&#xe01c;" d="M 256,65.056L 256.032,65.024L 512,320.992L 449.952,383.040L 255.968,189.088L 62.016,382.976L0,320.928L 255.936,64.96 			z" data-tags="arrow-down-thick" />
-<glyph unicode="&#xe01d;" d="M 48,384L 240,384L 240,206.784L 48,206.784zM 48,177.216L 240,177.216L 240,0L 48,0zM 272,384L 464,384L 464,206.784L 272,206.784zM 272,177.216L 464,177.216L 464,0L 272,0zM 283.84,353.184l 156.992,42.784l-8.448,30.88L 381.44,412.928c 8.384,7.2, 15.040,14.88, 18.944,22.944
-						c 5.12,10.56, 5.728,21.536, 1.728,31.744l-3.52,5.76L 394.592,476.16l-6.208,2.592c-57.024,10.56-109.024-48.96-132.416-80.992
-						c-23.36,32-75.36,91.52-132.416,80.992L 111.616,472.16L 109.888,467.616C 105.888,457.376, 106.464,446.4, 111.552,435.872
-						c 3.936-8.064, 10.56-15.712, 18.88-22.88l-50.88,13.856L 71.168,395.968l 156.96-42.784L 222.24,343.2l 20.16,6.112l 8.544-2.304l 8.032-0.576
-						l 10.592,2.88l 20.192-6.112L 283.84,353.184z M 370.528,447.936C 361.856,433.696, 332.64,417.28, 301.76,404
-						C 321.12,425.472, 346.080,446.016, 370.528,447.936z M 210.24,404C 179.36,417.248, 150.112,433.632, 141.44,447.936C 165.888,446.016, 190.88,425.44, 210.24,404
-						z" data-tags="wishlist" />
-<glyph unicode="&#xe01e;" d="M 61.135-4.221l 14.485,68.604l-9.772,0 c-36.307,0-65.846,29.536-65.846,65.841L 0.002,382.309 
-			c0,36.306, 29.539,65.843, 65.846,65.843l 380.303,0 c 36.309,0, 65.845-29.538, 65.845-65.843l0-252.084 
-			c0-36.305-29.536-65.841-65.845-65.841L 169.429,64.384 L 61.135-4.221z" data-tags="comment" />
-<glyph unicode="&#xe01f;" d="M 342.569,64.384L 65.847,64.384 c-36.309,0-65.845,29.536-65.845,65.841L 0.002,382.309 
-			c0,36.306, 29.536,65.843, 65.845,65.843L 446.15,448.152 c 36.307,0, 65.846-29.538, 65.846-65.843l0-252.084 
-			c0-36.305-29.539-65.841-65.846-65.841l-9.773,0 l 14.486-68.604L 342.569,64.384z" data-tags="comment-reflected" />
-<glyph unicode="&#xe002;" d="M0,480l 128.002,0 l0-128.002 L0,351.998 L0,480 zM 192.219,415.999l 319.777,0 l0-63.331 L 192.219,352.668 L 192.219,415.999 zM0,288.001l 128.002,0 l0-128.003 L0,159.998 L0,288.001 zM 192.219,224l 319.777,0 l0-63.33 L 192.219,160.67 L 192.219,224 zM 0.002,96.003l 128.002,0 L 128.004-32 L 0.002-32 L 0.002,96.003 zM 192.221,32.002l 319.775,0 l0-63.33 L 192.221-31.328 L 192.221,32.002 z" data-tags="list" />
-<glyph unicode="&#xe003;" d="M 0.002,480l 192,0 l0-192.002 l-192,0 L 0.002,480 zM0,160.002l 192,0 L 192-32 L0-32 L0,160.002 zM 319.996,160.002l 192,0 L 511.996-32 l-192,0 L 319.996,160.002 zM 320,480l 192,0 l0-192.002 L 320,287.998 L 320,480 z" data-tags="grid" />
-<glyph unicode="&#xe004;" d="M 30.832,438.23l 10.065,10.052l 439.399-439.4l-10.066-10.051
-			L 30.832,438.23zM 40.898-1.169l-10.066,10.051l 439.398,439.4l 10.066-10.052
-			L 40.898-1.169z" data-tags="close-thin" />
-<glyph unicode="&#xe000;" d="M 313.472,448.193c 0.342,1.637, 0.576,3.314, 0.576,5.122l0,3.258 
-					C 314.048,469.465, 303.515,480, 290.622,480l-52.776,0 c-12.867,0-23.453-10.535-23.453-23.427l0-3.258 c0-1.808, 0.262-3.485, 0.629-5.122
-					L 313.472,448.193 zM 412.972,415.662L 99.222,415.662 c-21.512-0.315-36.948-13.18-37.053-33.096l0-14.046 l 387.856,0 L 450.025,382.566 
-					C 449.894,402.482, 434.433,415.347, 412.972,415.662zM 117.265,12.796C 120.147-11.811, 142.762-32, 167.591-32l 177.011,0 
-					c 24.844,0, 47.459,20.189, 50.315,44.796l 36.895,307.077L 80.421,319.873 L 117.265,12.796z M 286.363,63.045l 21.814,188.044
-					c 1.312,11.241, 11.491,19.286, 22.721,18.002c 11.241-1.311, 19.299-11.478, 18.003-22.719l-21.816-188.045
-					c-1.219-10.443-10.075-18.134-20.334-18.134c-0.787,0-1.586,0.040-2.386,0.131C 293.123,41.635, 285.066,51.803, 286.363,63.045z
-					 M 180.693,269.091c 11.228,1.271, 21.409-6.761, 22.719-18.002l 21.814-188.044c 1.299-11.242-6.76-21.41-18.001-22.721
-					c-0.799-0.091-1.599-0.131-2.384-0.131c-10.26,0-19.117,7.69-20.334,18.134L 162.69,246.372
-					C 161.393,257.614, 169.451,267.781, 180.693,269.091z" data-tags="trash" />
-<glyph unicode="&#xe001;" d="M 256.542,192.229L 1.083,362.836L 1.083,64.5L 512,64.5L 512,362.805 					zM 256.542,277.081L 1.083,447.687L 512,447.687 					z" data-tags="envelope" />
-<glyph unicode="&#xe005;" d="M 508.064,23.328l-153.92,153.92c 21.12,31.040, 33.504,68.576, 33.504,108.928C 387.648,393.216, 300.864,480, 193.824,480C 86.784,480,0,393.216,0,286.176
-						c0-107.072, 86.784-193.856, 193.824-193.856c 40.384,0, 77.92,12.384, 108.928,33.504l 153.92-153.92c 5.248-5.248, 13.792-5.248, 19.040,0l 32.384,32.384
-						C 513.312,9.568, 513.312,18.080, 508.064,23.328z M 193.824,165.024c-66.88,0-121.12,54.24-121.12,121.152c0,66.88, 54.24,121.12, 121.12,121.12
-						c 66.912,0, 121.152-54.24, 121.152-121.12C 314.976,219.296, 260.704,165.024, 193.824,165.024z" data-tags="magnifying-glass" />
-<glyph unicode="&#xe02b;" d="M 119.995,223.983L 351.988,386.982L 351.996,61.018 					z" data-tags="arrow-right-filled" />
-<glyph unicode="&#xe02c;" d="M 255.982,87.996L 418.982,319.99L 93.018,319.998 					z" data-tags="arrow-bottom-filled" />
-<glyph unicode="&#xe02a;" d="M 392.004,223.983L 160.010,386.982L 160.002,61.018 					z" data-tags="arrow-left-filled" />
-<glyph unicode="&#xe029;" d="M 255.982,360.004L 418.982,128.010L 93.018,128.002 					z" data-tags="arrow-up-filled" />
-<glyph unicode="&#xe00b;" d="M 172.063,193.823L 217.844,193.823L 217.844,148.066L 172.063,148.066zM 236.52,132.598L 282.242,132.598L 282.242,86.848L 236.52,86.848zM 172.063,132.598L 217.844,132.598L 217.844,86.848L 172.063,86.848zM 172.063,255.050L 217.844,255.050L 217.844,209.319L 172.063,209.319zM 368.475,344.174c 10.469,0, 18.949,8.495, 18.949,18.977L 387.424,428.535 
-														c-0.001,10.481-8.481,18.964-18.949,18.964c-10.494,0-18.979-8.483-18.979-18.964l0-65.385 
-														C 349.5,352.669, 357.981,344.174, 368.475,344.174zM 144.372,344.174c 10.467,0, 18.946,8.495, 18.946,18.977L 163.318,428.535 
-														c0,10.481-8.479,18.964-18.946,18.964c-10.495,0-18.979-8.483-18.979-18.964l0-65.385 
-														C 125.395,352.669, 133.877,344.174, 144.372,344.174zM 107.603,193.823L 153.36,193.823L 153.36,148.066L 107.603,148.066zM 107.603,132.598L 153.36,132.598L 153.36,86.848L 107.603,86.848zM 236.52,193.823L 282.242,193.823L 282.242,148.066L 236.52,148.066zM 365.4,193.823L 411.155,193.823L 411.155,148.066L 365.4,148.066zM 365.4,255.050L 411.155,255.050L 411.155,209.319L 365.4,209.319zM 393.676,415.993l0-21.091 c 7.886-6.972, 12.886-17.154, 12.886-28.519
-														c0-21.040-17.044-38.116-38.088-38.116c-21.069,0-38.114,17.076-38.114,38.116c0,11.365, 5.001,21.547, 12.885,28.519
-														L 343.245,415.993 L 169.575,415.993 l0-21.091 c 7.885-6.972, 12.885-17.154, 12.885-28.519c0-21.040-17.044-38.116-38.087-38.116
-														c-21.070,0-38.114,17.076-38.114,38.116c0,11.365, 5,21.547, 12.884,28.519L 119.143,415.993 L 32.91,415.993 l0-416.021 l 447.103,0 L 480.013,415.993 L 393.676,415.993 z
-														 M 75.331,42.393L 75.331,307.647 l 363.134,0 l 0.001-265.254L 75.331,42.393 zM 236.52,255.050L 282.242,255.050L 282.242,209.319L 236.52,209.319zM 300.972,255.050L 346.727,255.050L 346.727,209.319L 300.972,209.319zM 300.972,132.598L 346.727,132.598L 346.727,86.848L 300.972,86.848zM 300.972,193.823L 346.727,193.823L 346.727,148.066L 300.972,148.066z" data-tags="calendar" />
-<glyph unicode="&#xe009;" d="M 512,281.475l-176.89,25.704L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179
-	l-30.217,176.176L 512,281.475z M 256,103.251l-111.731-58.74l 21.338,124.415l-90.393,88.111l 124.92,18.152L 256,388.387l 55.868-113.198
-	l 124.918-18.152l-90.394-88.111l 21.339-124.415L 256,103.251z" data-tags="star, rate, favorite, bookmark" />
-<glyph unicode="&#x20;" horiz-adv-x="256" />
-</font></defs></svg>
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/fonts/icons/icons.eot b/app/design/frontend/Magento/plushe/fonts/icons/icons.eot
deleted file mode 100644
index b84de058ea76322b80cd42136a032e484cecaa94..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/icons/icons.eot and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/icons/icons.svg b/app/design/frontend/Magento/plushe/fonts/icons/icons.svg
deleted file mode 100644
index 560b55877c2c6470837afec98aabbc17e19f6cb5..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/fonts/icons/icons.svg
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>
-This is a custom SVG font generated by IcoMoon.
-<iconset grid="16"></iconset>
-</metadata>
-<defs>
-<font id="icons" horiz-adv-x="512" >
-<font-face units-per-em="512" ascent="480" descent="-32" />
-<missing-glyph horiz-adv-x="512" />
-<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
-<glyph unicode="&#xe006;" d="M 323.52,366.72L 169.984,366.72L 93.216,268.192L 400.288,268.192 						zM 246.752,480L 182.88,383.872L 310.656,383.872 						zM 393.728,251.808L 99.808,251.808 c-13.088,0-23.712-10.624-23.712-23.776l0-236.256 C 76.096-21.344, 86.72-32, 99.808-32l 293.92,0 
-							c 13.056,0, 23.68,10.656, 23.68,23.776L 417.408,228.032 C 417.408,241.184, 406.784,251.808, 393.728,251.808z"  />
-<glyph unicode="&#xe007;" d="M0,243.648L 512,243.648L 512,204.32L0,204.32zM0,381.536L 512,381.536L 512,342.144L0,342.144zM0,105.824L 512,105.824L 512,66.496L0,66.496z"  />
-<glyph unicode="&#xe008;" d="M 425.12,310.88C 425.12,404.256, 349.344,480, 256,480C 162.56,480, 86.88,404.256, 86.88,310.88c0-73.632, 47.040-136.256, 112.672-159.488l 15.232-49.504
-						L 256-32l 41.216,133.888l 15.232,49.504C 378.112,174.624, 425.12,237.248, 425.12,310.88z M 349.6,256.832L 256,202.816L 162.368,256.832L 162.368,364.896 L 256,418.944
-						l 93.6-54.016L 349.6,256.832 z"  />
-<glyph unicode="&#xe00a;" d="M 149.824-32L 262.304-32L 332.672,319.616L 220.128,319.616 				zM 357.248,450.432c-3.264,6.56-7.712,12-13.344,16.192c-5.664,4.256-11.936,7.488-19.008,9.856C 317.888,478.816, 310.592,480, 303.136,480
-					C 293.728,480, 284.928,478.24, 276.736,474.72s-15.36-8.096-21.44-13.728C 249.184,455.36, 244.384,448.704, 240.864,440.928
-					c-3.52-7.68-5.248-15.808-5.248-24.256c0-8.864, 1.632-16.64, 4.896-23.2c 3.264-6.56, 7.712-11.936, 13.344-16.192
-					c 5.632-4.192, 11.968-7.36, 19.008-9.504c 7.040-2.080, 14.304-3.168, 21.792-3.168c 19.264,0, 35.328,5.984, 48.192,17.984
-					c 12.928,11.936, 19.328,27.072, 19.328,45.344C 362.176,436.416, 360.544,443.904, 357.248,450.432z"  />
-<glyph unicode="&#xe00c;" d="M 368.032,304L 512,447.968L 96,447.968L 96,480L 32,480L 32,447.968L0,447.968L0,160L 32,160L 32-32L 96-32L 96,160L 512,160 
-											z"  />
-<glyph unicode="&#xe00d;" d="M 512,275.2L 307.2,275.2L 307.2,480L 204.8,480L 204.8,275.2L0,275.2L0,172.8L 204.8,172.8L 204.8-32L 307.2-32L 307.2,172.8L 512,172.8 			z"  />
-<glyph unicode="&#xe00e;" d="M 200.064,26.528c0,17.024, 5.376,31.040, 16.128,42.048c 10.752,10.976, 24.16,16.544, 40.192,16.544s 29.312-5.568, 39.744-16.544
-					c 10.56-11.040, 15.808-25.024, 15.808-42.048s-5.248-31.072-15.808-42.016C 285.696-26.528, 272.416-32, 256.384-32s-29.44,5.472-40.192,16.512
-					C 205.44-4.544, 200.064,9.504, 200.064,26.528z M 215.104,394.4L 212.8,480l 87.136,0 L 296.928,394.4l-12.064-256L 227.104,138.4 L 215.104,394.4z"  />
-<glyph unicode="&#xe010;" d="M 256,46.624L0,401.376l 512,0 L 256,46.624z"  />
-<glyph unicode="&#xe011;" d="M 512,275.2L 512,172.8 L0,172.8 L0,275.2 L 512,275.2 z"  />
-<glyph unicode="&#xe012;" d="M 512-3.296L 284.576,224.48L 511.168,451.328L 482.56,480L 255.936,253.12L 29.504,479.84L 0.864,451.168L 227.328,224.448L0-3.136L 28.64-31.84L 255.936,195.744L 483.392-32 			z"  />
-<glyph unicode="&#xe013;" d="M 44.384,252.768L 182.72,89.568L 459.552,480L 505.696,427.488L 183.904-32L 6.304,197.152 		z"  />
-<glyph unicode="&#xe014;" d="M 480,320L 96,384C 90.784,384, 86.048,382.464, 81.728,380.256L 79.36,388.384C 78.624,391.008, 77.248,393.376, 75.328,395.328l-32,32
-					c-6.24,6.24-16.384,6.24-22.624,0s-6.24-16.384,0-22.624l 29.056-29.056L 110.912,161.6l-29.216-58.432
-					c-2.496-4.96-2.208-10.848, 0.672-15.552C 85.312,82.88, 90.432,80, 96,80l 48,0 l0-20.896 C 134.624,53.536, 128,43.712, 128,32
-					c0-17.696, 14.304-32, 32-32s 32,14.304, 32,32c0,11.712-6.624,21.536-16,27.104L 176,80 l 192,0 l0-20.896 C 358.592,53.536, 352,43.712, 352,32
-					c0-17.696, 14.304-32, 32-32s 32,14.304, 32,32c0,11.712-6.592,21.536-16,27.104L 400,80 L 448,80 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 121.888,112 
-					l 20.448,40.832c 1.792,3.584, 2.176,7.68, 1.056,11.552l-0.32,1.12C 148.064,162.336, 153.632,160, 160,160l 288,0 c 17.696,0, 32,14.304, 32,32l 32,96
-					C 512,305.696, 497.696,320, 480,320z"  />
-<glyph unicode="&#xe015;" d="M 512,132.864L 267.552,315.072L 267.616,315.136L 255.968,323.776L0,132.96L 11.616,124.288L 255.936,306.432L 500.352,124.224 			z"  />
-<glyph unicode="&#xe016;" d="M 164.864-32L 347.072,212.448L 347.136,212.384L 355.776,224.032L 164.96,480L 156.288,468.384L 338.432,224.064L 156.224-20.352 			z"  />
-<glyph unicode="&#xe017;" d="M 347.136,480L 164.928,235.552L 164.864,235.616L 156.224,223.968L 347.040-32L 355.712-20.384L 173.568,223.936L 355.776,468.352 			z"  />
-<glyph unicode="&#xe018;" d="M0,315.136L 244.448,132.928L 244.384,132.864L 256.032,124.224L 512,315.040L 500.384,323.712L 256.064,141.568L 11.648,323.776 			z"  />
-<glyph unicode="&#xe019;" d="M 256,382.944L 255.968,382.976L0,127.008L 62.048,64.96L 256.032,258.912L 449.984,65.024L 512,127.072L 256.064,383.040 			z"  />
-<glyph unicode="&#xe01a;" d="M 414.944,224L 414.976,224.032L 159.008,480L 96.96,417.952L 290.912,223.968L 97.024,30.016L 159.072-32L 415.040,223.936 			z"  />
-<glyph unicode="&#xe01b;" d="M 97.056,224L 97.024,223.968L 352.992-32L 415.040,30.048L 221.088,224.032L 414.976,417.984L 352.928,480L 96.96,224.064 			z"  />
-<glyph unicode="&#xe01c;" d="M 256,65.056L 256.032,65.024L 512,320.992L 449.952,383.040L 255.968,189.088L 62.016,382.976L0,320.928L 255.936,64.96 			z"  />
-<glyph unicode="&#xe01d;" d="M 48,384L 240,384L 240,206.784L 48,206.784zM 48,177.216L 240,177.216L 240,0L 48,0zM 272,384L 464,384L 464,206.784L 272,206.784zM 272,177.216L 464,177.216L 464,0L 272,0zM 283.84,353.184l 156.992,42.784l-8.448,30.88L 381.44,412.928c 8.384,7.2, 15.040,14.88, 18.944,22.944
-						c 5.12,10.56, 5.728,21.536, 1.728,31.744l-3.52,5.76L 394.592,476.16l-6.208,2.592c-57.024,10.56-109.024-48.96-132.416-80.992
-						c-23.36,32-75.36,91.52-132.416,80.992L 111.616,472.16L 109.888,467.616C 105.888,457.376, 106.464,446.4, 111.552,435.872
-						c 3.936-8.064, 10.56-15.712, 18.88-22.88l-50.88,13.856L 71.168,395.968l 156.96-42.784L 222.24,343.2l 20.16,6.112l 8.544-2.304l 8.032-0.576
-						l 10.592,2.88l 20.192-6.112L 283.84,353.184z M 370.528,447.936C 361.856,433.696, 332.64,417.28, 301.76,404
-						C 321.12,425.472, 346.080,446.016, 370.528,447.936z M 210.24,404C 179.36,417.248, 150.112,433.632, 141.44,447.936C 165.888,446.016, 190.88,425.44, 210.24,404
-						z"  />
-<glyph unicode="&#xe01e;" d="M 61.135-4.221l 14.485,68.604l-9.772,0 c-36.307,0-65.846,29.536-65.846,65.841L 0.002,382.309 
-			c0,36.306, 29.539,65.843, 65.846,65.843l 380.303,0 c 36.309,0, 65.845-29.538, 65.845-65.843l0-252.084 
-			c0-36.305-29.536-65.841-65.845-65.841L 169.429,64.384 L 61.135-4.221z"  />
-<glyph unicode="&#xe01f;" d="M 342.569,64.384L 65.847,64.384 c-36.309,0-65.845,29.536-65.845,65.841L 0.002,382.309 
-			c0,36.306, 29.536,65.843, 65.845,65.843L 446.15,448.152 c 36.307,0, 65.846-29.538, 65.846-65.843l0-252.084 
-			c0-36.305-29.539-65.841-65.846-65.841l-9.773,0 l 14.486-68.604L 342.569,64.384z"  />
-<glyph unicode="&#xe002;" d="M0,480l 128.002,0 l0-128.002 L0,351.998 L0,480 zM 192.219,415.999l 319.777,0 l0-63.331 L 192.219,352.668 L 192.219,415.999 zM0,288.001l 128.002,0 l0-128.003 L0,159.998 L0,288.001 zM 192.219,224l 319.777,0 l0-63.33 L 192.219,160.67 L 192.219,224 zM 0.002,96.003l 128.002,0 L 128.004-32 L 0.002-32 L 0.002,96.003 zM 192.221,32.002l 319.775,0 l0-63.33 L 192.221-31.328 L 192.221,32.002 z"  />
-<glyph unicode="&#xe003;" d="M 0.002,480l 192,0 l0-192.002 l-192,0 L 0.002,480 zM0,160.002l 192,0 L 192-32 L0-32 L0,160.002 zM 319.996,160.002l 192,0 L 511.996-32 l-192,0 L 319.996,160.002 zM 320,480l 192,0 l0-192.002 L 320,287.998 L 320,480 z"  />
-<glyph unicode="&#xe004;" d="M 30.832,438.23l 10.065,10.052l 439.399-439.4l-10.066-10.051
-			L 30.832,438.23zM 40.898-1.169l-10.066,10.051l 439.398,439.4l 10.066-10.052
-			L 40.898-1.169z"  />
-<glyph unicode="&#xe000;" d="M 313.472,448.193c 0.342,1.637, 0.576,3.314, 0.576,5.122l0,3.258 
-					C 314.048,469.465, 303.515,480, 290.622,480l-52.776,0 c-12.867,0-23.453-10.535-23.453-23.427l0-3.258 c0-1.808, 0.262-3.485, 0.629-5.122
-					L 313.472,448.193 zM 412.972,415.662L 99.222,415.662 c-21.512-0.315-36.948-13.18-37.053-33.096l0-14.046 l 387.856,0 L 450.025,382.566 
-					C 449.894,402.482, 434.433,415.347, 412.972,415.662zM 117.265,12.796C 120.147-11.811, 142.762-32, 167.591-32l 177.011,0 
-					c 24.844,0, 47.459,20.189, 50.315,44.796l 36.895,307.077L 80.421,319.873 L 117.265,12.796z M 286.363,63.045l 21.814,188.044
-					c 1.312,11.241, 11.491,19.286, 22.721,18.002c 11.241-1.311, 19.299-11.478, 18.003-22.719l-21.816-188.045
-					c-1.219-10.443-10.075-18.134-20.334-18.134c-0.787,0-1.586,0.040-2.386,0.131C 293.123,41.635, 285.066,51.803, 286.363,63.045z
-					 M 180.693,269.091c 11.228,1.271, 21.409-6.761, 22.719-18.002l 21.814-188.044c 1.299-11.242-6.76-21.41-18.001-22.721
-					c-0.799-0.091-1.599-0.131-2.384-0.131c-10.26,0-19.117,7.69-20.334,18.134L 162.69,246.372
-					C 161.393,257.614, 169.451,267.781, 180.693,269.091z"  />
-<glyph unicode="&#xe001;" d="M 256.542,192.229L 1.083,362.836L 1.083,64.5L 512,64.5L 512,362.805 					zM 256.542,277.081L 1.083,447.687L 512,447.687 					z"  />
-<glyph unicode="&#xe005;" d="M 508.064,23.328l-153.92,153.92c 21.12,31.040, 33.504,68.576, 33.504,108.928C 387.648,393.216, 300.864,480, 193.824,480C 86.784,480,0,393.216,0,286.176
-						c0-107.072, 86.784-193.856, 193.824-193.856c 40.384,0, 77.92,12.384, 108.928,33.504l 153.92-153.92c 5.248-5.248, 13.792-5.248, 19.040,0l 32.384,32.384
-						C 513.312,9.568, 513.312,18.080, 508.064,23.328z M 193.824,165.024c-66.88,0-121.12,54.24-121.12,121.152c0,66.88, 54.24,121.12, 121.12,121.12
-						c 66.912,0, 121.152-54.24, 121.152-121.12C 314.976,219.296, 260.704,165.024, 193.824,165.024z"  />
-<glyph unicode="&#xe02b;" d="M 119.995,223.983L 351.988,386.982L 351.996,61.018 					z"  />
-<glyph unicode="&#xe02c;" d="M 255.982,87.996L 418.982,319.99L 93.018,319.998 					z"  />
-<glyph unicode="&#xe02a;" d="M 392.004,223.983L 160.010,386.982L 160.002,61.018 					z"  />
-<glyph unicode="&#xe029;" d="M 255.982,360.004L 418.982,128.010L 93.018,128.002 					z"  />
-<glyph unicode="&#xe00b;" d="M 172.063,193.823L 217.844,193.823L 217.844,148.066L 172.063,148.066zM 236.52,132.598L 282.242,132.598L 282.242,86.848L 236.52,86.848zM 172.063,132.598L 217.844,132.598L 217.844,86.848L 172.063,86.848zM 172.063,255.050L 217.844,255.050L 217.844,209.319L 172.063,209.319zM 368.475,344.174c 10.469,0, 18.949,8.495, 18.949,18.977L 387.424,428.535 
-														c-0.001,10.481-8.481,18.964-18.949,18.964c-10.494,0-18.979-8.483-18.979-18.964l0-65.385 
-														C 349.5,352.669, 357.981,344.174, 368.475,344.174zM 144.372,344.174c 10.467,0, 18.946,8.495, 18.946,18.977L 163.318,428.535 
-														c0,10.481-8.479,18.964-18.946,18.964c-10.495,0-18.979-8.483-18.979-18.964l0-65.385 
-														C 125.395,352.669, 133.877,344.174, 144.372,344.174zM 107.603,193.823L 153.36,193.823L 153.36,148.066L 107.603,148.066zM 107.603,132.598L 153.36,132.598L 153.36,86.848L 107.603,86.848zM 236.52,193.823L 282.242,193.823L 282.242,148.066L 236.52,148.066zM 365.4,193.823L 411.155,193.823L 411.155,148.066L 365.4,148.066zM 365.4,255.050L 411.155,255.050L 411.155,209.319L 365.4,209.319zM 393.676,415.993l0-21.091 c 7.886-6.972, 12.886-17.154, 12.886-28.519
-														c0-21.040-17.044-38.116-38.088-38.116c-21.069,0-38.114,17.076-38.114,38.116c0,11.365, 5.001,21.547, 12.885,28.519
-														L 343.245,415.993 L 169.575,415.993 l0-21.091 c 7.885-6.972, 12.885-17.154, 12.885-28.519c0-21.040-17.044-38.116-38.087-38.116
-														c-21.070,0-38.114,17.076-38.114,38.116c0,11.365, 5,21.547, 12.884,28.519L 119.143,415.993 L 32.91,415.993 l0-416.021 l 447.103,0 L 480.013,415.993 L 393.676,415.993 z
-														 M 75.331,42.393L 75.331,307.647 l 363.134,0 l 0.001-265.254L 75.331,42.393 zM 236.52,255.050L 282.242,255.050L 282.242,209.319L 236.52,209.319zM 300.972,255.050L 346.727,255.050L 346.727,209.319L 300.972,209.319zM 300.972,132.598L 346.727,132.598L 346.727,86.848L 300.972,86.848zM 300.972,193.823L 346.727,193.823L 346.727,148.066L 300.972,148.066z"  />
-<glyph unicode="&#xe009;" d="M 512,281.475l-176.89,25.704L 256,467.47l-79.108-160.291L0,281.475l 128-124.769L 97.784-19.47L 256,63.709l 158.216-83.179
-	l-30.217,176.176L 512,281.475z M 256,103.251l-111.731-58.74l 21.338,124.415l-90.393,88.111l 124.92,18.152L 256,388.387l 55.868-113.198
-	l 124.918-18.152l-90.394-88.111l 21.339-124.415L 256,103.251z"  />
-<glyph unicode="&#x20;" horiz-adv-x="256" />
-</font></defs></svg>
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/fonts/icons/icons.ttf b/app/design/frontend/Magento/plushe/fonts/icons/icons.ttf
deleted file mode 100644
index 04a1a990a5d25257d63f15ec14c1ff9dfe6c3f3c..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/icons/icons.ttf and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/icons/icons.woff b/app/design/frontend/Magento/plushe/fonts/icons/icons.woff
deleted file mode 100644
index 02d652643c34809751145ece996f0b780809ef9e..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/icons/icons.woff and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/marvel/OFL.txt b/app/design/frontend/Magento/plushe/fonts/marvel/OFL.txt
deleted file mode 100644
index 077aee25e6b01da46726c618adeb9a15bfc82f8f..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/fonts/marvel/OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright (c) 2011, Carolina Trebol <ca@fromzero.org>,
-with Reserved Font Name "Marvel".
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded, 
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.eot b/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.eot
deleted file mode 100644
index 59d0da2feff215219a5cec8bc37c7b2cb3ab8321..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.eot and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.svg b/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.svg
deleted file mode 100644
index 864d374918c1a2292f9d63465530a45c5c3445ac..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.svg
+++ /dev/null
@@ -1,213 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="marvelregular" horiz-adv-x="856" >
-<font-face units-per-em="2048" ascent="1638" descent="-410" />
-<missing-glyph horiz-adv-x="430" />
-<glyph horiz-adv-x="2048" />
-<glyph horiz-adv-x="2048" />
-<glyph unicode="&#xd;" horiz-adv-x="1024" />
-<glyph unicode=" "  horiz-adv-x="430" />
-<glyph unicode="&#x09;" horiz-adv-x="430" />
-<glyph unicode="&#xa0;" horiz-adv-x="430" />
-<glyph unicode="!" horiz-adv-x="391" d="M141 2v184h109v-184h-109zM143 289v1145h107v-1145h-107z" />
-<glyph unicode="&#x22;" horiz-adv-x="638" d="M76 1163q35 16 61.5 54t26.5 112v105h119v-107q0 -115 -47.5 -184.5t-124.5 -102.5zM344 1163q35 16 61.5 54t26.5 112v105h119v-107q0 -115 -47 -184.5t-125 -102.5z" />
-<glyph unicode="$" horiz-adv-x="964" d="M96 133l41 113q104 -47 167 -73t98.5 -38t54 -15t39.5 -3q57 0 106 21.5t86 58t57.5 88t20.5 112.5q0 63 -24.5 110.5t-63.5 79t-88 47t-98 15.5q-82 0 -154 28t-126 78t-85 118.5t-31 150.5q0 76 24.5 143.5t67.5 120.5t102.5 89t127.5 48v140h112v-142q23 -4 45.5 -11 t38.5 -13l174 -72l-38 -115q-23 10 -58 26.5t-73.5 33t-76.5 28t-69 11.5q-55 0 -102 -22.5t-81 -61.5t-53.5 -90.5t-19.5 -106.5q0 -63 23.5 -111.5t61.5 -80t87 -47t103 -15.5q82 0 153.5 -27.5t124.5 -76.5t84 -119t31 -152q0 -80 -27 -150.5t-75 -123.5t-112.5 -87 t-140.5 -40v-150h-112v156q-49 16 -99.5 34.5t-93.5 36t-76.5 33t-52.5 23.5z" />
-<glyph unicode="&#x26;" horiz-adv-x="1226" d="M63 391q0 111 52.5 188.5t146.5 133.5l115 67l-107 119q-53 59 -76.5 114.5t-23.5 125.5q0 68 25.5 127t70.5 102t108.5 68.5t137.5 25.5q72 0 135.5 -22.5t110.5 -64.5t74.5 -102.5t27.5 -133.5q0 -104 -47 -173t-131 -118l-152 -90l385 -416q45 80 60.5 177t15.5 216 h99q0 -57 -5.5 -120.5t-16.5 -126t-31.5 -121t-51.5 -103.5l225 -264h-131l-149 182q-78 -92 -188.5 -146t-247.5 -54q-90 0 -168 28.5t-136.5 81.5t-92.5 129t-34 170zM176 393q0 -68 25.5 -124t68.5 -95t100.5 -60.5t123.5 -21.5q123 0 209 46t149 126l-408 436l-112 -65 q-72 -43 -114 -101.5t-42 -140.5zM279 1139q0 -27 8 -51.5t28.5 -58.5t57.5 -80t94 -115l162 100q59 37 93 88t34 117q0 104 -70 164.5t-174 60.5q-47 0 -90 -16.5t-75 -45t-50 -70.5t-18 -93zM930 182l149 -182z" />
-<glyph unicode="'" horiz-adv-x="370" d="M76 1163q35 16 61.5 54t26.5 112v105h119v-107q0 -115 -47.5 -184.5t-124.5 -102.5z" />
-<glyph unicode="(" horiz-adv-x="473" d="M125 168v1100q0 72 18.5 123t51 82.5t76.5 47t96 15.5h36v-111h-26q-59 0 -101.5 -31.5t-42.5 -115.5v-1120q0 -84 42 -116t102 -32h26v-110h-36q-51 0 -95.5 15t-77 47t-51 83t-18.5 123z" />
-<glyph unicode=")" horiz-adv-x="473" d="M68 8h26q57 0 100.5 32t43.5 116l2 1122q0 84 -43 115.5t-101 31.5h-26v111h36q51 0 95.5 -15.5t77 -47t51 -83t18.5 -122.5l-2 -1102q0 -72 -18.5 -123t-51 -83t-76.5 -47t-96 -15h-36v110z" />
-<glyph unicode="*" horiz-adv-x="815" d="M104 537l226 122l-226 123l46 76l219 -131l-7 258h91l-9 -258l224 131l43 -76l-226 -123l226 -122l-43 -78l-224 133l9 -258h-91l7 258l-219 -133z" />
-<glyph unicode="+" horiz-adv-x="878" d="M92 481v133h281v281h133v-281h280v-133h-280v-280h-133v280h-281z" />
-<glyph unicode="," horiz-adv-x="350" d="M31 -66q35 16 61.5 54.5t26.5 111.5v105h119v-107q0 -115 -47.5 -184.5t-124.5 -101.5z" />
-<glyph unicode="-" horiz-adv-x="741" d="M125 662v131h491v-131h-491z" />
-<glyph unicode="." horiz-adv-x="370" d="M115 10v180h141v-180h-141z" />
-<glyph unicode="/" horiz-adv-x="528" d="M100 2l207 1430h123l-207 -1430h-123z" />
-<glyph unicode="0" horiz-adv-x="892" d="M141 262v799q0 59 21.5 110.5t58.5 89t86 59t107 21.5h67q55 0 104.5 -21.5t86.5 -59t58.5 -89t21.5 -110.5v-799q0 -59 -21.5 -110.5t-58.5 -89t-86 -59t-107 -21.5h-67q-57 0 -106.5 21.5t-86.5 59t-57.5 89t-20.5 110.5zM246 268q0 -74 48 -126t120 -52h65 q70 0 119 52.5t49 125.5v793q0 82 -57.5 126t-132.5 44q-43 0 -81 -8.5t-66.5 -28.5t-46 -52t-17.5 -81v-793z" />
-<glyph unicode="1" horiz-adv-x="430" d="M160 2v1274l108 55v-1329h-108z" />
-<glyph unicode="2" horiz-adv-x="813" d="M70 1249l155 64q31 12 73 20t73 10q72 0 133 -30.5t105 -82.5t70 -121t26 -148q0 -72 -13.5 -131.5t-62.5 -124.5q-55 -96 -122 -201t-124 -191q-68 -102 -135 -198h452v-115h-569v133l401 617q35 47 47.5 96t14.5 108q-2 55 -19.5 105.5t-46 88.5t-69.5 60.5t-92 22.5 q-10 0 -23.5 -3t-40.5 -12.5t-72 -27t-114 -45.5z" />
-<glyph unicode="3" horiz-adv-x="845" d="M94 1249l146 60q31 14 80 24t77 10q74 -2 133.5 -30.5t101.5 -77.5t64.5 -116.5t22.5 -147.5q0 -84 -28.5 -148.5t-106.5 -134.5q47 -35 73.5 -75t40 -82t16.5 -86t3 -85q0 -80 -25.5 -148.5t-69.5 -119.5t-105.5 -81.5t-133.5 -30.5q-31 2 -72 10t-73 20l-142 56l29 110 l168 -72q20 -8 42.5 -14t43.5 -6q51 0 93 23.5t72.5 63.5t49 91t20.5 107q0 55 -13 104t-39.5 87t-69.5 60.5t-103 22.5h-117v100h119q121 0 171 69t52 177q-2 55 -23.5 100.5t-53 77t-70.5 49t-76 17.5q-20 0 -51 -5t-51 -16l-150 -67z" />
-<glyph unicode="4" horiz-adv-x="804" d="M66 399v121l309 811h112l-303 -821h400v233h108v-743h-108v399h-518z" />
-<glyph unicode="5" horiz-adv-x="872" d="M125 63l37 117q51 -23 102 -39q43 -14 92.5 -25.5t89.5 -11.5q57 0 97.5 24t67 64.5t39 94t12.5 112.5v60q0 59 -12.5 112.5t-39 93.5t-67.5 63.5t-99 23.5h-315v579h533v-106h-412v-363h196q82 0 143.5 -30.5t102.5 -85t62.5 -128t21.5 -159.5v-60q0 -86 -20.5 -160.5 t-61.5 -132t-102.5 -90t-140.5 -32.5q-41 0 -97.5 12t-107.5 26.5t-86 27.5z" />
-<glyph unicode="6" horiz-adv-x="858" d="M141 266v766q0 68 24.5 125t67.5 99t101.5 64.5t124.5 22.5q10 0 40.5 -6t65.5 -14q39 -8 86 -20l-28 -97q-39 10 -74 19q-29 6 -55.5 12t-34.5 6q-88 0 -152.5 -57.5t-64.5 -153.5v-244q25 20 59.5 31.5t69.5 18t63.5 7.5t44.5 1q57 0 106.5 -22.5t86.5 -62.5 t58.5 -92.5t21.5 -111.5v-291q0 -59 -21.5 -110.5t-58.5 -89t-86.5 -59t-106.5 -21.5h-67q-55 0 -104.5 21.5t-86.5 59t-58.5 89t-21.5 110.5zM246 258q0 -88 60.5 -130t142.5 -42q39 0 74.5 9t63 30.5t44 53.5t16.5 79v305q0 74 -49 126t-119 52h-65q-70 0 -119 -52 t-49 -126v-305z" />
-<glyph unicode="7" horiz-adv-x="737" d="M70 1227v104h598v-133l-379 -1198h-117l383 1227h-485z" />
-<glyph unicode="8" horiz-adv-x="886" d="M137 256v174q0 78 38 139.5t99 92.5q-61 35 -99 99t-38 142v176q0 74 26.5 124t71 81t102.5 44t122 13q57 0 110.5 -18t93 -52t63.5 -82t24 -110v-176q0 -80 -39 -144.5t-103 -99.5q63 -33 102.5 -91t39.5 -138v-174q0 -55 -19.5 -105.5t-54.5 -88t-82 -59t-100 -21.5 h-99q-53 0 -100 21.5t-82 59t-55.5 88t-20.5 105.5zM242 262q0 -76 49 -129t121 -53h65q72 0 121 53t49 129v156q0 43 -17.5 75.5t-46 54t-65.5 32t-78 10.5q-80 0 -139 -41t-59 -131v-156zM242 909q0 -76 49 -129t121 -53h65q72 0 121 53.5t49 128.5v160q0 82 -57.5 127 t-134.5 45q-43 0 -81 -9t-68 -28.5t-47 -52.5t-17 -82v-160z" />
-<glyph unicode="9" horiz-adv-x="872" d="M121 797v266q0 59 21.5 110.5t58.5 89t86 59t106 21.5h68q55 0 104 -21.5t86 -59t58.5 -89t21.5 -110.5v-774q0 -68 -25.5 -125.5t-68.5 -99t-100.5 -64.5t-122.5 -23q-10 0 -56.5 10.5t-99.5 22.5q-61 14 -135 33l29 96q68 -18 122 -30q47 -12 89.5 -21.5t50.5 -9.5 q88 0 152.5 57.5t64.5 153.5v276q-20 -18 -53 -29.5t-68 -17.5t-66.5 -8t-50.5 -2q-57 0 -106 22.5t-86 62.5t-58.5 92t-21.5 112zM225 791q0 -74 48 -126.5t120 -52.5h66q70 0 119 52.5t49 126.5v280q0 82 -57.5 126t-133.5 44q-43 0 -81 -8t-66.5 -28.5t-46 -52.5 t-17.5 -81v-280z" />
-<glyph unicode=":" horiz-adv-x="393" d="M125 2v180h141v-180h-141zM127 657v185h141v-185h-141z" />
-<glyph unicode=";" horiz-adv-x="442" d="M63 -74q35 16 66 56.5t31 113.5v105h141v-107q0 -115 -47 -184.5t-125 -102.5zM160 657v185h141v-185h-141z" />
-<glyph unicode="&#x3c;" horiz-adv-x="1005" d="M109 532v175l749 174v-113l-340 -74q-31 -8 -77 -17t-89 -20q-51 -10 -104 -22v-41l32 -7q31 -7 74 -15.5t89 -18.5t77 -16l338 -76v-111z" />
-<glyph unicode="=" horiz-adv-x="985" d="M141 358v131h703v-131h-703zM141 758v131h703v-131h-703z" />
-<glyph unicode="&#x3e;" horiz-adv-x="1003" d="M147 360v111l338 76q31 6 77 16t89 18.5t75 15.5l32 7v41q-53 12 -105 23q-43 10 -89 19t-77 18l-340 73v113l750 -174v-174z" />
-<glyph unicode="?" horiz-adv-x="870" d="M72 1346l172 71q35 14 84 25.5t82 11.5q74 0 143.5 -25.5t121.5 -71.5t84 -110.5t32 -142.5q0 -66 -19.5 -113t-42.5 -82l-293 -440q-20 -29 -34.5 -60.5t-14.5 -78.5v-43h-119v41q0 72 17.5 119t42.5 81l278 418q23 35 45.5 76t22.5 80q0 53 -26.5 96t-66.5 72.5t-86 46 t-83 16.5q-25 0 -50.5 -6t-50.5 -16l-200 -76zM260 0h141v184h-141v-184z" />
-<glyph unicode="@" horiz-adv-x="1767" d="M92 668q0 188 59.5 344.5t169 269.5t264 175.5t345.5 62.5q158 0 295 -47.5t239.5 -137.5t162 -220t59.5 -294q0 -96 -24 -194.5t-71 -178t-121.5 -131t-175.5 -51.5q-70 0 -121 45t-63 117q-18 -35 -48 -64.5t-64.5 -50t-74.5 -32t-79 -11.5q-78 0 -138.5 30t-100.5 79 t-60.5 114.5t-20.5 137.5q0 84 25.5 163.5t74 143t119 101.5t162.5 38q72 0 134.5 -33.5t90.5 -101.5l27 117h76l-41 -541v-18q0 -66 28.5 -106t84.5 -40q70 0 124 40t88.5 106.5t53 150.5t18.5 170q0 143 -51 256t-140 191t-210 117.5t-258 39.5q-170 0 -306.5 -56 t-231.5 -156.5t-147 -239.5t-52 -305q0 -147 49 -278.5t139 -227.5t216 -152.5t277 -56.5q135 0 264.5 23.5t254.5 76.5v-96q-133 -57 -257 -77.5t-268 -20.5q-174 0 -317 62.5t-244.5 172t-158 257t-56.5 317.5zM623 631q0 -57 14 -107.5t42 -87.5t70 -58.5t99 -21.5 q72 0 122 35t81.5 87t46 116t14.5 123q0 53 -11 102t-38 87t-69 60.5t-103 22.5q-66 0 -116 -32.5t-84 -84t-51 -115t-17 -126.5z" />
-<glyph unicode="A" horiz-adv-x="940" d="M55 2l328 1434h174l328 -1434h-109l-92 399h-428l-90 -399h-111zM289 522h364l-168 778h-26z" />
-<glyph unicode="B" horiz-adv-x="968" d="M160 0v1374q78 31 136 47.5t83 20.5q60 12 113 12q74 0 108.5 -18.5t44.5 -24.5q47 -29 88 -79t65.5 -119.5t24.5 -145.5q0 -92 -22.5 -180t-108.5 -160q55 -37 89 -77t52.5 -81t25.5 -86t7 -94q0 -80 -20.5 -150.5t-46 -103.5t-35.5 -45q-37 -37 -91.5 -63.5 t-140.5 -26.5h-372zM274 119h258q61 0 102.5 21.5t66 58.5t34.5 86t10 104q0 57 -10 108.5t-34.5 89.5t-65.5 60.5t-103 22.5h-258v-551zM274 788h211q61 0 102.5 21.5t66 58.5t34.5 86.5t10 104.5q-2 55 -18 105t-39 81t-45 49q-4 4 -10 6q-2 0 -2 3q-2 0 -4 2 q-10 6 -32 18t-73 12q-20 0 -67.5 -8t-133.5 -45v-494z" />
-<glyph unicode="C" horiz-adv-x="894" d="M137 375v20v641q0 86 30 161t66 114q37 41 59.5 60.5t47.5 33.5q20 10 61 29.5t121 19.5q29 0 70 -10t74 -21l159 -63l-37 -107l-178 70q-20 8 -42.5 14t-43.5 6q-55 0 -104 -25.5t-87 -68.5t-59.5 -98t-21.5 -115l-4 -651q0 -66 22.5 -119t59.5 -90t86 -58.5t102 -23.5 q16 0 33.5 3t45.5 13.5t72 28t115 45.5l45 -116l-165 -60q-35 -12 -76 -20t-70 -8q-78 0 -146.5 27.5t-120.5 78.5t-83 124t-31 165z" />
-<glyph unicode="D" horiz-adv-x="976" d="M150 55v1319q123 51 205.5 65.5t111.5 14.5q80 0 148.5 -34t117.5 -90t78 -132t29 -160v-659q0 -86 -33 -159t-87 -127t-126 -83.5t-150 -29.5q-16 0 -37.5 2t-56.5 9t-84 22.5t-116 41.5zM264 150q45 -20 78 -30.5t55.5 -15t38 -4.5h25.5q51 0 98 25t83 65.5t57.5 94 t21.5 112.5l-4 641q0 92 -42 161t-93 101q-63 35 -115 35q-47 0 -102.5 -20.5t-100.5 -38.5v-1126z" />
-<glyph unicode="E" horiz-adv-x="831" d="M162 2v1432h577v-117h-460v-537h360v-118h-360v-541h464v-119h-581z" />
-<glyph unicode="F" horiz-adv-x="790" d="M160 0v1434h577v-117h-461v-539h361v-116h-361v-662h-116z" />
-<glyph unicode="G" horiz-adv-x="915" d="M137 391v651q8 193 110.5 302.5t268.5 109.5q29 -2 70 -10t73 -21l129 -49l-40 -117l-144 56q-51 20 -88 20q-53 0 -101 -23.5t-84 -63.5t-56.5 -93.5t-20.5 -110.5v-680q0 -57 21.5 -106t58.5 -86t85 -58.5t99 -21.5q20 0 58 8t116 49v388h115v-461 q-117 -61 -191.5 -77.5t-103.5 -16.5q-82 0 -150.5 32.5t-118.5 89t-78 131t-28 158.5z" />
-<glyph unicode="H" horiz-adv-x="1054" d="M162 2v1432h114v-650h500v650h117v-1432h-117v662h-500v-662h-114z" />
-<glyph unicode="I" horiz-adv-x="425" d="M160 0v1434h106v-1434h-106z" />
-<glyph unicode="J" horiz-adv-x="626" d="M31 -2l22 121q8 -2 34 -5t52.5 -5.5t49 -4.5t26.5 -2q27 0 51.5 5.5t43 22.5t29.5 49t11 85v1170h115v-1155q0 -86 -9.5 -143.5t-36 -92.5t-74.5 -49t-124 -14q-8 0 -33.5 1t-56.5 4t-58.5 6t-41.5 7z" />
-<glyph unicode="K" horiz-adv-x="798" d="M160 0v1434h114v-658h56l295 654h127l-314 -717l310 -713h-127l-289 653h-58v-653h-114z" />
-<glyph unicode="L" horiz-adv-x="770" d="M160 0v1434h116v-1319h455v-115h-571z" />
-<glyph unicode="M" horiz-adv-x="1245" d="M160 0v1434h178l266 -891h33l270 891h178v-1434h-110v1192h-27l-239 -770h-179l-237 770h-25v-1192h-108z" />
-<glyph unicode="N" horiz-adv-x="1134" d="M160 0v1434h147l535 -1293h26v1293h107v-1434h-199l-487 1192h-25v-1192h-104z" />
-<glyph unicode="O" horiz-adv-x="1064" d="M139 352v717q0 45 17.5 110.5t62.5 126t121 103.5t192 43q115 0 191 -43t121 -102.5t63.5 -125t18.5 -110.5v-719q0 -45 -17.5 -108.5t-62.5 -122t-122 -99t-194 -40.5q-115 0 -190.5 40.5t-119.5 99t-62.5 122t-18.5 108.5zM250 350q0 -82 31.5 -130t76.5 -73.5 t93.5 -33t80.5 -7.5q33 0 81.5 8.5t92.5 34t75.5 73.5t31.5 130v719q0 82 -31.5 132t-75.5 78t-92.5 37t-81.5 9t-81 -10t-93 -38t-76.5 -78t-31.5 -132v-719z" />
-<glyph unicode="P" horiz-adv-x="1009" d="M160 0v1374q53 20 112 39q51 16 113.5 28.5t128.5 12.5q84 0 162 -29.5t137 -85t94 -134.5t35 -175q0 -98 -32.5 -180t-90 -140.5t-136.5 -91t-171 -32.5h-244v-586h-108zM270 705h228q147 0 237 81.5t90 243.5q0 160 -91 232.5t-236 72.5q-37 0 -76 -9t-74 -19 q-39 -12 -78 -27v-575z" />
-<glyph unicode="Q" horiz-adv-x="1064" d="M139 352v715q0 45 17.5 110.5t62.5 127t121 104.5t192 43q115 0 191 -43t121 -104.5t63.5 -127t18.5 -110.5v-717q0 -41 -14.5 -96t-48.5 -108.5t-91 -96.5t-145 -59q20 -49 69 -72l-34 -125q-59 25 -102.5 71t-61.5 118q-104 6 -173 48t-111 99t-58.5 118.5t-16.5 104.5 zM254 350q0 -82 31.5 -130t76 -73.5t91.5 -33t79 -7.5q33 0 80 7.5t91.5 33t75 73.5t30.5 130v717q0 82 -30.5 133t-75 81t-91.5 41t-80 11t-79.5 -11t-91 -40t-76 -80t-31.5 -133v-719z" />
-<glyph unicode="R" horiz-adv-x="1030" d="M160 0v1374q55 20 114 39q51 16 114 28.5t126 12.5q84 0 162 -27.5t137 -80t94 -128t35 -174.5q0 -70 -16.5 -136t-47 -121.5t-74.5 -97t-97 -64.5l254 -625h-115l-254 594q-37 -6 -80 -6h-244v-588h-108zM270 707h228q147 0 237 88t90 249q0 80 -24.5 135.5t-67.5 90.5 t-103 50t-132 15q-37 0 -76 -8t-74 -18q-39 -12 -78 -27v-575z" />
-<glyph unicode="S" horiz-adv-x="956" d="M88 135l41 113q70 -37 137 -64q59 -23 125 -42t119 -19q57 0 107.5 22.5t87 62.5t57 93t20.5 115q0 63 -28.5 105t-72.5 69.5t-97.5 43t-104.5 23.5q-76 12 -142.5 43t-116.5 80t-78.5 115t-28.5 147q0 84 29.5 159t81.5 131.5t122 89t148 32.5q49 0 101 -11t97 -24 q51 -16 101 -35l-39 -114q-45 18 -92 33q-41 12 -86.5 22t-86.5 10q-55 0 -103 -23.5t-83 -63.5t-55.5 -92t-20.5 -107q0 -63 26 -111.5t65.5 -81.5t89 -52.5t94.5 -27.5q84 -14 156.5 -40.5t127 -68.5t85 -103.5t30.5 -143.5q0 -86 -29.5 -162t-82 -132t-124 -90 t-153.5 -34q-80 0 -155.5 20.5t-135.5 45.5q-70 29 -133 67z" />
-<glyph unicode="T" d="M39 1323v111h778v-111h-328v-1323h-110v1323h-340z" />
-<glyph unicode="U" horiz-adv-x="1093" d="M158 354v1082h106v-1082q0 -82 29 -133t71 -80.5t91 -41t92 -11.5q37 0 86 11.5t93 41t73.5 80.5t29.5 133v1082h107v-1082q0 -59 -18.5 -123.5t-62.5 -119t-120 -90t-188 -35.5q-113 0 -187.5 35.5t-119.5 90t-63.5 119t-18.5 123.5z" />
-<glyph unicode="V" horiz-adv-x="933" d="M55 1434h113l285 -1299h26q23 94 45 203q20 92 46 208t55 238q63 285 143 650h115l-332 -1434h-174z" />
-<glyph unicode="W" horiz-adv-x="1247" d="M70 1434h106l189 -1301h16l166 741h155l164 -741h17l188 1301h107l-209 -1432h-176l-160 741h-17l-161 -741h-176z" />
-<glyph unicode="X" horiz-adv-x="925" d="M51 0l299 711l-299 723h115l280 -660h35l281 660h115l-299 -723l296 -711h-116l-271 651h-49l-272 -651h-115z" />
-<glyph unicode="Y" horiz-adv-x="886" d="M31 1434h114l281 -660h35l280 660h115l-324 -783h-28v-651h-123v651h-25z" />
-<glyph unicode="Z" horiz-adv-x="927" d="M68 0v135l612 1149v29h-565v121h716v-119l-612 -1161v-33h645v-121h-796z" />
-<glyph unicode="[" horiz-adv-x="485" d="M137 -172v1763h285v-100h-182v-1563h182v-100h-285z" />
-<glyph unicode="\" horiz-adv-x="784" d="M61 1573h111l551 -1690h-109z" />
-<glyph unicode="]" horiz-adv-x="485" d="M63 -74h183v1563h-183v100h285v-1763h-285v100z" />
-<glyph unicode="_" horiz-adv-x="430" />
-<glyph unicode="`" horiz-adv-x="745" d="M205 1507h125l198 -301h-106z" />
-<glyph unicode="a" horiz-adv-x="825" d="M96 272v115q0 59 20.5 111.5t57.5 91.5t87 61.5t108 22.5q14 0 43.5 -2t63.5 -8.5t69 -17.5t59 -30v70q0 47 -17.5 93t-46 83t-67.5 59.5t-84 22.5q-16 0 -58 -10t-87 -21q-53 -12 -115 -28l-29 96q68 16 125 31q49 12 96.5 22t67.5 10q66 0 123 -30.5t100 -80.5 t68 -114.5t25 -132.5l2 -586l38 -37l-73 -73l-56 55q-66 -37 -136 -51t-111 -14q-57 0 -107.5 23.5t-87.5 63t-57.5 93t-20.5 112.5zM199 264q0 -37 13 -68.5t35.5 -55t53.5 -38t66 -14.5q31 0 70.5 11.5t76.5 25.5q43 16 88 37v336q0 2 -18.5 13t-50 24.5t-74.5 24.5 t-90 11q-35 0 -67 -14t-54.5 -38.5t-35.5 -56.5t-13 -69v-129z" />
-<glyph unicode="b" d="M92 66l39 40v1328h102v-447q82 43 141.5 50t94.5 7q57 0 106.5 -22.5t86 -62t58 -92t21.5 -111.5v-484q0 -59 -21.5 -112.5t-58 -92t-86 -61t-106.5 -22.5q-45 0 -113.5 13t-136.5 50l-55 -53zM236 162q6 -18 36.5 -31.5t68.5 -23t75 -14.5t55 -5q35 0 65.5 14.5t53 38 t36 55t13.5 68.5v498q0 74 -49 126t-121 52q-18 0 -48 -4t-62.5 -13.5t-65.5 -22.5t-57 -32v-706z" />
-<glyph unicode="c" horiz-adv-x="706" d="M113 303v428q0 70 25.5 128.5t68.5 99t101.5 64.5t125.5 24q33 0 69 -8.5t66 -18.5q37 -10 72 -25l-25 -88q-31 10 -63 19q-29 8 -59.5 14t-59.5 6q-90 0 -154.5 -58.5t-64.5 -156.5v-428q0 -49 17.5 -89t48 -68.5t70.5 -44t85 -15.5q20 0 51 5t60 11q35 8 71 19l33 -94 q-41 -14 -78 -23q-33 -8 -70.5 -14t-66.5 -6q-68 0 -126 23.5t-102 66.5t-69.5 101t-25.5 128z" />
-<glyph unicode="d" horiz-adv-x="858" d="M115 270v484q0 59 21.5 111.5t58 92t86 62t106.5 22.5q35 0 94.5 -7t141.5 -50v447h102v-1334l45 -45l-74 -71l-61 61q-66 -37 -135.5 -49t-112.5 -12q-57 0 -106.5 22.5t-86 61t-58 92t-21.5 112.5zM217 262q0 -37 13.5 -68.5t36 -55t53 -38t65.5 -14.5q18 0 55 5 t75 14.5t69 23t37 31.5v706q-72 47 -135.5 59.5t-98.5 12.5q-72 0 -121 -52t-49 -126v-498z" />
-<glyph unicode="e" horiz-adv-x="833" d="M113 301v453q0 61 21.5 114.5t59 92t88 61t109.5 22.5h70q57 0 108.5 -22.5t90 -61t60 -92t21.5 -114.5v-68q0 -86 -30.5 -144.5t-84 -95t-124 -52t-150.5 -15.5q-33 0 -65.5 2t-67.5 6v-123q14 -82 76.5 -130t142.5 -48q8 0 52.5 9t93.5 20q57 12 127 28l24 -108 q-76 -16 -137 -27q-53 -10 -101 -18t-59 -8q-66 0 -125 23.5t-104 66.5t-70.5 101t-25.5 128zM219 496l242 -2h4q37 0 67.5 15t53 40.5t36 58.5t13.5 70v86q0 49 -18.5 83t-48 54.5t-69.5 29.5t-83 9q-39 0 -75 -12.5t-62.5 -35t-43 -55t-16.5 -73.5v-268z" />
-<glyph unicode="f" horiz-adv-x="583" d="M51 924v100h182v160q0 72 18.5 123t50.5 82.5t76 47t95 15.5h37v-111h-27q-57 0 -101 -30.5t-44 -112.5v-174h197v-100h-195v-924h-109v924h-180z" />
-<glyph unicode="g" horiz-adv-x="858" d="M115 270v486q0 59 21.5 112.5t58 92t86 61t106.5 22.5q47 0 109.5 -13t138.5 -48l61 61l74 -73l-45 -43v-1168q0 -76 -25.5 -131t-68.5 -90t-101.5 -52t-123.5 -17q-31 0 -80.5 10t-96.5 22q-55 14 -114 33l28 96q55 -18 109 -32q43 -12 87 -21.5t67 -9.5q88 0 152.5 47 t64.5 143v275q-72 -37 -125.5 -44t-87.5 -7h-23q-57 0 -106.5 22.5t-86 62t-58 92t-21.5 111.5zM217 264q0 -74 49 -126t121 -52q18 0 50 5t68 14.5t67.5 22.5t48.5 30v708q-6 18 -37 31.5t-69 23t-75 14.5t-55 5q-35 0 -65.5 -14.5t-53 -38t-36 -55t-13.5 -68.5v-500z" />
-<glyph unicode="h" horiz-adv-x="868" d="M131 0v1434h102v-447q82 43 141.5 50t94.5 7q57 0 106.5 -22.5t86 -62t58 -92t21.5 -111.5v-756h-102v762q0 74 -49 126t-121 52q-18 0 -45 -3t-59.5 -11t-65.5 -22.5t-63 -35.5v-868h-105z" />
-<glyph unicode="i" horiz-adv-x="370" d="M131 0v1024h109v-1024h-109zM131 1274v160h109v-160h-109z" />
-<glyph unicode="j" horiz-adv-x="372" d="M-37 -389h27q29 0 55.5 7t46 24.5t31.5 45t12 70.5l-6 1268h113v-1257q0 -72 -18.5 -123.5t-51.5 -83t-77 -47t-95 -15.5h-37v111zM129 1280v152h113v-152h-113z" />
-<glyph unicode="k" horiz-adv-x="684" d="M131 0v1434h105v-820h65l219 408h117l-252 -473l254 -549h-117l-219 489h-67v-489h-105z" />
-<glyph unicode="l" horiz-adv-x="434" d="M143 270v1164h107v-1174q0 -84 42 -115.5t101 -31.5h27v-111h-37q-51 0 -95 15.5t-76 47t-50.5 83t-18.5 122.5z" />
-<glyph unicode="m" horiz-adv-x="1411" d="M88 971l74 71l61 -63q53 29 107.5 47t105.5 18q92 0 170 -38.5t109 -120.5q29 49 65.5 79.5t76.5 48t80 24.5t77 7q74 0 126 -26.5t84.5 -68.5t47 -92t14.5 -99v-758h-106v743q0 39 -9.5 74t-29 61.5t-53 43t-82.5 16.5q-129 0 -186.5 -72.5t-57.5 -203.5v-662h-107v770 q0 37 -17 67.5t-47 53t-67 36t-73 13.5q-18 0 -48 -6t-61 -16.5t-58.5 -22.5t-45.5 -27v-868h-105v926z" />
-<glyph unicode="n" horiz-adv-x="884" d="M88 967l74 73l61 -61q113 63 213 63q92 0 172 -38t121 -130q25 -51 29 -103t4 -107v-664h-109v727q0 104 -55 159.5t-125 55.5q-39 0 -99.5 -12t-135.5 -62v-868h-105v924z" />
-<glyph unicode="o" d="M115 281v473q0 94 34.5 151.5t84 88t102.5 40.5t92 10t92 -10t102.5 -40.5t84 -88t34.5 -151.5v-473q0 -94 -34.5 -151.5t-84 -89.5t-102.5 -42t-92 -10t-92 10t-102.5 42t-84 89t-34.5 152zM207 295q0 -68 24.5 -108t59.5 -62.5t72.5 -29.5t64.5 -7t64.5 7t71.5 29.5 t58.5 62.5t24.5 108v444q0 68 -24.5 108t-58.5 61.5t-71.5 28.5t-64.5 7t-64.5 -7t-72.5 -28.5t-59.5 -61.5t-24.5 -108v-444z" />
-<glyph unicode="p" horiz-adv-x="858" d="M88 971l72 73l63 -61q70 35 135.5 48t112.5 13q57 0 106.5 -22.5t86 -61t58 -92t21.5 -112.5v-488q0 -59 -21.5 -111.5t-58 -92t-86 -62t-106.5 -22.5q-35 0 -94 7t-141 50v-549h-103v1440zM238 156q25 -16 57.5 -28.5t65 -23t62.5 -15.5t48 -5q72 0 121 52t49 126v502 q0 37 -13.5 68.5t-36 55t-53 38t-65.5 14.5q-18 0 -47 -3t-60.5 -12.5t-64.5 -23.5t-63 -35v-710z" />
-<glyph unicode="q" horiz-adv-x="858" d="M115 268v486q0 59 21.5 112.5t58 92t86 61t106.5 22.5q45 0 111.5 -13t136.5 -48l63 61l72 -73l-45 -43v-1438h-102v545l-39 -19q-59 -29 -107.5 -30.5t-83.5 -3.5q-57 0 -107 22.5t-88 62t-60.5 92t-22.5 111.5zM217 262q0 -74 49 -125t121 -51q18 0 47 4t61.5 12.5 t66.5 21.5t59 34v706q-78 51 -137.5 62.5t-98.5 11.5q-35 0 -65.5 -14.5t-53 -38t-36 -55t-13.5 -68.5v-500z" />
-<glyph unicode="r" horiz-adv-x="675" d="M84 961l72 73l71 -69q59 53 113.5 66t93.5 13q41 0 90.5 -16t137.5 -65l-58 -86q-35 20 -57.5 31.5t-42 17.5t-36.5 7t-38 1q-31 0 -84 -17.5t-106 -66.5v-848h-103v905z" />
-<glyph unicode="s" horiz-adv-x="739" d="M92 741q0 150 81 226.5t200 76.5q35 0 72.5 -9t78.5 -23l68 -25l-39 -88q-49 18 -79 27.5t-47 13.5t-26.5 5t-19.5 1h-10q-72 0 -126.5 -56t-54.5 -159q0 -43 18.5 -75.5t47.5 -56.5t60.5 -35t60.5 -11q63 0 120.5 -11.5t99.5 -41t66.5 -82.5t24.5 -135 q0 -152 -75.5 -227.5t-194.5 -75.5q-37 0 -76 6t-78 22l-170 68l41 90l168 -68q31 -12 60.5 -17t56.5 -5q72 0 121 55t49 160q0 43 -17.5 73.5t-43 50t-57.5 29t-58 9.5q-74 0 -133.5 13t-101.5 47t-64.5 89t-22.5 139z" />
-<glyph unicode="t" horiz-adv-x="546" d="M39 924v102h174v408h109v-408h188v-102h-188v-668q0 -84 42 -115.5t101 -31.5h45v-111h-55q-51 0 -95.5 15.5t-77 47t-51 82.5t-18.5 123v658h-174z" />
-<glyph unicode="u" horiz-adv-x="884" d="M125 362v662h106v-725q0 -53 15.5 -93t41 -66.5t58.5 -41t68 -14.5q66 0 132 23.5t103 50.5v866h105v-922l45 -43l-74 -73l-61 61q-59 -33 -127 -48t-121 -15q-74 0 -145.5 38t-112.5 130q-25 51 -29 103t-4 107z" />
-<glyph unicode="v" horiz-adv-x="743" d="M47 1024h103l153 -614q8 -31 17.5 -77t17.5 -89t14 -74l6 -31h41q12 55 23 107q10 43 18.5 89t16.5 77l135 612h104l-231 -1024h-174z" />
-<glyph unicode="w" horiz-adv-x="1089" d="M59 1024h103l123 -889h18l152 887h178l149 -889h17l129 891h102l-164 -1024h-151l-160 893h-23l-159 -893h-150z" />
-<glyph unicode="x" horiz-adv-x="745" d="M51 0l217 510l-217 514h105l200 -451h33l191 451h108l-209 -514l215 -508h-108l-195 449h-43l-192 -451h-105z" />
-<glyph unicode="y" horiz-adv-x="768" d="M45 1024h105q53 -225 95 -382t70 -257q33 -117 56 -192h24q18 76 49 192q27 100 69 257t105 382h105l-274 -1024h-13l-84 -512h-104l84 512h-15z" />
-<glyph unicode="z" horiz-adv-x="831" d="M72 0v106l518 771v38h-500v105h645v-107l-518 -772v-37h553v-104h-698z" />
-<glyph unicode="{" horiz-adv-x="477" d="M133 80v1274q0 72 12.5 110.5t40.5 67.5q27 27 69 40t112 13h47v-100h-37q-47 0 -71.5 -3t-41.5 -20q-18 -18 -23 -51t-5 -82v-1233q0 -49 5 -78.5t23 -46.5q16 -16 41 -19t72 -3h37v-101h-47q-70 0 -112 13.5t-69 40.5q-29 29 -41 67.5t-12 110.5z" />
-<glyph unicode="|" horiz-adv-x="380" d="M139 -20v1454h103v-1454h-103z" />
-<glyph unicode="}" horiz-adv-x="487" d="M66 -47h43h26q35 0 54.5 3t33.5 17q16 16 22.5 46t6.5 79v1243q0 49 -6 79t-23 46q-16 16 -41.5 19.5t-72.5 3.5h-43v100h53q70 0 111.5 -13t70.5 -40q29 -29 41 -67.5t12 -110.5v-1274q0 -72 -12 -111t-41 -67q-29 -27 -71 -40t-111 -13h-53v100z" />
-<glyph unicode="~" horiz-adv-x="942" d="M94 539q37 37 64.5 59.5t53.5 34.5t50.5 17t52.5 5q43 0 82 -15t78 -33.5t77 -34t81 -15.5q37 0 66.5 13.5t80.5 64.5l70 -55q-37 -37 -65.5 -59.5t-53 -35t-49.5 -17.5t-53 -5q-39 0 -79 15.5t-80 33.5t-80 33.5t-81 15.5q-37 0 -66.5 -13t-80.5 -65z" />
-<glyph unicode="&#xa1;" horiz-adv-x="389" d="M139 1249v185h109v-185h-109zM141 2v1145h107v-1145h-107z" />
-<glyph unicode="&#xa2;" horiz-adv-x="727" d="M106 305v428q0 121 70 202.5t176 104.5v265h103v-258q31 -4 62.5 -12.5t57.5 -16.5q31 -10 60 -21l-25 -88q-31 10 -63 19q-29 8 -59.5 14t-59.5 6q-90 0 -154.5 -58.5t-64.5 -156.5v-428q0 -49 17.5 -89t48 -68.5t70.5 -44t85 -15.5q20 0 51 5t60 11q35 8 71 19l33 -94 q-33 -10 -65 -19q-29 -8 -63 -14t-62 -8v-256h-103v262q-106 25 -176 108.5t-70 202.5z" />
-<glyph unicode="&#xa3;" horiz-adv-x="1032" d="M98 662v120h80v295q0 82 25.5 150.5t75 119t118 78t154.5 27.5q84 0 154.5 -27.5t121 -78t79 -119t28.5 -150.5h-113q0 84 -28.5 136.5t-69.5 81t-89 37.5t-85 9q-41 0 -86 -10t-84 -39.5t-63.5 -80t-24.5 -130.5v-299h452v-120h-452v-551h641v-111h-754v662h-80z" />
-<glyph unicode="&#xa5;" horiz-adv-x="985" d="M80 1436h115l280 -660h35l281 660h114l-225 -545h164v-131h-219l-43 -107h-29v-161h291v-132h-291v-358h-123v358h-289v132h289v161h-24l-46 107h-219v131h166z" />
-<glyph unicode="&#xa6;" horiz-adv-x="389" d="M141 0v639h107v-639h-107zM141 795v639h107v-639h-107z" />
-<glyph unicode="&#xa8;" horiz-adv-x="923" d="M213 1229v157h119v-157h-119zM618 1229v157h119v-157h-119z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1636" d="M84 715q0 152 57.5 286t157.5 233t234.5 157.5t285.5 58.5q152 0 286 -58.5t233.5 -157.5t156.5 -233t57 -286t-57 -286t-156.5 -234.5t-233.5 -157.5t-286 -57t-286 57t-234 157.5t-157.5 234.5t-57.5 286zM186 715q0 -133 50.5 -248t136.5 -201t200.5 -135t245.5 -49 t246 49t201 135t135 201t49 248q0 131 -49 246.5t-135 201.5t-201 135.5t-246 49.5t-245.5 -49.5t-200.5 -135.5t-136.5 -201.5t-50.5 -246.5zM586 555v346q0 55 19.5 100.5t54 78t80.5 51t100 18.5q25 0 53.5 -6t52.5 -15q29 -8 55 -20l-18 -70q-25 6 -49 15 q-23 6 -47.5 11t-46.5 5q-72 0 -123 -46t-51 -122v-346q0 -78 52 -125t124 -47q16 0 39.5 4t46.5 10q27 6 57 15l25 -74q-31 -10 -62 -19q-27 -6 -55.5 -11t-50.5 -5q-53 0 -99.5 18.5t-81 52.5t-55 80t-20.5 101z" />
-<glyph unicode="&#xad;" horiz-adv-x="741" d="M125 662v131h491v-131h-491z" />
-<glyph unicode="&#xae;" horiz-adv-x="1636" d="M84 723q0 152 57.5 286t157.5 233t234.5 157.5t285.5 58.5q152 0 286 -58.5t233.5 -157.5t156.5 -233t57 -286t-57 -286t-156.5 -234.5t-233.5 -157.5t-286 -57t-286 57t-234 157.5t-157.5 234.5t-57.5 286zM186 723q0 -133 50.5 -248t136.5 -201t200.5 -135t245.5 -49 t246 49t201 135t135 201t49 248q0 131 -49 246.5t-135 201.5t-201 135.5t-246 49.5t-245.5 -49.5t-200.5 -135.5t-136.5 -201.5t-50.5 -246.5zM606 301v815q31 12 68 23q31 10 67.5 17t75.5 7q49 0 95 -16.5t82 -47t56.5 -76.5t20.5 -103q0 -82 -39 -152.5t-100 -95.5 l149 -371h-69l-150 352q-10 -4 -22.5 -4h-24.5h-145v-348h-64zM670 721h137q86 0 139 51t53 148q0 96 -53 134t-139 38q-23 0 -46.5 -5.5t-43.5 -11.5q-23 -8 -47 -14v-340z" />
-<glyph unicode="&#xb0;" horiz-adv-x="675" d="M82 1200q0 53 20.5 99.5t54 81t80 55t99.5 20.5t100 -19.5t82 -54t55.5 -82t20.5 -100.5t-20.5 -99t-55.5 -81t-82 -55.5t-100 -20.5t-99.5 20.5t-80 55.5t-54 81t-20.5 99zM174 1200q0 -66 48 -113t114 -47q68 0 116 47t48 113q0 68 -48.5 115t-115.5 47q-66 0 -114 -47 t-48 -115z" />
-<glyph unicode="&#xb4;" horiz-adv-x="948" d="M420 1208l198 301h125l-217 -301h-106z" />
-<glyph unicode="&#xb8;" horiz-adv-x="806" d="M305 -381q35 16 55.5 62.5t20.5 119.5v105h98v-107q0 -115 -30.5 -172t-83.5 -82z" />
-<glyph unicode="&#xbf;" d="M74 -156q0 66 19.5 113t41.5 82l293 440q20 29 34.5 60.5t14.5 78.5v44h119v-41q0 -72 -17.5 -119t-41.5 -82l-279 -418q-23 -35 -45.5 -76t-22.5 -80q0 -53 27 -96t67 -72.5t86 -46t83 -16.5q25 0 50 6t50 17l201 75l39 -110l-172 -72q-35 -14 -84.5 -25.5t-81.5 -11.5 q-74 0 -143.5 25.5t-122 72t-84 110.5t-31.5 142zM463 764v184h141v-184h-141z" />
-<glyph unicode="&#xc0;" horiz-adv-x="940" d="M55 2l328 1434h174l328 -1434h-109l-92 399h-428l-90 -399h-111zM182 1917h125l198 -301h-106zM289 522h364l-168 778h-26z" />
-<glyph unicode="&#xc1;" horiz-adv-x="940" d="M55 2l328 1434h174l328 -1434h-109l-92 399h-428l-90 -399h-111zM289 522h364l-168 778h-26zM420 1618l198 301h125l-217 -301h-106z" />
-<glyph unicode="&#xc2;" horiz-adv-x="940" d="M55 2l328 1434h174l328 -1434h-109l-92 399h-428l-90 -399h-111zM209 1692l205 256h113l205 -256h-101l-159 166l-160 -166h-103zM289 522h364l-168 778h-26z" />
-<glyph unicode="&#xc3;" horiz-adv-x="940" d="M55 2l328 1434h174l328 -1434h-109l-92 399h-428l-90 -399h-111zM168 1751h561l47 -102h-557zM289 522h364l-168 778h-26z" />
-<glyph unicode="&#xc4;" horiz-adv-x="940" d="M55 2l328 1434h174l328 -1434h-109l-92 399h-428l-90 -399h-111zM213 1639v157h119v-157h-119zM289 522h364l-168 778h-26zM618 1639v157h119v-157h-119z" />
-<glyph unicode="&#xc6;" horiz-adv-x="1501" d="M29 2l655 1432h725v-117h-465v-537h365v-118h-365v-541h469v-119h-579v399h-512l-183 -399h-110zM381 522l453 -2l2 778l-107 2z" />
-<glyph unicode="&#xc7;" horiz-adv-x="894" d="M137 375v20v641q0 86 30 161t66 114q37 41 59.5 60.5t47.5 33.5q20 10 61 29.5t121 19.5q29 0 70 -10t74 -21l159 -63l-37 -107l-178 70q-20 8 -42.5 14t-43.5 6q-55 0 -104 -25.5t-87 -68.5t-59.5 -98t-21.5 -115l-4 -651q0 -66 22.5 -119t59.5 -90t86 -58.5t102 -23.5 q16 0 33.5 3t45.5 13.5t72 28t115 45.5l45 -116l-165 -60q-35 -12 -76 -20t-70 -8q-78 0 -146.5 27.5t-120.5 78.5t-83 124t-31 165zM387 -381q35 16 55.5 62.5t20.5 119.5v105h98v-107q0 -115 -30.5 -172t-83.5 -82z" />
-<glyph unicode="&#xc8;" horiz-adv-x="831" d="M162 2v1432h577v-117h-460v-537h360v-118h-360v-541h464v-119h-581zM170 1917h125l198 -301h-106z" />
-<glyph unicode="&#xc9;" horiz-adv-x="831" d="M162 2v1432h577v-117h-460v-537h360v-118h-360v-541h464v-119h-581zM367 1605l198 301h125l-217 -301h-106z" />
-<glyph unicode="&#xca;" horiz-adv-x="831" d="M141 1692l205 256h113l205 -256h-101l-159 166l-160 -166h-103zM162 2v1432h577v-117h-460v-537h360v-118h-360v-541h464v-119h-581z" />
-<glyph unicode="&#xcb;" horiz-adv-x="831" d="M162 2v1432h577v-117h-460v-537h360v-118h-360v-541h464v-119h-581zM182 1639v157h119v-157h-119zM587 1639v157h119v-157h-119z" />
-<glyph unicode="&#xcc;" horiz-adv-x="425" d="M-57 1917h125l198 -301h-106zM160 0v1434h106v-1434h-106z" />
-<glyph unicode="&#xcd;" horiz-adv-x="425" d="M160 0v1434h106v-1434h-106zM180 1618l198 301h125l-217 -301h-106z" />
-<glyph unicode="&#xce;" horiz-adv-x="425" d="M-45 1692l205 256h113l205 -256h-101l-159 166l-160 -166h-103zM160 0v1434h106v-1434h-106z" />
-<glyph unicode="&#xcf;" horiz-adv-x="425" d="M-47 1639v157h119v-157h-119zM160 0v1434h106v-1434h-106zM358 1639v157h119v-157h-119z" />
-<glyph unicode="&#xd1;" horiz-adv-x="1134" d="M160 0v1434h147l535 -1293h26v1293h107v-1434h-199l-487 1192h-25v-1192h-104zM262 1751h561l47 -102h-557z" />
-<glyph unicode="&#xd2;" horiz-adv-x="1064" d="M139 352v717q0 45 17.5 110.5t62.5 126t121 103.5t192 43q115 0 191 -43t121 -102.5t63.5 -125t18.5 -110.5v-719q0 -45 -17.5 -108.5t-62.5 -122t-122 -99t-194 -40.5q-115 0 -190.5 40.5t-119.5 99t-62.5 122t-18.5 108.5zM250 350q0 -82 31.5 -130t76.5 -73.5 t93.5 -33t80.5 -7.5q33 0 81.5 8.5t92.5 34t75.5 73.5t31.5 130v719q0 82 -31.5 132t-75.5 78t-92.5 37t-81.5 9t-81 -10t-93 -38t-76.5 -78t-31.5 -132v-719zM273 1917h125l198 -301h-106z" />
-<glyph unicode="&#xd3;" horiz-adv-x="1064" d="M139 352v717q0 45 17.5 110.5t62.5 126t121 103.5t192 43q115 0 191 -43t121 -102.5t63.5 -125t18.5 -110.5v-719q0 -45 -17.5 -108.5t-62.5 -122t-122 -99t-194 -40.5q-115 0 -190.5 40.5t-119.5 99t-62.5 122t-18.5 108.5zM250 350q0 -82 31.5 -130t76.5 -73.5 t93.5 -33t80.5 -7.5q33 0 81.5 8.5t92.5 34t75.5 73.5t31.5 130v719q0 82 -31.5 132t-75.5 78t-92.5 37t-81.5 9t-81 -10t-93 -38t-76.5 -78t-31.5 -132v-719zM492 1618l198 301h125l-217 -301h-106z" />
-<glyph unicode="&#xd4;" horiz-adv-x="1064" d="M139 352v717q0 45 17.5 110.5t62.5 126t121 103.5t192 43q115 0 191 -43t121 -102.5t63.5 -125t18.5 -110.5v-719q0 -45 -17.5 -108.5t-62.5 -122t-122 -99t-194 -40.5q-115 0 -190.5 40.5t-119.5 99t-62.5 122t-18.5 108.5zM250 350q0 -82 31.5 -130t76.5 -73.5 t93.5 -33t80.5 -7.5q33 0 81.5 8.5t92.5 34t75.5 73.5t31.5 130v719q0 82 -31.5 132t-75.5 78t-92.5 37t-81.5 9t-81 -10t-93 -38t-76.5 -78t-31.5 -132v-719zM270 1692l205 256h113l205 -256h-101l-159 166l-160 -166h-103z" />
-<glyph unicode="&#xd5;" horiz-adv-x="1064" d="M139 352v717q0 45 17.5 110.5t62.5 126t121 103.5t192 43q115 0 191 -43t121 -102.5t63.5 -125t18.5 -110.5v-719q0 -45 -17.5 -108.5t-62.5 -122t-122 -99t-194 -40.5q-115 0 -190.5 40.5t-119.5 99t-62.5 122t-18.5 108.5zM230 1751h561l47 -102h-557zM250 350 q0 -82 31.5 -130t76.5 -73.5t93.5 -33t80.5 -7.5q33 0 81.5 8.5t92.5 34t75.5 73.5t31.5 130v719q0 82 -31.5 132t-75.5 78t-92.5 37t-81.5 9t-81 -10t-93 -38t-76.5 -78t-31.5 -132v-719z" />
-<glyph unicode="&#xd6;" horiz-adv-x="1064" d="M139 352v717q0 45 17.5 110.5t62.5 126t121 103.5t192 43q115 0 191 -43t121 -102.5t63.5 -125t18.5 -110.5v-719q0 -45 -17.5 -108.5t-62.5 -122t-122 -99t-194 -40.5q-115 0 -190.5 40.5t-119.5 99t-62.5 122t-18.5 108.5zM250 350q0 -82 31.5 -130t76.5 -73.5 t93.5 -33t80.5 -7.5q33 0 81.5 8.5t92.5 34t75.5 73.5t31.5 130v719q0 82 -31.5 132t-75.5 78t-92.5 37t-81.5 9t-81 -10t-93 -38t-76.5 -78t-31.5 -132v-719zM276 1639v157h119v-157h-119zM681 1639v157h119v-157h-119z" />
-<glyph unicode="&#xd7;" horiz-adv-x="925" d="M113 274l278 279l-278 278l71 72l279 -278l278 278l72 -72l-278 -278l278 -279l-72 -71l-278 278l-279 -278z" />
-<glyph unicode="&#xd8;" horiz-adv-x="1064" d="M139 352v717q0 45 17.5 110.5t62.5 126t121 103.5t192 43q115 0 191 -43t121 -102.5t63.5 -125t18.5 -110.5v-719q0 -45 -17.5 -108.5t-62.5 -122t-122 -99t-194 -40.5q-115 0 -190.5 40.5t-119.5 99t-62.5 122t-18.5 108.5zM250 350q0 -82 31.5 -130t76.5 -73.5 t93.5 -33t80.5 -7.5q33 0 81.5 8.5t92.5 34t75.5 73.5t31.5 130v719q0 82 -31.5 132t-75.5 78t-92.5 37t-81.5 9t-81 -10t-93 -38t-76.5 -78t-31.5 -132v-719zM346 -135l250 1704h123l-250 -1704h-123z" />
-<glyph unicode="&#xd9;" horiz-adv-x="1093" d="M158 354v1082h106v-1082q0 -82 29 -133t71 -80.5t91 -41t92 -11.5q37 0 86 11.5t93 41t73.5 80.5t29.5 133v1082h107v-1082q0 -59 -18.5 -123.5t-62.5 -119t-120 -90t-188 -35.5q-113 0 -187.5 35.5t-119.5 90t-63.5 119t-18.5 123.5zM289 1917h125l198 -301h-106z" />
-<glyph unicode="&#xda;" horiz-adv-x="1093" d="M158 354v1082h106v-1082q0 -82 29 -133t71 -80.5t91 -41t92 -11.5q37 0 86 11.5t93 41t73.5 80.5t29.5 133v1082h107v-1082q0 -59 -18.5 -123.5t-62.5 -119t-120 -90t-188 -35.5q-113 0 -187.5 35.5t-119.5 90t-63.5 119t-18.5 123.5zM483 1618l198 301h125l-217 -301 h-106z" />
-<glyph unicode="&#xdb;" horiz-adv-x="1093" d="M158 354v1082h106v-1082q0 -82 29 -133t71 -80.5t91 -41t92 -11.5q37 0 86 11.5t93 41t73.5 80.5t29.5 133v1082h107v-1082q0 -59 -18.5 -123.5t-62.5 -119t-120 -90t-188 -35.5q-113 0 -187.5 35.5t-119.5 90t-63.5 119t-18.5 123.5zM284 1692l205 256h113l205 -256 h-101l-159 166l-160 -166h-103z" />
-<glyph unicode="&#xdc;" horiz-adv-x="1093" d="M158 354v1082h106v-1082q0 -82 29 -133t71 -80.5t91 -41t92 -11.5q37 0 86 11.5t93 41t73.5 80.5t29.5 133v1082h107v-1082q0 -59 -18.5 -123.5t-62.5 -119t-120 -90t-188 -35.5q-113 0 -187.5 35.5t-119.5 90t-63.5 119t-18.5 123.5zM281 1639v157h119v-157h-119z M686 1639v157h119v-157h-119z" />
-<glyph unicode="&#xdd;" horiz-adv-x="886" d="M31 1434h114l281 -660h35l280 660h115l-324 -783h-28v-651h-123v651h-25zM377 1618l198 301h125l-217 -301h-106z" />
-<glyph unicode="&#xde;" horiz-adv-x="878" d="M160 -510v1944h2h100h2v-447q82 43 141.5 50t94.5 7q57 0 106 -22.5t86 -62t58.5 -92t21.5 -111.5v-484q0 -59 -21.5 -111t-58.5 -91t-86 -61.5t-106 -22.5q-43 0 -107.5 10t-130.5 43v-549h-102zM266 145q59 -31 114.5 -45t121.5 -14q35 0 65.5 14.5t53 39t36 56 t13.5 68.5v498q0 74 -49.5 126t-120.5 52q-49 0 -118 -17.5t-116 -54.5v-723z" />
-<glyph unicode="&#xdf;" horiz-adv-x="1036" d="M131 0v1081q0 45 15.5 109.5t56.5 123t115.5 100.5t195.5 42q117 0 190.5 -42t114.5 -101.5t55.5 -125t14.5 -110.5q0 -86 -38 -166t-120 -108q70 -25 111 -67t63.5 -89t29.5 -93t7 -79v-94q0 -47 -14.5 -112.5t-55.5 -125t-114.5 -101.5t-190.5 -42h-106v111h102 q37 0 83 9t87 38.5t68.5 83t27.5 139.5v88q0 88 -25.5 141.5t-62 82t-80 37.5t-79.5 9h-47v111h45h8q94 0 141 60.5t47 164.5q0 88 -27.5 141.5t-67.5 82t-86 38t-81 9.5q-37 0 -83 -9.5t-88 -38t-70.5 -82t-28.5 -141.5v-1075h-113z" />
-<glyph unicode="&#xe0;" horiz-adv-x="825" d="M96 272v115q0 59 20.5 111.5t57.5 91.5t87 61.5t108 22.5q14 0 43.5 -2t63.5 -8.5t69 -17.5t59 -30v70q0 47 -17.5 93t-46 83t-67.5 59.5t-84 22.5q-16 0 -58 -10t-87 -21q-53 -12 -115 -28l-29 96q68 16 125 31q49 12 96.5 22t67.5 10q66 0 123 -30.5t100 -80.5 t68 -114.5t25 -132.5l2 -586l38 -37l-73 -73l-56 55q-66 -37 -136 -51t-111 -14q-57 0 -107.5 23.5t-87.5 63t-57.5 93t-20.5 112.5zM158 1507h125l198 -301h-106zM199 264q0 -37 13 -68.5t35.5 -55t53.5 -38t66 -14.5q31 0 70.5 11.5t76.5 25.5q43 16 88 37v336 q0 2 -18.5 13t-50 24.5t-74.5 24.5t-90 11q-35 0 -67 -14t-54.5 -38.5t-35.5 -56.5t-13 -69v-129z" />
-<glyph unicode="&#xe1;" horiz-adv-x="825" d="M96 272v115q0 59 20.5 111.5t57.5 91.5t87 61.5t108 22.5q14 0 43.5 -2t63.5 -8.5t69 -17.5t59 -30v70q0 47 -17.5 93t-46 83t-67.5 59.5t-84 22.5q-16 0 -58 -10t-87 -21q-53 -12 -115 -28l-29 96q68 16 125 31q49 12 96.5 22t67.5 10q66 0 123 -30.5t100 -80.5 t68 -114.5t25 -132.5l2 -586l38 -37l-73 -73l-56 55q-66 -37 -136 -51t-111 -14q-57 0 -107.5 23.5t-87.5 63t-57.5 93t-20.5 112.5zM199 264q0 -37 13 -68.5t35.5 -55t53.5 -38t66 -14.5q31 0 70.5 11.5t76.5 25.5q43 16 88 37v336q0 2 -18.5 13t-50 24.5t-74.5 24.5 t-90 11q-35 0 -67 -14t-54.5 -38.5t-35.5 -56.5t-13 -69v-129zM359 1208l198 301h125l-217 -301h-106z" />
-<glyph unicode="&#xe2;" horiz-adv-x="825" d="M96 272v115q0 59 20.5 111.5t57.5 91.5t87 61.5t108 22.5q14 0 43.5 -2t63.5 -8.5t69 -17.5t59 -30v70q0 47 -17.5 93t-46 83t-67.5 59.5t-84 22.5q-16 0 -58 -10t-87 -21q-53 -12 -115 -28l-29 96q68 16 125 31q49 12 96.5 22t67.5 10q66 0 123 -30.5t100 -80.5 t68 -114.5t25 -132.5l2 -586l38 -37l-73 -73l-56 55q-66 -37 -136 -51t-111 -14q-57 0 -107.5 23.5t-87.5 63t-57.5 93t-20.5 112.5zM159 1282l205 256h113l205 -256h-101l-159 166l-160 -166h-103zM199 264q0 -37 13 -68.5t35.5 -55t53.5 -38t66 -14.5q31 0 70.5 11.5 t76.5 25.5q43 16 88 37v336q0 2 -18.5 13t-50 24.5t-74.5 24.5t-90 11q-35 0 -67 -14t-54.5 -38.5t-35.5 -56.5t-13 -69v-129z" />
-<glyph unicode="&#xe3;" horiz-adv-x="825" d="M96 272v115q0 59 20.5 111.5t57.5 91.5t87 61.5t108 22.5q14 0 43.5 -2t63.5 -8.5t69 -17.5t59 -30v70q0 47 -17.5 93t-46 83t-67.5 59.5t-84 22.5q-16 0 -58 -10t-87 -21q-53 -12 -115 -28l-29 96q68 16 125 31q49 12 96.5 22t67.5 10q66 0 123 -30.5t100 -80.5 t68 -114.5t25 -132.5l2 -586l38 -37l-73 -73l-56 55q-66 -37 -136 -51t-111 -14q-57 0 -107.5 23.5t-87.5 63t-57.5 93t-20.5 112.5zM115 1341h561l47 -102h-557zM199 264q0 -37 13 -68.5t35.5 -55t53.5 -38t66 -14.5q31 0 70.5 11.5t76.5 25.5q43 16 88 37v336 q0 2 -18.5 13t-50 24.5t-74.5 24.5t-90 11q-35 0 -67 -14t-54.5 -38.5t-35.5 -56.5t-13 -69v-129z" />
-<glyph unicode="&#xe4;" horiz-adv-x="825" d="M96 272v115q0 59 20.5 111.5t57.5 91.5t87 61.5t108 22.5q14 0 43.5 -2t63.5 -8.5t69 -17.5t59 -30v70q0 47 -17.5 93t-46 83t-67.5 59.5t-84 22.5q-16 0 -58 -10t-87 -21q-53 -12 -115 -28l-29 96q68 16 125 31q49 12 96.5 22t67.5 10q66 0 123 -30.5t100 -80.5 t68 -114.5t25 -132.5l2 -586l38 -37l-73 -73l-56 55q-66 -37 -136 -51t-111 -14q-57 0 -107.5 23.5t-87.5 63t-57.5 93t-20.5 112.5zM147 1229v157h119v-157h-119zM199 264q0 -37 13 -68.5t35.5 -55t53.5 -38t66 -14.5q31 0 70.5 11.5t76.5 25.5q43 16 88 37v336 q0 2 -18.5 13t-50 24.5t-74.5 24.5t-90 11q-35 0 -67 -14t-54.5 -38.5t-35.5 -56.5t-13 -69v-129zM552 1229v157h119v-157h-119z" />
-<glyph unicode="&#xe6;" horiz-adv-x="1320" d="M96 272v115q0 59 20.5 111.5t57.5 91.5t87 61.5t108 22.5q14 0 41.5 -2t61.5 -8.5t68.5 -16.5t59.5 -29v97q-6 43 -24.5 85t-46 73.5t-63.5 51t-77 19.5q-16 0 -58 -10t-87 -21q-53 -12 -115 -28l-29 96q68 16 125 31q49 12 96.5 22t67.5 10q76 0 140.5 -39.5 t107.5 -103.5q35 66 99.5 104.5t142.5 38.5h69q57 0 108.5 -22.5t90.5 -61t60.5 -92t21.5 -114.5v-68q0 -86 -31 -144.5t-84 -95t-123.5 -52t-150.5 -15.5q-33 0 -66 2t-67 6v-123q14 -82 76.5 -130t142.5 -48q8 0 52 9t93 20q57 12 127 28l25 -108q-76 -16 -138 -27 q-53 -10 -101 -18t-58 -8q-37 0 -76 9t-73 24.5t-61.5 35t-41.5 39.5q-8 -4 -17 -12q-8 -6 -18.5 -13.5t-24.5 -15.5q-66 -41 -135 -55t-110 -14q-57 0 -107.5 23.5t-87.5 63t-57.5 93t-20.5 112.5zM199 264q0 -37 13 -68.5t35.5 -55t53.5 -38t66 -14.5q31 0 70.5 11.5 t76.5 25.5q43 16 88 37v98q-2 10 -2 20.5v20.5v199q-6 4 -25.5 15t-50 23.5t-70.5 22.5t-85 10q-35 0 -67 -14t-54.5 -38.5t-35.5 -56.5t-13 -69v-129zM707 496h241q37 -2 69 12t55.5 39.5t36.5 59.5t13 71v86q0 49 -18.5 83t-48 54.5t-69.5 29.5t-83 9q-39 0 -74.5 -12.5 t-62.5 -35t-43 -55t-16 -73.5v-268z" />
-<glyph unicode="&#xe7;" horiz-adv-x="706" d="M113 303v428q0 70 25.5 128.5t68.5 99t101.5 64.5t125.5 24q33 0 69 -8.5t66 -18.5q37 -10 72 -25l-25 -88q-31 10 -63 19q-29 8 -59.5 14t-59.5 6q-90 0 -154.5 -58.5t-64.5 -156.5v-428q0 -49 17.5 -89t48 -68.5t70.5 -44t85 -15.5q20 0 51 5t60 11q35 8 71 19l33 -94 q-41 -14 -78 -23q-33 -8 -70.5 -14t-66.5 -6q-68 0 -126 23.5t-102 66.5t-69.5 101t-25.5 128zM305 -381q35 16 55.5 62.5t20.5 119.5v105h98v-107q0 -115 -30.5 -172t-83.5 -82z" />
-<glyph unicode="&#xe8;" horiz-adv-x="833" d="M113 301v453q0 61 21.5 114.5t59 92t88 61t109.5 22.5h70q57 0 108.5 -22.5t90 -61t60 -92t21.5 -114.5v-68q0 -86 -30.5 -144.5t-84 -95t-124 -52t-150.5 -15.5q-33 0 -65.5 2t-67.5 6v-123q14 -82 76.5 -130t142.5 -48q8 0 52.5 9t93.5 20q57 12 127 28l24 -108 q-76 -16 -137 -27q-53 -10 -101 -18t-59 -8q-66 0 -125 23.5t-104 66.5t-70.5 101t-25.5 128zM166 1507h125l198 -301h-106zM219 496l242 -2h4q37 0 67.5 15t53 40.5t36 58.5t13.5 70v86q0 49 -18.5 83t-48 54.5t-69.5 29.5t-83 9q-39 0 -75 -12.5t-62.5 -35t-43 -55 t-16.5 -73.5v-268z" />
-<glyph unicode="&#xe9;" horiz-adv-x="833" d="M113 301v453q0 61 21.5 114.5t59 92t88 61t109.5 22.5h70q57 0 108.5 -22.5t90 -61t60 -92t21.5 -114.5v-68q0 -86 -30.5 -144.5t-84 -95t-124 -52t-150.5 -15.5q-33 0 -65.5 2t-67.5 6v-123q14 -82 76.5 -130t142.5 -48q8 0 52.5 9t93.5 20q57 12 127 28l24 -108 q-76 -16 -137 -27q-53 -10 -101 -18t-59 -8q-66 0 -125 23.5t-104 66.5t-70.5 101t-25.5 128zM219 496l242 -2h4q37 0 67.5 15t53 40.5t36 58.5t13.5 70v86q0 49 -18.5 83t-48 54.5t-69.5 29.5t-83 9q-39 0 -75 -12.5t-62.5 -35t-43 -55t-16.5 -73.5v-268zM375 1208l198 301 h125l-217 -301h-106z" />
-<glyph unicode="&#xea;" horiz-adv-x="833" d="M113 301v453q0 61 21.5 114.5t59 92t88 61t109.5 22.5h70q57 0 108.5 -22.5t90 -61t60 -92t21.5 -114.5v-68q0 -86 -30.5 -144.5t-84 -95t-124 -52t-150.5 -15.5q-33 0 -65.5 2t-67.5 6v-123q14 -82 76.5 -130t142.5 -48q8 0 52.5 9t93.5 20q57 12 127 28l24 -108 q-76 -16 -137 -27q-53 -10 -101 -18t-59 -8q-66 0 -125 23.5t-104 66.5t-70.5 101t-25.5 128zM155 1282l205 256h113l205 -256h-101l-159 166l-160 -166h-103zM219 496l242 -2h4q37 0 67.5 15t53 40.5t36 58.5t13.5 70v86q0 49 -18.5 83t-48 54.5t-69.5 29.5t-83 9 q-39 0 -75 -12.5t-62.5 -35t-43 -55t-16.5 -73.5v-268z" />
-<glyph unicode="&#xeb;" horiz-adv-x="833" d="M113 301v453q0 61 21.5 114.5t59 92t88 61t109.5 22.5h70q57 0 108.5 -22.5t90 -61t60 -92t21.5 -114.5v-68q0 -86 -30.5 -144.5t-84 -95t-124 -52t-150.5 -15.5q-33 0 -65.5 2t-67.5 6v-123q14 -82 76.5 -130t142.5 -48q8 0 52.5 9t93.5 20q57 12 127 28l24 -108 q-76 -16 -137 -27q-53 -10 -101 -18t-59 -8q-66 0 -125 23.5t-104 66.5t-70.5 101t-25.5 128zM172 1229v157h119v-157h-119zM219 496l242 -2h4q37 0 67.5 15t53 40.5t36 58.5t13.5 70v86q0 49 -18.5 83t-48 54.5t-69.5 29.5t-83 9q-39 0 -75 -12.5t-62.5 -35t-43 -55 t-16.5 -73.5v-268zM577 1229v157h119v-157h-119z" />
-<glyph unicode="&#xec;" horiz-adv-x="370" d="M-92 1507h125l198 -301h-106zM131 0v1024h109v-1024h-109z" />
-<glyph unicode="&#xed;" horiz-adv-x="370" d="M131 0v1024h109v-1024h-109zM133 1208l199 301h125l-217 -301h-107z" />
-<glyph unicode="&#xee;" horiz-adv-x="370" d="M-74 1282l205 256h113l205 -256h-101l-159 166l-160 -166h-103zM131 0v1024h109v-1024h-109zM131 1274v160h109v-160h-109z" />
-<glyph unicode="&#xef;" horiz-adv-x="370" d="M-76 1229v157h119v-157h-119zM131 0v1024h109v-1024h-109zM330 1229v157h119v-157h-119z" />
-<glyph unicode="&#xf1;" horiz-adv-x="884" d="M88 967l74 73l61 -61q113 63 213 63q92 0 172 -38t121 -130q25 -51 29 -103t4 -107v-664h-109v727q0 104 -55 159.5t-125 55.5q-39 0 -99.5 -12t-135.5 -62v-868h-105v924zM129 1341h561l47 -102h-557z" />
-<glyph unicode="&#xf2;" d="M115 281v473q0 94 34.5 151.5t84 88t102.5 40.5t92 10t92 -10t102.5 -40.5t84 -88t34.5 -151.5v-473q0 -94 -34.5 -151.5t-84 -89.5t-102.5 -42t-92 -10t-92 10t-102.5 42t-84 89t-34.5 152zM160 1507h125l198 -301h-106zM207 295q0 -68 24.5 -108t59.5 -62.5t72.5 -29.5 t64.5 -7t64.5 7t71.5 29.5t58.5 62.5t24.5 108v444q0 68 -24.5 108t-58.5 61.5t-71.5 28.5t-64.5 7t-64.5 -7t-72.5 -28.5t-59.5 -61.5t-24.5 -108v-444z" />
-<glyph unicode="&#xf3;" d="M115 281v473q0 94 34.5 151.5t84 88t102.5 40.5t92 10t92 -10t102.5 -40.5t84 -88t34.5 -151.5v-473q0 -94 -34.5 -151.5t-84 -89.5t-102.5 -42t-92 -10t-92 10t-102.5 42t-84 89t-34.5 152zM207 295q0 -68 24.5 -108t59.5 -62.5t72.5 -29.5t64.5 -7t64.5 7t71.5 29.5 t58.5 62.5t24.5 108v444q0 68 -24.5 108t-58.5 61.5t-71.5 28.5t-64.5 7t-64.5 -7t-72.5 -28.5t-59.5 -61.5t-24.5 -108v-444zM365 1208l198 301h125l-217 -301h-106z" />
-<glyph unicode="&#xf4;" d="M115 281v473q0 94 34.5 151.5t84 88t102.5 40.5t92 10t92 -10t102.5 -40.5t84 -88t34.5 -151.5v-473q0 -94 -34.5 -151.5t-84 -89.5t-102.5 -42t-92 -10t-92 10t-102.5 42t-84 89t-34.5 152zM166 1282l205 256h113l205 -256h-101l-159 166l-160 -166h-103zM207 295 q0 -68 24.5 -108t59.5 -62.5t72.5 -29.5t64.5 -7t64.5 7t71.5 29.5t58.5 62.5t24.5 108v444q0 68 -24.5 108t-58.5 61.5t-71.5 28.5t-64.5 7t-64.5 -7t-72.5 -28.5t-59.5 -61.5t-24.5 -108v-444z" />
-<glyph unicode="&#xf5;" d="M115 281v473q0 94 34.5 151.5t84 88t102.5 40.5t92 10t92 -10t102.5 -40.5t84 -88t34.5 -151.5v-473q0 -94 -34.5 -151.5t-84 -89.5t-102.5 -42t-92 -10t-92 10t-102.5 42t-84 89t-34.5 152zM127 1341h561l47 -102h-557zM207 295q0 -68 24.5 -108t59.5 -62.5t72.5 -29.5 t64.5 -7t64.5 7t71.5 29.5t58.5 62.5t24.5 108v444q0 68 -24.5 108t-58.5 61.5t-71.5 28.5t-64.5 7t-64.5 -7t-72.5 -28.5t-59.5 -61.5t-24.5 -108v-444z" />
-<glyph unicode="&#xf6;" d="M115 281v473q0 94 34.5 151.5t84 88t102.5 40.5t92 10t92 -10t102.5 -40.5t84 -88t34.5 -151.5v-473q0 -94 -34.5 -151.5t-84 -89.5t-102.5 -42t-92 -10t-92 10t-102.5 42t-84 89t-34.5 152zM166 1229v157h119v-157h-119zM207 295q0 -68 24.5 -108t59.5 -62.5t72.5 -29.5 t64.5 -7t64.5 7t71.5 29.5t58.5 62.5t24.5 108v444q0 68 -24.5 108t-58.5 61.5t-71.5 28.5t-64.5 7t-64.5 -7t-72.5 -28.5t-59.5 -61.5t-24.5 -108v-444zM571 1229v157h119v-157h-119z" />
-<glyph unicode="&#xf7;" horiz-adv-x="931" d="M116 369v131h703v-131h-703zM404 2v180h141v-180h-141zM406 657v185h141v-185h-141z" />
-<glyph unicode="&#xf8;" horiz-adv-x="858" d="M115 281v473q0 94 34.5 151.5t84 88t102.5 40.5t92 10t92 -10t102.5 -40.5t84 -88t34.5 -151.5v-473q0 -94 -34.5 -151.5t-84 -89.5t-102.5 -42t-92 -10t-92 10t-102.5 42t-84 89t-34.5 152zM207 295q0 -68 24.5 -108t59.5 -62.5t72.5 -29.5t64.5 -7t64.5 7t71.5 29.5 t58.5 62.5t24.5 108v444q0 68 -24.5 108t-58.5 61.5t-71.5 28.5t-64.5 7t-64.5 -7t-72.5 -28.5t-59.5 -61.5t-24.5 -108v-444zM262 -180l207 1430h123l-207 -1430h-123z" />
-<glyph unicode="&#xf9;" horiz-adv-x="884" d="M125 362v662h106v-725q0 -53 15.5 -93t41 -66.5t58.5 -41t68 -14.5q66 0 132 23.5t103 50.5v866h105v-922l45 -43l-74 -73l-61 61q-59 -33 -127 -48t-121 -15q-74 0 -145.5 38t-112.5 130q-25 51 -29 103t-4 107zM166 1507h125l198 -301h-106z" />
-<glyph unicode="&#xfa;" horiz-adv-x="884" d="M125 362v662h106v-725q0 -53 15.5 -93t41 -66.5t58.5 -41t68 -14.5q66 0 132 23.5t103 50.5v866h105v-922l45 -43l-74 -73l-61 61q-59 -33 -127 -48t-121 -15q-74 0 -145.5 38t-112.5 130q-25 51 -29 103t-4 107zM367 1208l198 301h125l-217 -301h-106z" />
-<glyph unicode="&#xfb;" horiz-adv-x="884" d="M125 362v662h106v-725q0 -53 15.5 -93t41 -66.5t58.5 -41t68 -14.5q66 0 132 23.5t103 50.5v866h105v-922l45 -43l-74 -73l-61 61q-59 -33 -127 -48t-121 -15q-74 0 -145.5 38t-112.5 130q-25 51 -29 103t-4 107zM176 1282l205 256h113l205 -256h-101l-159 166l-160 -166 h-103z" />
-<glyph unicode="&#xfc;" horiz-adv-x="884" d="M125 362v662h106v-725q0 -53 15.5 -93t41 -66.5t58.5 -41t68 -14.5q66 0 132 23.5t103 50.5v866h105v-922l45 -43l-74 -73l-61 61q-59 -33 -127 -48t-121 -15q-74 0 -145.5 38t-112.5 130q-25 51 -29 103t-4 107zM182 1229v157h119v-157h-119zM587 1229v157h119v-157 h-119z" />
-<glyph unicode="&#xfd;" horiz-adv-x="768" d="M45 1024h105q53 -225 95 -382t70 -257q33 -117 56 -192h24q18 76 49 192q27 100 69 257t105 382h105l-274 -1024h-13l-84 -512h-104l84 512h-15zM316 1208l198 301h125l-217 -301h-106z" />
-<glyph unicode="&#xfe;" horiz-adv-x="858" d="M131 -512v1944h2h100h3v-447q82 43 141 50t94 7q57 0 106.5 -22.5t86 -62t58 -92t21.5 -111.5v-484q0 -59 -21.5 -111.5t-58 -91t-86 -61t-106.5 -22.5q-43 0 -107.5 10t-130.5 43v-549h-102zM238 143q59 -31 114.5 -45t120.5 -14q35 0 65.5 14.5t53 39t36 56t13.5 68.5 v498q0 74 -49 126t-121 52q-49 0 -117.5 -17.5t-115.5 -54.5v-723z" />
-<glyph unicode="&#xff;" horiz-adv-x="768" d="M45 1024h105q53 -225 95 -382t70 -257q33 -117 56 -192h24q18 76 49 192q27 100 69 257t105 382h105l-274 -1024h-13l-84 -512h-104l84 512h-15zM125 1229v157h119v-157h-119zM530 1229v157h119v-157h-119z" />
-<glyph unicode="&#x152;" horiz-adv-x="1480" d="M139 373v717q0 45 17.5 110.5t62.5 125.5t121 103.5t192 43.5q96 0 164 -31t115 -78v90h578v-117h-461v-536h360v-119h-360v-541h465v-118h-582v79q-47 -43 -114.5 -71.5t-166.5 -28.5q-115 0 -190.5 41t-119.5 99.5t-62.5 122t-18.5 108.5zM250 371q0 -82 31.5 -130 t76.5 -74t93.5 -33t80.5 -7q31 0 75 7t87 28.5t76 62.5t41 111v792q-8 70 -41 113t-76 66.5t-87 32t-75 8.5q-33 0 -81 -10.5t-93 -38t-76.5 -78t-31.5 -131.5v-719z" />
-<glyph unicode="&#x153;" horiz-adv-x="1368" d="M115 276v474q0 94 34.5 151t84 88t102.5 41t92 10t92 -10t102.5 -41t84 -88t34.5 -151v-474q0 -94 -34.5 -151t-84 -89t-102.5 -42t-92 -10t-92 10t-102.5 42t-84 89t-34.5 151zM207 291q0 -68 24.5 -108t59.5 -62.5t72.5 -29.5t64.5 -7t64.5 7t71.5 29.5t58.5 62.5 t24.5 108v444q0 68 -24.5 108t-58.5 61.5t-71.5 28.5t-64.5 7t-64.5 -7t-72.5 -28.5t-59.5 -61.5t-24.5 -108v-444zM647 301v453q0 61 21.5 114.5t59.5 92t88 61t110 22.5h69q57 0 108.5 -22.5t90.5 -61t60.5 -92t21.5 -114.5v-68q0 -86 -31 -144.5t-84 -95t-123.5 -52 t-150.5 -15.5q-33 0 -66 2t-67 6v-123q14 -82 76.5 -130t142.5 -48q20 0 65 8t92 19q53 12 115 28l25 -106q-66 -16 -123 -27q-49 -10 -98.5 -18t-75.5 -8q-66 0 -125.5 23.5t-104.5 66.5t-70.5 101t-25.5 128zM754 496l241 -2h4q37 0 68 15t53.5 40.5t35.5 58.5t13 70v86 q0 49 -18 83t-48 54.5t-70 29.5t-83 9q-39 0 -74.5 -12.5t-62.5 -35t-43 -55t-16 -73.5v-268z" />
-<glyph unicode="&#x178;" horiz-adv-x="886" d="M31 1434h114l281 -660h35l280 660h115l-324 -783h-28v-651h-123v651h-25zM188 1639v157h119v-157h-119zM593 1639v157h119v-157h-119z" />
-<glyph unicode="&#x2c6;" horiz-adv-x="811" d="M143 1282l205 256h113l205 -256h-101l-159 166l-160 -166h-103z" />
-<glyph unicode="&#x2dc;" horiz-adv-x="1017" d="M205 1341h561l47 -102h-557z" />
-<glyph unicode="&#x2000;" horiz-adv-x="974" />
-<glyph unicode="&#x2001;" horiz-adv-x="1948" />
-<glyph unicode="&#x2002;" horiz-adv-x="974" />
-<glyph unicode="&#x2003;" horiz-adv-x="1948" />
-<glyph unicode="&#x2004;" horiz-adv-x="649" />
-<glyph unicode="&#x2005;" horiz-adv-x="487" />
-<glyph unicode="&#x2006;" horiz-adv-x="324" />
-<glyph unicode="&#x2007;" horiz-adv-x="324" />
-<glyph unicode="&#x2008;" horiz-adv-x="243" />
-<glyph unicode="&#x2009;" horiz-adv-x="389" />
-<glyph unicode="&#x200a;" horiz-adv-x="108" />
-<glyph unicode="&#x2010;" horiz-adv-x="741" d="M125 662v131h491v-131h-491z" />
-<glyph unicode="&#x2011;" horiz-adv-x="741" d="M125 662v131h491v-131h-491z" />
-<glyph unicode="&#x2012;" horiz-adv-x="741" d="M125 662v131h491v-131h-491z" />
-<glyph unicode="&#x2013;" horiz-adv-x="948" d="M121 428v111h702v-111h-702z" />
-<glyph unicode="&#x2014;" horiz-adv-x="1503" d="M121 428v111h1257v-111h-1257z" />
-<glyph unicode="&#x201a;" horiz-adv-x="382" d="M84 756q35 16 61.5 54t26.5 112v104h119v-106q0 -115 -47 -184.5t-125 -102.5z" />
-<glyph unicode="&#x201c;" horiz-adv-x="647" d="M100 1044v107q0 115 47.5 184.5t124.5 102.5l35 -123q-35 -16 -61.5 -54t-26.5 -112v-105h-119zM369 1044v107q0 115 47 184.5t125 102.5l34 -123q-35 -16 -61.5 -54t-26.5 -112v-105h-118z" />
-<glyph unicode="&#x201d;" horiz-adv-x="638" d="M76 1163q35 16 61.5 54t26.5 112v105h119v-107q0 -115 -47.5 -184.5t-124.5 -102.5zM344 1163q35 16 61.5 54t26.5 112v105h119v-107q0 -115 -47 -184.5t-125 -102.5z" />
-<glyph unicode="&#x2022;" horiz-adv-x="606" d="M92 506q0 43 16.5 82t45 68.5t67.5 46t82 16.5t82 -16.5t68.5 -46t46 -68.5t16.5 -82t-16.5 -82t-46 -68.5t-68.5 -46t-82 -16.5t-82 16.5t-67.5 46t-45 68.5t-16.5 82z" />
-<glyph unicode="&#x2026;" horiz-adv-x="1030" d="M115 10v180h141v-180h-141zM444 10v180h142v-180h-142zM774 10v180h141v-180h-141z" />
-<glyph unicode="&#x202f;" horiz-adv-x="389" />
-<glyph unicode="&#x205f;" horiz-adv-x="487" />
-<glyph unicode="&#x20ac;" horiz-adv-x="952" d="M86 512v90h147v156h-147v90h147v231q0 59 21.5 110.5t58.5 89.5t86.5 59.5t106.5 21.5h67q55 0 104.5 -21.5t86.5 -59.5t58.5 -89t21.5 -111v-47h-105v47q0 82 -57 126t-133 44q-43 0 -81 -8t-66.5 -28.5t-46 -52.5t-17.5 -81v-231h313v-90h-313v-156h313v-90h-313v-225 q0 -74 48 -126t120 -52h65q70 0 119 52t49 126v47h105v-53q0 -59 -21.5 -110.5t-58.5 -89.5t-86 -59.5t-107 -21.5h-67q-57 0 -106.5 21.5t-86.5 59.5t-57.5 89t-20.5 111v231h-147z" />
-<glyph unicode="&#x2122;" horiz-adv-x="1138" d="M117 1384v50h348v-50h-148v-591h-49v591h-151zM575 793v641h80l119 -400h14l121 400h80v-641h-49v532h-12l-107 -344h-80l-106 344h-12v-532h-48z" />
-<glyph unicode="&#xe000;" horiz-adv-x="1024" d="M0 0v1024h1024v-1024h-1024z" />
-<glyph unicode="&#xfb01;" horiz-adv-x="948" d="M51 924v100h182v160q0 72 18.5 123t50.5 82.5t76 47t95 15.5h37v-111h-27q-57 0 -101 -30.5t-44 -112.5v-174h479v-1024h-108v924h-369v-924h-109v924h-180zM709 1274v160h108v-160h-108z" />
-<glyph unicode="&#xfb02;" horiz-adv-x="999" d="M51 924v100h182v160q0 72 18.5 123t50.5 82.5t76 47t95 15.5h37v-111h-27q-57 0 -101 -30.5t-44 -112.5v-174h371v410h106v-1174q0 -84 42 -115.5t101 -31.5h27v-111h-37q-51 0 -95 15.5t-76 47t-50 82.5t-18 123v654h-369v-924h-109v924h-180z" />
-</font>
-</defs></svg> 
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.ttf b/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.ttf
deleted file mode 100644
index d5a74aa443599e53c460081f4b2324fab92944f4..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.ttf and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.woff b/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.woff
deleted file mode 100644
index ed785d30386afa962bc77e1d6a080d98e0ffc5ad..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/marvel/marvel-400-normal-webfont.woff and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.eot b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.eot
deleted file mode 100644
index e22984c8074248543b6c0886af2e8037ca751861..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.eot and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.svg b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.svg
deleted file mode 100644
index 6cdfecda0803d3271edee579817564209f419d8a..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.svg
+++ /dev/null
@@ -1,245 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="source_sans_prolight" horiz-adv-x="980" >
-<font-face units-per-em="2048" ascent="1536" descent="-512" />
-<missing-glyph horiz-adv-x="407" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="682" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode="&#xd;" horiz-adv-x="407" />
-<glyph unicode=" "  horiz-adv-x="407" />
-<glyph unicode="&#x09;" horiz-adv-x="407" />
-<glyph unicode="&#xa0;" horiz-adv-x="407" />
-<glyph unicode="!" horiz-adv-x="530" d="M178 68q0 45 26.5 69.5t61.5 24.5t60.5 -24.5t25.5 -69.5q0 -43 -25.5 -68t-60.5 -25t-61.5 25t-26.5 68zM219 1227v145h94l-2 -145l-12 -860h-68z" />
-<glyph unicode="&#x22;" horiz-adv-x="737" d="M170 1419h104v-141l-18 -301h-68l-16 301zM459 1419h104v-141l-18 -301h-68l-16 301z" />
-<glyph unicode="#" d="M74 438v74h178l43 348h-180v74h188l51 397h72l-51 -397h305l53 397h70l-51 -397h168v-74h-175l-43 -348h177v-74h-187l-51 -438h-72l52 438h-306l-53 -438h-72l54 438h-170zM324 512h307l43 348h-307z" />
-<glyph unicode="$" d="M121 135l49 64q59 -53 141 -98.5t189 -45.5q129 0 197.5 70t68.5 182q0 100 -44 162.5t-109.5 107t-142.5 79t-142.5 79.5t-109.5 109.5t-44 169.5q0 63 21.5 118.5t59.5 97.5t91 68.5t117 32.5v203h80v-203q100 -6 163.5 -47t116.5 -96l-53 -58q-29 29 -56.5 51.5 t-58 39t-67.5 24.5t-84 8q-106 0 -172 -66.5t-66 -168.5q0 -90 44 -144.5t109.5 -94.5t142.5 -73.5t142.5 -82t109.5 -121t44 -189.5q0 -147 -89 -235t-226 -101v-202h-80v202q-106 8 -194.5 54.5t-147.5 103.5z" />
-<glyph unicode="%" horiz-adv-x="1648" d="M82 952q0 205 77 313.5t212 108.5t211.5 -108.5t76.5 -313.5q0 -207 -76.5 -316.5t-211.5 -109.5t-212 110t-77 316zM162 952q0 -172 56.5 -265t152.5 -93t152.5 93t56.5 265t-56.5 263.5t-152.5 91.5t-152.5 -91.5t-56.5 -263.5zM405 -25l754 1399h78l-752 -1399h-80z M989 401q0 205 77 313.5t212 108.5t211.5 -108.5t76.5 -313.5q0 -207 -76.5 -316.5t-211.5 -109.5t-212 110t-77 316zM1069 401q0 -172 56.5 -265t152.5 -93t152.5 93t56.5 265t-56.5 263.5t-152.5 91.5t-152.5 -91.5t-56.5 -263.5z" />
-<glyph unicode="&#x26;" horiz-adv-x="1177" d="M74 342q0 68 23.5 123t61.5 103t88 90t103 81q-41 86 -65.5 171t-24.5 163q0 66 20.5 121t57.5 95t88 62.5t113 22.5q111 0 168 -69.5t57 -176.5q0 -66 -26.5 -121t-70.5 -103t-100.5 -92t-113.5 -87q72 -129 171 -250t203 -213q72 92 125.5 204t87.5 241h88 q-41 -139 -99 -265.5t-140 -230.5q72 -57 137.5 -95t124.5 -61l-31 -80q-133 47 -289 170q-74 -76 -163.5 -123t-204.5 -47q-80 0 -151.5 26t-124 74t-83 115.5t-30.5 151.5zM166 348q0 -68 24.5 -122t65.5 -92t97.5 -59.5t117.5 -21.5q84 0 160 40t139 106 q-109 98 -210 221t-173 254q-45 -35 -85 -72t-70.5 -77t-48 -84t-17.5 -93zM344 1077q0 -68 20.5 -140.5t55.5 -145.5q51 37 98 73.5t84 77.5t58.5 85t21.5 97q0 33 -8 65t-25.5 56.5t-45.5 39.5t-68 15q-90 0 -140.5 -65.5t-50.5 -157.5z" />
-<glyph unicode="'" horiz-adv-x="448" d="M170 1419h104v-141l-18 -301h-68l-16 301z" />
-<glyph unicode="(" horiz-adv-x="571" d="M180 569q0 270 72 496.5t199 431.5l55 -33q-123 -195 -184.5 -423t-61.5 -472t61.5 -472t184.5 -423l-55 -32q-127 205 -199 431t-72 496z" />
-<glyph unicode=")" horiz-adv-x="571" d="M66 -326q123 195 184 423.5t61 471.5q0 244 -61.5 472.5t-183.5 422.5l55 33q125 -205 197.5 -431t72.5 -497q0 -270 -72.5 -496.5t-197.5 -430.5z" />
-<glyph unicode="*" horiz-adv-x="808" d="M143 1241l19 62l194 -54l15 209h65l15 -207l194 52l21 -62l-185 -74l111 -180l-55 -41l-131 170l-136 -170l-55 41l113 180z" />
-<glyph unicode="+" d="M70 637v78h379v411h83v-411h379v-78h-379v-412h-83v412h-379z" />
-<glyph unicode="," horiz-adv-x="448" d="M98 -256q70 37 113 99.5t45 148.5q-8 -2 -25 -2q-35 0 -60.5 22.5t-25.5 63.5t27 63.5t61 22.5q47 0 76 -39t29 -107q0 -113 -59.5 -198.5t-151.5 -134.5z" />
-<glyph unicode="-" horiz-adv-x="612" d="M82 471v80h450v-80h-450z" />
-<glyph unicode="." horiz-adv-x="448" d="M137 68q0 45 26.5 69.5t61.5 24.5t60.5 -24.5t25.5 -69.5q0 -43 -25.5 -68t-60.5 -25t-61.5 25t-26.5 68z" />
-<glyph unicode="/" horiz-adv-x="731" d="M18 -328l625 1782h78l-623 -1782h-80z" />
-<glyph unicode="0" d="M98 659q0 328 101.5 501t289.5 173t290 -173t102 -501q0 -330 -102 -507t-290 -177t-289.5 177.5t-101.5 506.5zM190 659q0 -301 82 -453.5t217 -152.5q137 0 218 152.5t81 453.5t-80.5 448.5t-218.5 147.5q-135 0 -217 -147t-82 -449z" />
-<glyph unicode="1" d="M172 0v80h307v1085h-233v62q80 14 142.5 34.5t109.5 47.5h73v-1229h285v-80h-684z" />
-<glyph unicode="2" d="M80 1141q74 82 163 137t210 55q176 0 272 -100t96 -266q0 -98 -43 -195.5t-120.5 -205t-189.5 -229.5t-247 -265q53 4 109.5 7t109.5 3h447v-82h-803v57q162 164 282.5 294t201.5 237.5t121 199t40 177.5q0 123 -68.5 206.5t-216.5 83.5q-90 0 -167.5 -49t-137.5 -123z " />
-<glyph unicode="3" d="M59 160l54 63q29 -33 63.5 -62.5t78.5 -53t98.5 -38t121.5 -14.5q66 0 122 20.5t97 58.5t63.5 91.5t22.5 118.5q0 68 -25.5 123t-81 95t-141.5 62.5t-208 22.5v80q113 0 191.5 22.5t126.5 60.5t69.5 90t21.5 112q0 111 -71.5 177t-192.5 66q-92 0 -168 -42t-133 -101 l-53 62q68 66 153.5 112.5t200.5 46.5q76 0 141.5 -21.5t113.5 -61.5t75.5 -98t27.5 -134q0 -129 -70.5 -208t-178.5 -116v-8q61 -12 114 -42t94 -73t64.5 -99t23.5 -126q0 -86 -30.5 -154.5t-84.5 -116.5t-127 -74t-157 -26q-78 0 -141.5 16.5t-113.5 43t-90 59.5t-71 66z " />
-<glyph unicode="4" d="M33 391v53l608 865h82v-840h195v-78h-195v-391h-88v391h-602zM143 469h492v479q0 45 2 112.5t6 113.5h-8q-25 -41 -51.5 -80t-55.5 -84z" />
-<glyph unicode="5" d="M53 152l51 63q29 -31 64 -59.5t78 -51t96 -36t121 -13.5q66 0 125 25.5t103 72t70.5 111t26.5 144.5q0 160 -86 248.5t-233 88.5q-76 0 -130 -23.5t-114 -64.5l-63 39l47 613h604v-80h-522l-41 -473q51 31 106.5 50t126.5 19q82 0 156 -24.5t127 -74.5t85 -129t32 -185 q0 -104 -36 -185.5t-94.5 -137.5t-133 -85t-154.5 -29q-78 0 -140.5 15.5t-112.5 41t-89 57.5t-70 63z" />
-<glyph unicode="6" d="M106 594q0 205 40 346t106.5 229t154 126t181.5 38q92 0 158.5 -34.5t117.5 -92.5l-55 -61q-43 53 -100.5 80.5t-120.5 27.5q-78 0 -147.5 -32.5t-123 -108.5t-85 -200t-33.5 -304q68 84 152.5 133.5t176.5 49.5q174 0 269.5 -103.5t95.5 -302.5q0 -90 -28.5 -165 t-78 -129t-114 -85t-137.5 -31q-199 0 -314 160t-115 459zM201 516q6 -104 29.5 -189t64.5 -145.5t101.5 -94.5t140.5 -34q57 0 105 25.5t83 71t55.5 105.5t20.5 130t-16.5 130t-50.5 104.5t-88 69t-128 24.5q-70 0 -153.5 -44t-163.5 -153z" />
-<glyph unicode="7" d="M90 1229v80h805v-54q-117 -156 -193.5 -299t-123 -291.5t-66.5 -310t-29 -354.5h-98q8 199 33.5 363.5t73 311t119 281t169.5 273.5h-690z" />
-<glyph unicode="8" d="M82 336q0 66 23.5 123t61.5 103t84 82t93 61v8q-37 25 -70.5 54.5t-59.5 67t-42 82t-16 97.5q0 70 26.5 129t72.5 101t108.5 65.5t134.5 23.5q84 0 149.5 -25.5t111.5 -71.5t69.5 -108.5t23.5 -136.5q0 -53 -18.5 -103t-46 -93t-60.5 -78t-61 -58v-8q43 -27 84 -57.5 t72.5 -69.5t52 -90t20.5 -117q0 -72 -28.5 -134t-81 -108t-126 -73t-161.5 -27q-90 0 -166 28t-131.5 76t-87 113.5t-31.5 143.5zM172 340q0 -61 24.5 -113.5t67.5 -91.5t102.5 -61.5t131.5 -22.5q70 0 126 20.5t96 57.5t61.5 86t21.5 104q0 76 -34 128.5t-90 92.5 t-128 69.5t-148 60.5q-100 -59 -165.5 -140t-65.5 -190zM246 1014q0 -70 29.5 -120t78.5 -88t111.5 -66.5t128.5 -53.5q84 68 128 142.5t44 160.5q0 55 -18.5 103.5t-52 85t-84 58t-113.5 21.5q-55 0 -101.5 -18t-80 -50t-52 -77t-18.5 -98z" />
-<glyph unicode="9" d="M88 926q0 88 28.5 163.5t78 129t114 84t137.5 30.5q197 0 311.5 -158.5t114.5 -457.5q0 -207 -39.5 -348.5t-105 -228.5t-154 -126t-182.5 -39q-92 0 -159.5 35t-116.5 92l55 62q43 -53 100.5 -81t122.5 -28q78 0 147.5 33t123 108.5t85 199.5t33.5 304 q-68 -82 -153.5 -131t-177.5 -49q-172 0 -267.5 103.5t-95.5 302.5zM178 926q0 -72 16.5 -132.5t51.5 -104.5t88 -68.5t129 -24.5q70 0 153.5 46t163.5 153q-6 104 -29.5 189t-65.5 145.5t-102.5 93t-140.5 32.5q-55 0 -104 -25.5t-84 -69.5t-55.5 -104.5t-20.5 -129.5z" />
-<glyph unicode=":" horiz-adv-x="448" d="M137 68q0 45 26.5 69.5t61.5 24.5t60.5 -24.5t25.5 -69.5q0 -43 -25.5 -68t-60.5 -25t-61.5 25t-26.5 68zM137 850q0 45 26.5 69.5t61.5 24.5t60.5 -24.5t25.5 -69.5q0 -43 -25.5 -68t-60.5 -25t-61.5 25t-26.5 68z" />
-<glyph unicode=";" horiz-adv-x="448" d="M98 -256q70 37 113 99.5t45 148.5q-8 -2 -25 -2q-35 0 -60.5 22.5t-25.5 63.5t27 63.5t61 22.5q47 0 76 -39t29 -107q0 -113 -59.5 -198.5t-151.5 -134.5zM137 850q0 45 26.5 69.5t61.5 24.5t60.5 -24.5t25.5 -69.5q0 -43 -25.5 -68t-60.5 -25t-61.5 25t-26.5 68z" />
-<glyph unicode="&#x3c;" d="M70 635v90l841 336v-88l-475 -185l-272 -104v-8l272 -105l475 -184v-88z" />
-<glyph unicode="=" d="M70 430v78h841v-78h-841zM70 846v78h841v-78h-841z" />
-<glyph unicode="&#x3e;" d="M70 299v88l475 184l272 105v8l-272 104l-475 185v88l841 -336v-90z" />
-<glyph unicode="?" horiz-adv-x="823" d="M76 1237q59 68 139 114t186 46q76 0 135.5 -23.5t100.5 -65.5t62.5 -99.5t21.5 -125.5q0 -70 -25.5 -128t-62.5 -111t-79 -105.5t-76 -109t-53 -121t-9 -141.5h-82q-12 84 5 152.5t50 127t74 109.5t78 101t61.5 103.5t24.5 116.5q0 47 -13.5 91t-42 77t-72.5 52.5 t-104 19.5q-76 0 -144.5 -34t-119.5 -97zM295 68q0 45 25.5 69.5t60.5 24.5t61.5 -24.5t26.5 -69.5q0 -43 -26.5 -68t-61.5 -25t-60.5 25t-25.5 68z" />
-<glyph unicode="@" horiz-adv-x="1667" d="M106 414q0 201 67 363.5t178.5 278t259 178t309.5 62.5q147 0 267 -47t203 -132t128 -204.5t45 -265.5q0 -131 -35 -230.5t-90.5 -167t-122 -101t-129.5 -33.5q-82 0 -136.5 37.5t-62.5 117.5h-4q-53 -59 -115.5 -101t-134.5 -42q-47 0 -90 17.5t-74.5 52t-50 87 t-18.5 122.5q0 74 25.5 155.5t74.5 149t120 111.5t161 44q109 0 170 -98h4l18 82h70l-74 -387q-70 -276 123 -277q49 0 101.5 31t94.5 89.5t69.5 142t27.5 192.5q0 131 -40 239.5t-114 184.5t-179 118t-239 42q-141 0 -272 -57.5t-232.5 -163t-163 -254t-61.5 -330.5 q0 -150 45 -269.5t126 -202.5t195 -128t251 -45q102 0 186 26.5t158 71.5l33 -61q-176 -111 -383 -111q-147 0 -273.5 48t-218.5 139.5t-144.5 223.5t-52.5 302zM582 412q0 -117 47 -164t116 -47q102 0 222 137l63 354q-37 57 -70.5 79t-80.5 22q-70 0 -125.5 -36t-93 -91.5 t-58 -123t-20.5 -130.5z" />
-<glyph unicode="A" horiz-adv-x="1062" d="M8 0l477 1350h95l475 -1350h-101l-157 463h-535l-158 -463h-96zM291 543h479l-86 252q-41 121 -78 231.5t-71 235.5h-9q-35 -125 -71.5 -236t-77.5 -231z" />
-<glyph unicode="B" horiz-adv-x="1169" d="M193 0v1350h364q203 0 323.5 -80t120.5 -248q0 -106 -59 -185t-180 -110v-8q150 -23 236.5 -103.5t86.5 -222.5q0 -98 -35.5 -172t-101 -123t-158 -73.5t-206.5 -24.5h-391zM287 78h272q203 0 317.5 75.5t114.5 239.5q0 145 -112.5 216t-319.5 71h-272v-602zM287 756h231 q209 0 299 67.5t90 200.5q0 131 -95 189.5t-282 58.5h-243v-516z" />
-<glyph unicode="C" horiz-adv-x="1140" d="M104 678q0 160 42 289t118 220t182.5 139t235.5 48q119 0 208 -49t142 -113l-55 -61q-55 61 -129 99t-166 38q-111 0 -200 -43t-150.5 -122t-95 -191.5t-33.5 -253.5t32.5 -255t94 -193.5t148.5 -124t196 -44.5q104 0 186 41t156 125l55 -59q-78 -90 -173 -141.5 t-228 -51.5q-125 0 -228.5 49.5t-178.5 140.5t-117 221t-42 292z" />
-<glyph unicode="D" horiz-adv-x="1226" d="M193 0v1350h311q156 0 271.5 -47.5t191 -135.5t113.5 -210.5t38 -276.5t-38 -280t-113.5 -215t-190 -137t-270.5 -48h-313zM287 80h207q137 0 236 44t163.5 124t95.5 189.5t31 242.5q0 131 -31 239.5t-95.5 186.5t-163.5 121t-236 43h-207v-1190z" />
-<glyph unicode="E" horiz-adv-x="1038" d="M193 0v1350h737v-82h-643v-510h540v-82h-540v-594h663v-82h-757z" />
-<glyph unicode="F" horiz-adv-x="960" d="M193 0v1350h735v-82h-641v-537h540v-82h-540v-649h-94z" />
-<glyph unicode="G" horiz-adv-x="1222" d="M104 678q0 160 43 289t122 220t189.5 139t243.5 48q68 0 124.5 -14t101.5 -38t79.5 -52.5t61.5 -57.5l-55 -61q-53 57 -127 97t-185 40q-117 0 -209 -43t-156.5 -122t-99 -191.5t-34.5 -253.5t32.5 -255t96 -193.5t155 -124t205.5 -44.5q92 0 172 27t129 76v420h-321v80 h411v-535q-63 -68 -164.5 -111t-234.5 -43q-129 0 -236.5 49.5t-183.5 140.5t-118 221t-42 292z" />
-<glyph unicode="H" horiz-adv-x="1294" d="M193 0v1350h94v-592h721v592h94v-1350h-94v676h-721v-676h-94z" />
-<glyph unicode="I" horiz-adv-x="477" d="M193 0v1350h94v-1350h-94z" />
-<glyph unicode="J" horiz-adv-x="931" d="M76 174l71 47q51 -86 113 -123t148 -37q123 0 183 75t60 241v973h94v-983q0 -82 -18 -153t-58 -124t-103.5 -84t-155.5 -31q-115 0 -198 51.5t-136 147.5z" />
-<glyph unicode="K" horiz-adv-x="1128" d="M193 0v1350h94v-750h4l653 750h111l-430 -500l489 -850h-108l-445 778l-274 -313v-465h-94z" />
-<glyph unicode="L" horiz-adv-x="942" d="M193 0v1350h94v-1268h620v-82h-714z" />
-<glyph unicode="M" horiz-adv-x="1431" d="M193 0v1350h131l282 -793l107 -299h8l104 299l281 793h133v-1350h-92v887q0 84 4 181t8 183h-8l-104 -297l-291 -807h-82l-291 807l-107 297h-8q4 -86 7.5 -183t3.5 -181v-887h-86z" />
-<glyph unicode="N" horiz-adv-x="1288" d="M193 0v1350h98l567 -953l154 -268h8q-4 98 -8 196.5t-4 196.5v828h88v-1350h-99l-567 952l-154 269h-8q4 -98 8.5 -191.5t4.5 -191.5v-838h-88z" />
-<glyph unicode="O" horiz-adv-x="1320" d="M104 680q0 160 41 288t115 219t176.5 139t225.5 48q121 0 223 -48t176 -139t115 -219t41 -288t-41 -290t-115 -222t-176 -142.5t-223 -50.5q-123 0 -225.5 50.5t-176.5 142.5t-115 222t-41 290zM203 680q0 -141 32.5 -255t93 -194.5t146 -125t187.5 -44.5t186 44.5 t144.5 125t93 194.5t32.5 255q0 139 -32.5 251.5t-93 191.5t-144.5 122t-186 43t-187.5 -43t-146 -122t-93 -191.5t-32.5 -251.5z" />
-<glyph unicode="P" horiz-adv-x="1128" d="M193 0v1350h368q113 0 202 -19.5t150.5 -64.5t94 -117t32.5 -176q0 -199 -127 -296t-352 -97h-274v-580h-94zM287 659h250q209 0 308 74t99 240q0 86 -25.5 142t-75.5 91t-127 49.5t-179 14.5h-250v-611z" />
-<glyph unicode="Q" horiz-adv-x="1320" d="M104 680q0 160 41 288t115 219t176.5 139t222.5 48q123 0 225.5 -48t176.5 -139t115 -219t41 -288q0 -152 -37 -276.5t-103.5 -216t-160 -145.5t-205.5 -65q47 -102 136 -155t216 -53q47 0 79 5t58 13l21 -82q-27 -8 -71 -15t-95 -7q-170 0 -284 83.5t-165 210.5 q-111 10 -203 64.5t-158.5 146t-103.5 216t-37 276.5zM203 680q0 -141 32.5 -255t92 -194.5t144.5 -125t187 -44.5t186.5 44.5t145 125t93 194.5t32.5 255q0 139 -32.5 251.5t-93 191.5t-144.5 122t-187 43q-102 0 -187 -43t-144.5 -122t-92 -191.5t-32.5 -251.5z" />
-<glyph unicode="R" horiz-adv-x="1132" d="M193 0v1350h385q100 0 182 -19.5t140 -62.5t90 -110.5t32 -164.5q0 -162 -93 -253t-253 -113l371 -627h-109l-365 621h-286v-621h-94zM287 698h266q180 0 275.5 73t95.5 222q0 152 -95.5 214.5t-275.5 62.5h-266v-572z" />
-<glyph unicode="S" horiz-adv-x="1052" d="M88 178l59 66q74 -84 176.5 -133.5t221.5 -49.5q154 0 245 75t91 196q0 63 -19.5 106t-52.5 75t-78 55.5t-94 45.5l-205 93q-43 18 -91 44.5t-88 66.5t-66.5 94.5t-26.5 129.5q0 74 29.5 134.5t82 104.5t124 68.5t155.5 24.5q123 0 219 -48t158 -114l-56 -63 q-59 63 -139 101t-182 38q-135 0 -216 -65.5t-81 -175.5q0 -59 22.5 -100.5t57.5 -71t76 -51t77 -38.5l205 -90q55 -25 106.5 -55.5t90.5 -71.5t62.5 -97t23.5 -134t-31 -144.5t-87 -114.5t-136 -76t-178 -28q-147 0 -261 56.5t-194 146.5z" />
-<glyph unicode="T" horiz-adv-x="1058" d="M53 1268v82h953v-82h-428v-1268h-95v1268h-430z" />
-<glyph unicode="U" horiz-adv-x="1284" d="M186 518v832h95v-822q0 -135 29.5 -224t78.5 -143.5t114.5 -77t137.5 -22.5q74 0 139.5 22.5t116.5 77t81 143.5t30 224v822h90v-832q0 -158 -39 -262t-102.5 -166.5t-146.5 -88.5t-169 -26q-88 0 -170 26t-145.5 88.5t-101.5 166.5t-38 262z" />
-<glyph unicode="V" horiz-adv-x="991" d="M2 1350h100l250 -789q18 -61 36 -116.5t34 -109.5t33.5 -109.5t38.5 -116.5h8q41 123 72.5 226t70.5 226l250 789h94l-440 -1350h-103z" />
-<glyph unicode="W" horiz-adv-x="1562" d="M49 1350h101l167 -795q25 -111 48.5 -220.5t46.5 -219.5h8q23 111 49.5 220t52.5 220l213 795h94l213 -795q27 -111 53.5 -220.5t53.5 -219.5h8q23 111 45.5 220t44.5 220l168 795h94l-303 -1350h-104l-246 926q-18 80 -35.5 152.5t-36.5 152.5h-8q-16 -80 -35.5 -152.5 t-38.5 -152.5l-241 -926h-105z" />
-<glyph unicode="X" horiz-adv-x="972" d="M29 0l403 698l-377 652h103l223 -398q27 -47 50.5 -88t57.5 -96h9q29 55 51 96t49 88l221 398h96l-376 -656l405 -694h-102l-236 414q-29 51 -58.5 102t-64.5 113h-8q-33 -61 -60.5 -112.5t-56.5 -102.5l-233 -414h-96z" />
-<glyph unicode="Y" horiz-adv-x="901" d="M-2 1350h100l205 -422q35 -74 70 -145.5t73 -145.5h9q39 74 75.5 145.5t71.5 145.5l205 422h96l-405 -803v-547h-95v547z" />
-<glyph unicode="Z" horiz-adv-x="1087" d="M94 0v55l778 1213h-708v82h825v-56l-776 -1212h784v-82h-903z" />
-<glyph unicode="[" horiz-adv-x="571" d="M201 -311v1761h327v-64h-256v-1638h256v-59h-327z" />
-<glyph unicode="\" horiz-adv-x="731" d="M10 1454h78l627 -1782h-82z" />
-<glyph unicode="]" horiz-adv-x="571" d="M43 -252h256v1638h-256v64h328v-1761h-328v59z" />
-<glyph unicode="^" d="M135 594l307 778h95l309 -778h-88l-158 416l-106 272h-9l-104 -272l-158 -416h-88z" />
-<glyph unicode="_" horiz-adv-x="1024" d="M25 -162h974v-78h-974v78z" />
-<glyph unicode="`" horiz-adv-x="1095" d="M367 1450h106l189 -279h-78z" />
-<glyph unicode="a" horiz-adv-x="1021" d="M133 246q0 162 153.5 248t481.5 122v20q0 46 -7 92q-9 56 -35 100t-72 72t-117 28q-100 0 -182.5 -39t-131.5 -76l-41 68q27 18 65 40.5t84 41t101 32t115 13.5q88 0 147.5 -30t96 -81t52 -119.5t15.5 -148.5v-629h-76l-10 127h-4q-76 -59 -163 -105.5t-185 -46.5 q-59 0 -110.5 16.5t-91.5 49.5t-62.5 84t-22.5 121zM227 250q0 -106 61.5 -151.5t145.5 -45.5q86 0 164 41t170 119v334q-152 -18 -255 -45t-166.5 -64t-91.5 -84t-28 -104z" />
-<glyph unicode="b" horiz-adv-x="1114" d="M188 0v1473h91v-426l-5 -193q76 63 162 108.5t178 45.5q197 0 295.5 -136.5t98.5 -365.5q0 -125 -35 -223.5t-95.5 -167t-139.5 -104.5t-165 -36q-72 0 -148.5 32t-145.5 85h-5l-10 -92h-76zM279 182q82 -70 157.5 -98.5t132.5 -28.5q74 0 137.5 33t108.5 92.5 t70.5 142.5t25.5 183q0 90 -17 168t-54 134t-96.5 88t-143.5 32q-74 0 -153.5 -42t-167.5 -120v-584z" />
-<glyph unicode="c" horiz-adv-x="919" d="M106 489q0 123 37 220.5t98.5 163t142.5 100.5t171 35q102 0 171 -37t118 -84l-53 -64q-47 45 -104.5 75t-129.5 30q-76 0 -140.5 -32t-112.5 -90t-75.5 -138t-27.5 -179q0 -96 25.5 -176t71.5 -137t112.5 -89t146.5 -32q78 0 144.5 33t117.5 80l47 -62q-63 -57 -141 -94 t-172 -37q-96 0 -177 35t-141.5 100.5t-94.5 160.5t-34 218z" />
-<glyph unicode="d" horiz-adv-x="1114" d="M106 489q0 119 35 215.5t95.5 164t139.5 103.5t167 36q90 0 156.5 -32t140.5 -89l-4 180v406h90v-1473h-78l-8 127h-6q-59 -59 -140.5 -105.5t-179.5 -46.5q-186 0 -297 132t-111 382zM203 489q0 -98 21.5 -178t62.5 -136t101.5 -88t137.5 -32q82 0 157 42t153 120v584 q-78 70 -146.5 98.5t-140.5 28.5q-74 0 -137.5 -34t-109.5 -92.5t-72.5 -139.5t-26.5 -173z" />
-<glyph unicode="e" horiz-adv-x="989" d="M106 489q0 121 36 217.5t96.5 163t137.5 102.5t159 36q176 0 276 -119t100 -336v-36.5t-4 -37.5h-708q2 -92 28.5 -171t74.5 -135t115.5 -88t151.5 -32q80 0 144.5 23.5t120.5 64.5l36 -69q-59 -35 -129.5 -66t-179.5 -31q-94 0 -177 35t-144.5 101.5t-97.5 161.5 t-36 216zM199 549h626q0 190 -77.5 285.5t-210.5 95.5q-63 0 -121 -26.5t-104 -76t-75.5 -120t-37.5 -158.5z" />
-<glyph unicode="f" horiz-adv-x="538" d="M68 905v70l135 8v219q0 147 63.5 221t179.5 74q72 0 144 -33l-25 -73q-31 16 -60.5 22t-58.5 6q-78 0 -115.5 -58t-37.5 -165v-213h227v-78h-227v-905h-90v905h-135z" />
-<glyph unicode="g" horiz-adv-x="997" d="M106 -201q0 66 39 127.5t107 110.5v8q-37 23 -61.5 61.5t-24.5 96.5q0 66 37 111.5t69 68.5v8q-47 41 -84.5 110.5t-37.5 160.5q0 76 26.5 139t73.5 109t110.5 72t135.5 26q41 0 73.5 -7.5t55.5 -17.5h333v-76h-229q47 -41 78 -105.5t31 -142.5q0 -76 -27 -139t-73 -109 t-108.5 -72t-133.5 -26q-41 0 -85 10.5t-79 30.5q-33 -27 -56.5 -59.5t-23.5 -81.5q0 -53 39 -91t149 -38h211q166 0 245 -54.5t79 -170.5q0 -63 -33 -124t-93.5 -107t-146.5 -73.5t-192 -27.5q-186 0 -295 73.5t-109 198.5zM193 -193q0 -92 84.5 -149t242.5 -57 q82 0 149.5 21.5t114.5 56t73 78.5t26 91q0 82 -58.5 116t-169.5 34h-211q-16 0 -50 3t-72 13q-68 -47 -98.5 -100.5t-30.5 -106.5zM240 662q0 -61 20.5 -112.5t56 -88.5t82 -56.5t97.5 -19.5t97 19.5t81 56.5t55.5 88t20.5 113q0 61 -20.5 112t-54.5 86t-81 54.5t-98 19.5 q-53 0 -99.5 -19.5t-81 -54.5t-55 -85t-20.5 -113z" />
-<glyph unicode="h" horiz-adv-x="1081" d="M188 0v1473h91v-426v-218q78 78 157.5 128.5t181.5 50.5q154 0 225.5 -92.5t71.5 -284.5v-631h-90v618q0 158 -52 233t-173 75q-88 0 -159.5 -46t-161.5 -139v-741h-91z" />
-<glyph unicode="i" horiz-adv-x="468" d="M154 1300q0 39 23.5 60.5t58.5 21.5t58 -21.5t23 -60.5q0 -35 -23 -57t-58 -22t-58.5 22.5t-23.5 56.5zM188 0v983h91v-983h-91z" />
-<glyph unicode="j" horiz-adv-x="468" d="M-68 -444l23 73q18 -6 46 -13t56 -7q82 0 106.5 60.5t24.5 154.5v1159h93v-1165q0 -145 -53.5 -216t-168.5 -71q-35 0 -69.5 7t-57.5 18zM154 1300q0 39 24.5 60.5t57.5 21.5q35 0 59 -21.5t24 -60.5q0 -35 -24 -57t-59 -22q-33 0 -57.5 22.5t-24.5 56.5z" />
-<glyph unicode="k" horiz-adv-x="950" d="M188 0v1473h91v-1086h4l485 596h104l-319 -389l373 -594h-101l-325 526l-221 -258v-268h-91z" />
-<glyph unicode="l" horiz-adv-x="485" d="M188 131v1342h91v-1354q0 -33 12 -48.5t31 -15.5h13t23 4l17 -73q-14 -4 -28.5 -7.5t-37.5 -3.5q-121 0 -121 156z" />
-<glyph unicode="m" horiz-adv-x="1662" d="M188 0v983h78l8 -152h7q66 76 146.5 126.5t162.5 50.5q119 0 182.5 -54.5t89.5 -146.5q86 92 167 146.5t167 54.5q295 0 295 -377v-631h-92v618q0 158 -53.5 233t-165.5 75q-133 0 -295 -185v-741h-90v618q0 158 -53.5 233t-168.5 75q-133 0 -294 -185v-741h-91z" />
-<glyph unicode="n" horiz-adv-x="1089" d="M188 0v983h78l8 -152h7q76 76 155.5 126.5t181.5 50.5q154 0 225.5 -92.5t71.5 -284.5v-631h-90v618q0 158 -52 233t-173 75q-88 0 -159.5 -46t-161.5 -139v-741h-91z" />
-<glyph unicode="o" horiz-adv-x="1095" d="M106 489q0 123 36 220.5t96.5 163t140.5 100.5t168 35t169 -35t141.5 -100.5t96 -163t35.5 -220.5t-35.5 -218t-96 -160.5t-141.5 -100.5t-169 -35t-168 35t-140.5 100.5t-96.5 160.5t-36 218zM201 489q0 -96 26.5 -176t72.5 -137t109.5 -89t137.5 -32t138.5 32t110.5 89 t72.5 137t26.5 176q0 98 -26.5 178.5t-72.5 138.5t-110.5 90t-138.5 32t-137.5 -32t-109.5 -90t-72.5 -138.5t-26.5 -178.5z" />
-<glyph unicode="p" horiz-adv-x="1114" d="M188 -444v1427h78l8 -123h7q72 57 156.5 102.5t176.5 45.5q197 0 295.5 -136.5t98.5 -365.5q0 -125 -35 -223.5t-95.5 -167t-139.5 -104.5t-165 -36q-70 0 -143.5 32t-150.5 89v-182v-358h-91zM279 182q86 -70 159.5 -98.5t130.5 -28.5q74 0 137.5 33t108.5 92.5 t70.5 142.5t25.5 183q0 90 -17 168t-54 134t-96.5 88t-143.5 32q-74 0 -152.5 -42t-168.5 -120v-584z" />
-<glyph unicode="q" horiz-adv-x="1099" d="M106 489q0 119 35 215.5t95.5 164t139.5 103.5t167 36q90 0 156.5 -31t136.5 -84h4l10 90h76v-1427h-90v378l4 191q-66 -59 -147 -104.5t-179 -45.5q-186 0 -297 132t-111 382zM203 489q0 -98 21.5 -178t62.5 -136t101.5 -88t137.5 -32q82 0 157 42t153 120v584 q-78 70 -146.5 98.5t-140.5 28.5q-74 0 -137.5 -34t-109.5 -92.5t-72.5 -139.5t-26.5 -173z" />
-<glyph unicode="r" horiz-adv-x="649" d="M188 0v983h78l8 -182h7q49 92 119.5 149.5t158.5 57.5q29 0 51.5 -5t46.5 -16l-20 -82q-25 10 -43.5 13.5t-46.5 3.5q-66 0 -138.5 -56.5t-129.5 -195.5v-670h-91z" />
-<glyph unicode="s" horiz-adv-x="829" d="M66 111l53 67q63 -53 135 -89t178 -36q117 0 175.5 58.5t58.5 136.5q0 45 -21.5 79.5t-56.5 59.5t-77 43.5t-85 34.5q-55 20 -111.5 42.5t-101.5 54.5t-72.5 76t-27.5 107q0 53 20.5 101.5t61.5 84.5t99 56.5t136 20.5t152.5 -29t128.5 -74l-49 -63q-49 37 -104.5 62.5 t-131.5 25.5q-57 0 -98 -15.5t-69 -40t-41 -57.5t-13 -65q0 -41 19.5 -71t52 -53.5t74.5 -41t85 -33.5q57 -23 114.5 -45.5t103.5 -55t75 -80.5t29 -120q0 -55 -21.5 -105.5t-64.5 -88.5t-104.5 -60.5t-141.5 -22.5q-111 0 -203 40t-157 96z" />
-<glyph unicode="t" horiz-adv-x="638" d="M57 905v70l156 8l12 285h78v-285h285v-78h-285v-641q0 -47 7 -85t25.5 -65.5t50.5 -43t83 -15.5q29 0 62.5 9.5t60.5 21.5l24 -74q-43 -16 -86 -26.5t-73 -10.5q-72 0 -119 21.5t-76 60.5t-40 94.5t-11 120.5v633h-154z" />
-<glyph unicode="u" horiz-adv-x="1083" d="M174 352v631h90v-618q0 -158 52.5 -233t170.5 -75q88 0 160 48.5t158 152.5v725h90v-983h-76l-10 164h-4q-72 -86 -152 -137.5t-182 -51.5q-154 0 -225.5 92.5t-71.5 284.5z" />
-<glyph unicode="v" horiz-adv-x="888" d="M25 983h98l221 -616q23 -72 49.5 -143.5t48.5 -139.5h9q25 68 50 139.5t50 143.5l221 616h92l-364 -983h-107z" />
-<glyph unicode="w" horiz-adv-x="1402" d="M49 983h98l177 -637q18 -68 34.5 -132t32.5 -130h8q16 66 35 130.5t37 131.5l178 637h109l178 -637q18 -68 36.5 -132t37.5 -130h8q16 66 34.5 130.5t34.5 131.5l175 637h92l-283 -983h-119l-172 610q-23 72 -38 140.5t-37 140.5h-9q-16 -72 -35.5 -142.5t-42.5 -142.5 l-169 -606h-109z" />
-<glyph unicode="x" horiz-adv-x="833" d="M29 0l333 514l-307 469h101l159 -250q25 -41 50.5 -81t54.5 -81h8q27 41 50.5 81t49.5 81l154 250h94l-305 -477l334 -506h-100l-175 268q-29 47 -57.5 92.5t-58.5 88.5h-8q-29 -43 -56.5 -88.5t-56.5 -92.5l-168 -268h-96z" />
-<glyph unicode="y" horiz-adv-x="892" d="M25 983h98l237 -618q23 -61 50.5 -135t56.5 -140h8q23 66 46.5 139.5t43.5 135.5l211 618h92l-389 -1106q-20 -61 -50 -119.5t-70 -104.5t-92 -74t-117 -28q-55 0 -101 21l21 80q16 -6 36.5 -11.5t43.5 -5.5q92 0 153.5 74t97.5 187l27 86z" />
-<glyph unicode="z" horiz-adv-x="827" d="M55 0v49l582 856h-518v78h635v-47l-580 -856h600v-80h-719z" />
-<glyph unicode="{" horiz-adv-x="571" d="M72 537v65q53 0 88 14.5t54 37t26.5 51t7.5 59.5q0 98 -8.5 208.5t-8.5 215.5q0 152 56.5 207t167.5 55h73v-64h-67q-92 0 -123 -49t-31 -157q0 -94 6 -194.5t6 -199.5q0 -92 -21.5 -143t-82.5 -70v-8q61 -18 82.5 -71.5t21.5 -141.5q0 -111 -6 -202t-6 -191 q0 -109 31 -160t123 -51h67v-59h-73q-55 0 -97.5 12t-70 42t-42 80t-14.5 128q0 115 8.5 214t8.5 206q0 31 -7.5 61.5t-26.5 53t-54 37t-88 14.5z" />
-<glyph unicode="|" horiz-adv-x="462" d="M195 -512v2048h73v-2048h-73z" />
-<glyph unicode="}" horiz-adv-x="571" d="M43 -252h63q94 0 126 51t32 160q0 100 -6 191.5t-6 201.5q0 88 22.5 141.5t81.5 71.5v8q-59 18 -81.5 69.5t-22.5 143.5q0 98 6 198.5t6 195.5q0 109 -31.5 157.5t-126.5 48.5h-63v64h70q113 0 170 -55.5t57 -206.5q0 -104 -8 -215t-8 -209q0 -31 7 -59.5t26.5 -51 t54 -37t88.5 -14.5v-65q-53 0 -88 -14.5t-54.5 -37t-26.5 -53.5t-7 -61q0 -106 8 -205.5t8 -214.5q0 -78 -14.5 -128t-43 -80t-70.5 -42t-99 -12h-70v59z" />
-<glyph unicode="~" d="M82 637q45 86 105.5 128t119.5 42t107.5 -28.5t92.5 -63.5t85 -63.5t86 -28.5q47 0 86 28.5t76 100.5l57 -41q-43 -84 -103.5 -125t-119.5 -41t-107.5 28.5t-92.5 63.5t-85 63.5t-86 28.5q-47 0 -86 -28.5t-76 -100.5z" />
-<glyph unicode="&#xa1;" horiz-adv-x="530" d="M178 918q0 41 26.5 65.5t61.5 24.5t60.5 -24.5t25.5 -65.5q0 -47 -25.5 -72t-60.5 -25t-61.5 24.5t-26.5 72.5zM219 -244l12 860h68l12 -860l2 -145h-94v145z" />
-<glyph unicode="&#xa2;" d="M127 637q0 106 30.5 189t85 143.5t126 95.5t153.5 43v227h70v-223q98 -4 163.5 -40t112.5 -83l-49 -57q-47 41 -102 68.5t-125 31.5v-788q76 4 139.5 34.5t112.5 75.5l47 -59q-59 -55 -134 -91t-165 -40v-221h-70v223q-86 8 -158.5 43t-125 95.5t-82 144t-29.5 188.5z M219 637q0 -160 81 -264.5t222 -124.5v780q-66 -10 -122 -43t-96 -83t-62.5 -117.5t-22.5 -147.5z" />
-<glyph unicode="&#xa3;" d="M111 600v68l135 6h49q-23 78 -44.5 154.5t-21.5 156.5q0 162 93.5 255t255.5 93q106 0 176.5 -43t117.5 -102l-59 -55q-43 51 -98.5 85.5t-136.5 34.5q-63 0 -111.5 -20.5t-80.5 -57t-48 -86t-16 -104.5q0 -82 21.5 -156.5t43.5 -154.5h338v-74h-322q8 -35 12.5 -70.5 t4.5 -76.5q0 -127 -39 -211t-109 -152v-8h605v-82h-760v55q115 66 166 172.5t51 225.5q0 39 -5 75.5t-14 71.5h-204z" />
-<glyph unicode="&#xa4;" d="M61 291l136 137q-37 49 -57.5 110.5t-20.5 133.5q0 74 20.5 137t57.5 113l-136 139l56 57l135 -141q47 43 109.5 66.5t127.5 23.5q66 0 128.5 -23.5t109.5 -66.5l137 141l54 -57l-136 -139q37 -49 57.5 -113t20.5 -137q0 -72 -20.5 -133.5t-55.5 -110.5l134 -137l-54 -58 l-137 140q-47 -45 -109.5 -68.5t-128.5 -23.5q-135 0 -237 92l-135 -140zM209 672q0 -70 22.5 -128.5t60.5 -99.5t89 -64.5t108 -23.5t108.5 23.5t89.5 64.5t60.5 99.5t22.5 128.5t-22.5 129t-60.5 101t-89 65.5t-109 23.5q-57 0 -108 -23.5t-89 -65.5t-60.5 -101 t-22.5 -129z" />
-<glyph unicode="&#xa5;" d="M61 1309h99l192 -396l66 -136t69 -144h9q39 76 70.5 144.5t66.5 135.5l192 396h95l-357 -688h316v-68h-344v-145h344v-70h-344v-338h-93v338h-340v70h340v145h-340v68h312z" />
-<glyph unicode="&#xa6;" horiz-adv-x="462" d="M195 451h73v-963h-73v963zM195 571v965h73v-965h-73z" />
-<glyph unicode="&#xa7;" d="M102 721q0 98 52.5 162.5t130.5 105.5q-31 31 -49.5 72t-18.5 94q0 43 16.5 86t51 77t86 55.5t123.5 21.5q86 0 157.5 -31t128.5 -78l-49 -63q-49 41 -103.5 67.5t-131.5 26.5q-51 0 -88 -13.5t-59.5 -35t-34 -50t-11.5 -57.5q0 -68 43 -109.5t106.5 -75.5t138.5 -63.5 t138.5 -71.5t106.5 -103.5t43 -155.5q0 -102 -50.5 -161t-128.5 -102q33 -33 51.5 -74.5t18.5 -97.5q0 -55 -23.5 -102t-63.5 -81t-93 -52t-113 -18q-106 0 -188 35.5t-142 93.5l62 57q53 -49 113.5 -80t154.5 -31t149.5 51.5t55.5 122.5q0 70 -43 114t-107.5 77 t-139.5 62.5t-139.5 70.5t-107.5 100.5t-43 153.5zM188 727q0 -80 46.5 -130t115 -86t146 -66.5t143.5 -73.5q74 35 114 78t40 126q0 82 -46.5 134.5t-115 89.5t-146 68.5t-141.5 72.5q-70 -41 -113 -88t-43 -125z" />
-<glyph unicode="&#xa8;" horiz-adv-x="1095" d="M311 1300q0 31 20.5 52.5t53.5 21.5t54.5 -21.5t21.5 -52.5q0 -33 -21.5 -54t-54.5 -21t-53.5 21.5t-20.5 53.5zM633 1300q0 31 21.5 52.5t54.5 21.5t53.5 -21.5t20.5 -52.5q0 -33 -20.5 -54t-53.5 -21t-54.5 21.5t-21.5 53.5z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1517" d="M104 659q0 154 52.5 279t142.5 213t209 136t252 48q131 0 249.5 -48t209 -136t142.5 -213t52 -279q0 -156 -52 -281.5t-142.5 -214.5t-209 -138.5t-249.5 -49.5q-133 0 -252 49.5t-209 138.5t-142.5 214.5t-52.5 281.5zM176 659q0 -139 47 -253.5t127 -195.5t185.5 -126 t224.5 -45q117 0 222 45t185 126t127 195.5t47 253.5q0 137 -47 251t-127 195t-185 125t-222 44q-119 0 -224.5 -44t-185.5 -125t-127 -195t-47 -251zM412 659q0 88 30.5 160t80.5 121t117 75.5t140 26.5q82 0 139.5 -31.5t106.5 -80.5l-47 -53q-47 45 -93 67.5t-108 22.5 q-123 0 -200.5 -84t-77.5 -224q0 -154 74.5 -241.5t199.5 -87.5q74 0 131.5 29.5t104.5 72.5l41 -57q-55 -49 -119 -85t-162 -36q-74 0 -138.5 27.5t-113.5 80t-77.5 127t-28.5 170.5z" />
-<glyph unicode="&#xaa;" horiz-adv-x="690" d="M86 702q0 109 100.5 165.5t321.5 76.5q0 39 -7 74t-23.5 60.5t-43 40t-69.5 14.5q-61 0 -123 -26t-97 -50l-30 55q41 29 109.5 58.5t148.5 29.5q119 0 165 -70.5t46 -187.5v-410h-62l-12 80h-8q-43 -37 -97 -66.5t-120 -29.5q-88 0 -143.5 49t-55.5 137zM166 709 q0 -66 37 -96.5t100 -30.5q96 0 205 100v209q-190 -20 -266 -66.5t-76 -115.5z" />
-<glyph unicode="&#xab;" horiz-adv-x="819" d="M88 477v78l281 330l51 -43l-252 -326l252 -330l-51 -39zM377 477v78l281 330l51 -43l-252 -326l252 -330l-51 -39z" />
-<glyph unicode="&#xac;" d="M70 637v78h841v-490h-84v412h-757z" />
-<glyph unicode="&#xad;" horiz-adv-x="612" d="M82 471v80h450v-80h-450z" />
-<glyph unicode="&#xae;" horiz-adv-x="821" d="M37 1059q0 90 29.5 163.5t81 126t119 81t143.5 28.5t144.5 -28.5t118.5 -81t79.5 -126t29.5 -163.5t-29.5 -163t-79.5 -124t-118.5 -79.5t-144.5 -28.5t-143.5 28.5t-119 79.5t-81 124t-29.5 163zM100 1059q0 -74 25 -135.5t65.5 -105.5t97 -69.5t122.5 -25.5 q63 0 120.5 25.5t98.5 69.5t65.5 105.5t24.5 135.5t-24.5 136t-65.5 108.5t-98.5 72t-120.5 25.5q-66 0 -122.5 -25.5t-97 -72t-65.5 -108.5t-25 -136zM270 856v422h142q31 0 58.5 -6t50 -21.5t35.5 -40t13 -63.5t-23.5 -72t-58.5 -43l101 -176h-76l-80 156h-96v-156h-66z M336 1067h59q47 0 76 17.5t29 58.5q0 35 -21.5 56.5t-77.5 21.5h-65v-154z" />
-<glyph unicode="&#xaf;" horiz-adv-x="1095" d="M316 1241v74h462v-74h-462z" />
-<glyph unicode="&#xb0;" horiz-adv-x="636" d="M86 1157q0 57 19.5 102.5t52 77t74.5 48t87 16.5t87.5 -16.5t75 -48t52 -77t19.5 -102.5t-19.5 -102t-52 -76t-75 -47.5t-87.5 -16.5t-87 16.5t-74.5 47.5t-52 76t-19.5 102zM156 1157q0 -76 45.5 -126t117.5 -50t118 50t46 126q0 78 -46 129t-118 51t-117.5 -51 t-45.5 -129z" />
-<glyph unicode="&#xb1;" d="M70 0v76h841v-76h-841zM70 635v76h379v415h83v-415h379v-76h-379v-412h-83v412h-379z" />
-<glyph unicode="&#xb2;" horiz-adv-x="741" d="M96 1575q37 61 103.5 105t142.5 44q111 0 179.5 -62.5t68.5 -189.5q0 -63 -25.5 -120.5t-70.5 -117t-110 -124t-140 -139.5h393v-70h-522v51q102 94 177 168t123 133.5t71.5 109.5t23.5 101q0 88 -48 139.5t-128 51.5q-55 0 -103.5 -37t-83.5 -90z" />
-<glyph unicode="&#xb3;" horiz-adv-x="741" d="M82 1030l59 45q37 -59 95.5 -95t128.5 -36q76 0 131 44t55 126q0 78 -76 121t-207 43v57q121 0 185.5 51.5t64.5 120.5q0 66 -46 108t-124 42q-47 0 -95 -30t-87 -77l-51 45q43 55 103.5 92t137.5 37q100 0 171 -55t71 -156q0 -76 -44 -126t-110 -76q37 -6 70 -22.5 t59.5 -41t42 -58.5t15.5 -77q0 -55 -20.5 -99t-57.5 -74t-86 -46.5t-105 -16.5q-94 0 -166.5 46.5t-113.5 107.5z" />
-<glyph unicode="&#xb4;" horiz-adv-x="1095" d="M432 1171l189 279h106l-217 -279h-78z" />
-<glyph unicode="&#xb5;" horiz-adv-x="1099" d="M188 -410v1393h91v-618q0 -158 53 -233t172 -75q88 0 158.5 48.5t158.5 152.5v725h90v-983h-77l-9 164h-6q-70 -86 -146.5 -136.5t-174.5 -50.5q-76 0 -129.5 23t-94.5 90l5 -184v-316h-91z" />
-<glyph unicode="&#xb6;" horiz-adv-x="1054" d="M86 924q0 115 35 195.5t98.5 132t151.5 75t192 23.5h90v-850h-57q-113 0 -207 23.5t-161.5 73.5t-104.5 131t-37 196zM764 -164v1514h94v-1514h-94z" />
-<glyph unicode="&#xb7;" horiz-adv-x="448" d="M137 660q0 45 26.5 69.5t61.5 24.5t60.5 -24.5t25.5 -69.5q0 -43 -25.5 -68t-60.5 -25t-61.5 25t-26.5 68z" />
-<glyph unicode="&#xb8;" horiz-adv-x="1095" d="M413 -365q86 12 138.5 37t52.5 68q0 47 -39 69.5t-98 38.5l82 156h71l-59 -115q49 -16 86 -47.5t37 -93.5q0 -41 -21.5 -70.5t-57.5 -50t-82 -34t-95 -19.5z" />
-<glyph unicode="&#xb9;" horiz-adv-x="741" d="M193 1565v55q59 12 101 31.5t77 48.5h67v-799h-78v664h-167z" />
-<glyph unicode="&#xba;" horiz-adv-x="737" d="M68 858q0 82 23.5 145.5t63.5 107.5t95 66.5t117 22.5q61 0 116.5 -22.5t95 -66.5t63.5 -107.5t24 -145.5q0 -80 -24 -143.5t-63.5 -107.5t-95 -67.5t-116.5 -23.5t-116.5 23.5t-95.5 67.5t-63.5 107.5t-23.5 143.5zM147 858q0 -123 61 -198.5t159 -75.5t158.5 75.5 t60.5 198.5t-60.5 199t-158.5 76t-159 -76t-61 -199z" />
-<glyph unicode="&#xbb;" horiz-adv-x="819" d="M111 186l249 330l-249 326l49 43l282 -330v-78l-282 -330zM400 186l249 330l-249 326l49 43l282 -330v-78l-282 -330z" />
-<glyph unicode="&#xbc;" horiz-adv-x="1564" d="M152 1215v55q59 12 101 31.5t77 48.5h67v-799h-78v664h-167zM362 -25l754 1399h78l-752 -1399h-80zM917 233v43l363 523h73v-500h119v-66h-119v-233h-73v233h-363zM1016 299h264v178l8 213h-8l-115 -170z" />
-<glyph unicode="&#xbd;" horiz-adv-x="1609" d="M152 1215v55q59 12 101 31.5t77 48.5h67v-799h-78v664h-167zM315 -25l754 1399h78l-752 -1399h-80zM964 674q37 61 103.5 105t142.5 44q111 0 179.5 -62.5t68.5 -189.5q0 -63 -25.5 -120.5t-70.5 -117t-110 -124t-140 -139.5h393v-70h-522v51q102 94 177 168t123 133.5 t71.5 109.5t23.5 101q0 88 -48 139.5t-128 51.5q-55 0 -103.5 -37t-83.5 -90z" />
-<glyph unicode="&#xbe;" horiz-adv-x="1603" d="M82 680l59 45q37 -59 95.5 -95t128.5 -36q76 0 131 44t55 126q0 78 -76 121t-207 43v57q121 0 185.5 51.5t64.5 120.5q0 66 -46 108t-124 42q-47 0 -95 -30t-87 -77l-51 45q43 55 103.5 92t137.5 37q100 0 171 -55t71 -156q0 -76 -44 -126t-110 -76q37 -6 70 -22.5 t59.5 -41t42 -58.5t15.5 -77q0 -55 -20.5 -99t-57.5 -74t-86 -46.5t-105 -16.5q-94 0 -166.5 46.5t-113.5 107.5zM459 -25l754 1399h78l-752 -1399h-80zM956 233v43l363 523h73v-500h119v-66h-119v-233h-73v233h-363zM1055 299h264v178l8 213h-8l-115 -170z" />
-<glyph unicode="&#xbf;" horiz-adv-x="823" d="M104 -100q0 70 26 128t62.5 112.5t78.5 105.5t76 107.5t52.5 121t8.5 141.5h84q10 -84 -7.5 -152.5t-50.5 -126.5t-74 -109.5t-77.5 -101.5t-61 -103.5t-24.5 -116.5q0 -47 13 -90t42 -77t73 -53.5t105 -19.5q74 0 142.5 35t119.5 96l58 -51q-59 -66 -140.5 -113 t-185.5 -47q-76 0 -135.5 23.5t-100.5 65.5t-62.5 99.5t-21.5 125.5zM356 918q0 41 26 65.5t60 24.5q35 0 60.5 -24.5t25.5 -65.5q0 -47 -25.5 -72t-60.5 -25t-60.5 24.5t-25.5 72.5z" />
-<glyph unicode="&#xc0;" horiz-adv-x="1062" d="M8 0l477 1350h95l475 -1350h-101l-157 463h-535l-158 -463h-96zM291 543h479l-86 252q-41 121 -78 231.5t-71 235.5h-9q-35 -125 -71.5 -236t-77.5 -231zM299 1669h118l189 -217h-82z" />
-<glyph unicode="&#xc1;" horiz-adv-x="1062" d="M8 0l477 1350h95l475 -1350h-101l-157 463h-535l-158 -463h-96zM291 543h479l-86 252q-41 121 -78 231.5t-71 235.5h-9q-35 -125 -71.5 -236t-77.5 -231zM454 1452l189 217h118l-225 -217h-82z" />
-<glyph unicode="&#xc2;" horiz-adv-x="1062" d="M8 0l477 1350h95l475 -1350h-101l-157 463h-535l-158 -463h-96zM290 1452l197 217h86l197 -217h-82l-154 147h-8l-154 -147h-82zM291 543h479l-86 252q-41 121 -78 231.5t-71 235.5h-9q-35 -125 -71.5 -236t-77.5 -231z" />
-<glyph unicode="&#xc3;" horiz-adv-x="1062" d="M8 0l477 1350h95l475 -1350h-101l-157 463h-535l-158 -463h-96zM264 1466q2 35 12 69t28.5 60.5t44 43t60.5 16.5q41 0 72 -18.5t58.5 -40t55 -39t58.5 -17.5q33 0 55.5 31t28.5 84h59q-2 -35 -12 -68t-28.5 -60.5t-44 -44t-60.5 -16.5q-41 0 -73 18.5t-59.5 40t-54 40 t-57.5 18.5q-33 0 -55.5 -31.5t-28.5 -85.5h-59zM291 543h479l-86 252q-41 121 -78 231.5t-71 235.5h-9q-35 -125 -71.5 -236t-77.5 -231z" />
-<glyph unicode="&#xc4;" horiz-adv-x="1062" d="M8 0l477 1350h95l475 -1350h-101l-157 463h-535l-158 -463h-96zM291 543h479l-86 252q-41 121 -78 231.5t-71 235.5h-9q-35 -125 -71.5 -236t-77.5 -231zM294 1559q0 35 20.5 55t53.5 20t54.5 -20.5t21.5 -54.5q0 -35 -21.5 -54.5t-54.5 -19.5t-53.5 19.5t-20.5 54.5z M616 1559q0 35 21.5 55t54.5 20t53.5 -20.5t20.5 -54.5q0 -35 -20.5 -54.5t-53.5 -19.5t-54.5 19.5t-21.5 54.5z" />
-<glyph unicode="&#xc5;" horiz-adv-x="1062" d="M8 0l477 1350h95l475 -1350h-101l-157 463h-535l-158 -463h-96zM291 543h479l-86 252q-41 121 -78 231.5t-71 235.5h-9q-35 -125 -71.5 -236t-77.5 -231zM362 1602q0 76 48 121.5t120 45.5q70 0 119 -46t49 -121q0 -78 -49 -123t-119 -45q-72 0 -120 45t-48 123z M424 1602q0 -57 30.5 -86t75.5 -29q41 0 72.5 28.5t31.5 86.5q0 53 -31.5 83.5t-72.5 30.5q-45 0 -75.5 -30.5t-30.5 -83.5z" />
-<glyph unicode="&#xc6;" horiz-adv-x="1642" d="M37 0l745 1350h752v-82h-606v-510h502v-82h-502v-594h626v-82h-720v444h-459l-244 -444h-94zM418 522h416v746h-9q-61 -115 -126.5 -232.5t-131.5 -240.5z" />
-<glyph unicode="&#xc7;" horiz-adv-x="1140" d="M104 678q0 160 42 289t118 220t182.5 139t235.5 48q119 0 208 -49t142 -113l-55 -61q-55 61 -129 99t-166 38q-111 0 -200 -43t-150.5 -122t-95 -191.5t-33.5 -253.5t32.5 -255t94 -193.5t148.5 -124t196 -44.5q104 0 186 41t156 125l55 -59q-78 -90 -173 -141.5 t-228 -51.5q-125 0 -228.5 49.5t-178.5 140.5t-117 221t-42 292zM534 -365q86 12 138.5 37t52.5 68q0 47 -39 69.5t-98 38.5l82 156h71l-59 -115q49 -16 86 -47.5t37 -93.5q0 -41 -21.5 -70.5t-57.5 -50t-82 -34t-95 -19.5z" />
-<glyph unicode="&#xc8;" horiz-adv-x="1038" d="M193 0v1350h737v-82h-643v-510h540v-82h-540v-594h663v-82h-757zM338 1669h118l189 -217h-82z" />
-<glyph unicode="&#xc9;" horiz-adv-x="1038" d="M193 0v1350h737v-82h-643v-510h540v-82h-540v-594h663v-82h-757zM493 1452l189 217h118l-225 -217h-82z" />
-<glyph unicode="&#xca;" horiz-adv-x="1038" d="M193 0v1350h737v-82h-643v-510h540v-82h-540v-594h663v-82h-757zM329 1452l197 217h86l197 -217h-82l-154 147h-8l-154 -147h-82z" />
-<glyph unicode="&#xcb;" horiz-adv-x="1038" d="M193 0v1350h737v-82h-643v-510h540v-82h-540v-594h663v-82h-757zM333 1559q0 35 20.5 55t53.5 20t54.5 -20.5t21.5 -54.5q0 -35 -21.5 -54.5t-54.5 -19.5t-53.5 19.5t-20.5 54.5zM655 1559q0 35 21.5 55t54.5 20t53.5 -20.5t20.5 -54.5q0 -35 -20.5 -54.5t-53.5 -19.5 t-54.5 19.5t-21.5 54.5z" />
-<glyph unicode="&#xcc;" horiz-adv-x="477" d="M7 1669h118l189 -217h-82zM193 0v1350h94v-1350h-94z" />
-<glyph unicode="&#xcd;" horiz-adv-x="477" d="M162 1452l189 217h118l-225 -217h-82zM193 0v1350h94v-1350h-94z" />
-<glyph unicode="&#xce;" horiz-adv-x="477" d="M-2 1452l197 217h86l197 -217h-82l-154 147h-8l-154 -147h-82zM193 0v1350h94v-1350h-94z" />
-<glyph unicode="&#xcf;" horiz-adv-x="477" d="M2 1559q0 35 20.5 55t53.5 20t54.5 -20.5t21.5 -54.5q0 -35 -21.5 -54.5t-54.5 -19.5t-53.5 19.5t-20.5 54.5zM193 0v1350h94v-1350h-94zM324 1559q0 35 21.5 55t54.5 20t53.5 -20.5t20.5 -54.5q0 -35 -20.5 -54.5t-53.5 -19.5t-54.5 19.5t-21.5 54.5z" />
-<glyph unicode="&#xd0;" horiz-adv-x="1261" d="M68 680v63l159 5v602h312q156 0 271.5 -47.5t191 -135.5t113.5 -210.5t38 -276.5t-38 -280t-113.5 -215t-190.5 -137t-270 -48h-314v680h-159zM322 80h206q137 0 236.5 44t164 124t95.5 189.5t31 242.5q0 131 -31 239.5t-95.5 186.5t-163.5 121t-237 43h-206v-522h340 v-68h-340v-600z" />
-<glyph unicode="&#xd1;" horiz-adv-x="1288" d="M193 0v1350h98l567 -953l154 -268h8q-4 98 -8 196.5t-4 196.5v828h88v-1350h-99l-567 952l-154 269h-8q4 -98 8.5 -191.5t4.5 -191.5v-838h-88zM387 1466q2 35 12 69t28.5 60.5t44 43t60.5 16.5q41 0 72 -18.5t58.5 -40t55 -39t58.5 -17.5q33 0 55.5 31t28.5 84h59 q-2 -35 -12 -68t-28.5 -60.5t-44 -44t-60.5 -16.5q-41 0 -73 18.5t-59.5 40t-54 40t-57.5 18.5q-33 0 -55.5 -31.5t-28.5 -85.5h-59z" />
-<glyph unicode="&#xd2;" horiz-adv-x="1320" d="M104 680q0 160 41 288t115 219t176.5 139t225.5 48q121 0 223 -48t176 -139t115 -219t41 -288t-41 -290t-115 -222t-176 -142.5t-223 -50.5q-123 0 -225.5 50.5t-176.5 142.5t-115 222t-41 290zM203 680q0 -141 32.5 -255t93 -194.5t146 -125t187.5 -44.5t186 44.5 t144.5 125t93 194.5t32.5 255q0 139 -32.5 251.5t-93 191.5t-144.5 122t-186 43t-187.5 -43t-146 -122t-93 -191.5t-32.5 -251.5zM428 1669h118l189 -217h-82z" />
-<glyph unicode="&#xd3;" horiz-adv-x="1320" d="M104 680q0 160 41 288t115 219t176.5 139t225.5 48q121 0 223 -48t176 -139t115 -219t41 -288t-41 -290t-115 -222t-176 -142.5t-223 -50.5q-123 0 -225.5 50.5t-176.5 142.5t-115 222t-41 290zM203 680q0 -141 32.5 -255t93 -194.5t146 -125t187.5 -44.5t186 44.5 t144.5 125t93 194.5t32.5 255q0 139 -32.5 251.5t-93 191.5t-144.5 122t-186 43t-187.5 -43t-146 -122t-93 -191.5t-32.5 -251.5zM583 1452l189 217h118l-225 -217h-82z" />
-<glyph unicode="&#xd4;" horiz-adv-x="1320" d="M104 680q0 160 41 288t115 219t176.5 139t225.5 48q121 0 223 -48t176 -139t115 -219t41 -288t-41 -290t-115 -222t-176 -142.5t-223 -50.5q-123 0 -225.5 50.5t-176.5 142.5t-115 222t-41 290zM203 680q0 -141 32.5 -255t93 -194.5t146 -125t187.5 -44.5t186 44.5 t144.5 125t93 194.5t32.5 255q0 139 -32.5 251.5t-93 191.5t-144.5 122t-186 43t-187.5 -43t-146 -122t-93 -191.5t-32.5 -251.5zM419 1452l197 217h86l197 -217h-82l-154 147h-8l-154 -147h-82z" />
-<glyph unicode="&#xd5;" horiz-adv-x="1320" d="M104 680q0 160 41 288t115 219t176.5 139t225.5 48q121 0 223 -48t176 -139t115 -219t41 -288t-41 -290t-115 -222t-176 -142.5t-223 -50.5q-123 0 -225.5 50.5t-176.5 142.5t-115 222t-41 290zM203 680q0 -141 32.5 -255t93 -194.5t146 -125t187.5 -44.5t186 44.5 t144.5 125t93 194.5t32.5 255q0 139 -32.5 251.5t-93 191.5t-144.5 122t-186 43t-187.5 -43t-146 -122t-93 -191.5t-32.5 -251.5zM393 1466q2 35 12 69t28.5 60.5t44 43t60.5 16.5q41 0 72 -18.5t58.5 -40t55 -39t58.5 -17.5q33 0 55.5 31t28.5 84h59q-2 -35 -12 -68 t-28.5 -60.5t-44 -44t-60.5 -16.5q-41 0 -73 18.5t-59.5 40t-54 40t-57.5 18.5q-33 0 -55.5 -31.5t-28.5 -85.5h-59z" />
-<glyph unicode="&#xd6;" horiz-adv-x="1320" d="M104 680q0 160 41 288t115 219t176.5 139t225.5 48q121 0 223 -48t176 -139t115 -219t41 -288t-41 -290t-115 -222t-176 -142.5t-223 -50.5q-123 0 -225.5 50.5t-176.5 142.5t-115 222t-41 290zM203 680q0 -141 32.5 -255t93 -194.5t146 -125t187.5 -44.5t186 44.5 t144.5 125t93 194.5t32.5 255q0 139 -32.5 251.5t-93 191.5t-144.5 122t-186 43t-187.5 -43t-146 -122t-93 -191.5t-32.5 -251.5zM423 1559q0 35 20.5 55t53.5 20t54.5 -20.5t21.5 -54.5q0 -35 -21.5 -54.5t-54.5 -19.5t-53.5 19.5t-20.5 54.5zM745 1559q0 35 21.5 55 t54.5 20t53.5 -20.5t20.5 -54.5q0 -35 -20.5 -54.5t-53.5 -19.5t-54.5 19.5t-21.5 54.5z" />
-<glyph unicode="&#xd7;" d="M104 334l332 342l-332 342l56 57l329 -346l332 346l53 -57l-329 -342l329 -342l-53 -58l-332 345l-329 -345z" />
-<glyph unicode="&#xd8;" horiz-adv-x="1320" d="M104 680q0 160 41 288t115 219t176.5 139t225.5 48q109 0 200.5 -38t163.5 -109l127 170l57 -45l-137 -183q68 -90 106 -212.5t38 -276.5q0 -160 -41 -290t-115 -222t-176.5 -142.5t-222.5 -50.5q-219 0 -365 152l-131 -174l-60 45l140 188q-66 92 -104 216t-38 278z M203 680q0 -127 26.5 -232.5t75.5 -183.5l664 887q-59 66 -137 101.5t-170 35.5q-102 0 -187.5 -43t-146 -122t-93 -191.5t-32.5 -251.5zM352 203q59 -68 137 -105t173 -37q102 0 186 44.5t144.5 125t93 194.5t32.5 255q0 127 -26.5 229.5t-75.5 180.5z" />
-<glyph unicode="&#xd9;" horiz-adv-x="1284" d="M186 518v832h95v-822q0 -135 29.5 -224t78.5 -143.5t114.5 -77t137.5 -22.5q74 0 139.5 22.5t116.5 77t81 143.5t30 224v822h90v-832q0 -158 -39 -262t-102.5 -166.5t-146.5 -88.5t-169 -26q-88 0 -170 26t-145.5 88.5t-101.5 166.5t-38 262zM410 1669h118l189 -217h-82z " />
-<glyph unicode="&#xda;" horiz-adv-x="1284" d="M186 518v832h95v-822q0 -135 29.5 -224t78.5 -143.5t114.5 -77t137.5 -22.5q74 0 139.5 22.5t116.5 77t81 143.5t30 224v822h90v-832q0 -158 -39 -262t-102.5 -166.5t-146.5 -88.5t-169 -26q-88 0 -170 26t-145.5 88.5t-101.5 166.5t-38 262zM565 1452l189 217h118 l-225 -217h-82z" />
-<glyph unicode="&#xdb;" horiz-adv-x="1284" d="M186 518v832h95v-822q0 -135 29.5 -224t78.5 -143.5t114.5 -77t137.5 -22.5q74 0 139.5 22.5t116.5 77t81 143.5t30 224v822h90v-832q0 -158 -39 -262t-102.5 -166.5t-146.5 -88.5t-169 -26q-88 0 -170 26t-145.5 88.5t-101.5 166.5t-38 262zM401 1452l197 217h86 l197 -217h-82l-154 147h-8l-154 -147h-82z" />
-<glyph unicode="&#xdc;" horiz-adv-x="1284" d="M186 518v832h95v-822q0 -135 29.5 -224t78.5 -143.5t114.5 -77t137.5 -22.5q74 0 139.5 22.5t116.5 77t81 143.5t30 224v822h90v-832q0 -158 -39 -262t-102.5 -166.5t-146.5 -88.5t-169 -26q-88 0 -170 26t-145.5 88.5t-101.5 166.5t-38 262zM405 1559q0 35 20.5 55 t53.5 20t54.5 -20.5t21.5 -54.5q0 -35 -21.5 -54.5t-54.5 -19.5t-53.5 19.5t-20.5 54.5zM727 1559q0 35 21.5 55t54.5 20t53.5 -20.5t20.5 -54.5q0 -35 -20.5 -54.5t-53.5 -19.5t-54.5 19.5t-21.5 54.5z" />
-<glyph unicode="&#xdd;" horiz-adv-x="901" d="M-2 1350h100l205 -422q35 -74 70 -145.5t73 -145.5h9q39 74 75.5 145.5t71.5 145.5l205 422h96l-405 -803v-547h-95v547zM375 1452l189 217h118l-225 -217h-82z" />
-<glyph unicode="&#xde;" horiz-adv-x="1150" d="M193 0v1350h94v-240h274q113 0 202 -20.5t151.5 -64.5t95 -115.5t32.5 -176.5q0 -199 -127 -296t-354 -97h-274v-340h-94zM287 420h250q209 0 308 73.5t99 239.5q0 168 -100.5 232.5t-306.5 64.5h-250v-610z" />
-<glyph unicode="&#xdf;" horiz-adv-x="1110" d="M188 0v1090q0 190 95.5 296.5t255.5 106.5q68 0 120 -21.5t88.5 -58.5t56 -87t19.5 -107q0 -80 -31.5 -136.5t-69.5 -104.5t-69.5 -96t-31.5 -110q0 -59 31.5 -96t79.5 -64.5t103.5 -54.5t103.5 -63.5t80 -92t32 -141.5q0 -61 -22.5 -112.5t-62.5 -90.5t-94.5 -60.5 t-119.5 -21.5q-80 0 -150 29t-129 76l45 67q59 -47 113.5 -70.5t120.5 -23.5q51 0 90 17.5t64.5 45t38.5 64.5t13 76q0 72 -31.5 117t-78.5 76.5t-103.5 57t-103.5 58.5t-79 79t-32 120t32 127t69 101t68.5 98.5t31.5 119.5q0 90 -48 147.5t-146 57.5q-117 0 -187.5 -86 t-70.5 -270v-1059h-91z" />
-<glyph unicode="&#xe0;" horiz-adv-x="1021" d="M133 246q0 162 153.5 248t481.5 122q2 55 -7 111.5t-35 100.5t-72 72t-117 28q-100 0 -182.5 -39t-131.5 -76l-41 68q27 18 65 40.5t84 41t101 32t115 13.5q88 0 147.5 -30t96 -81t52 -119.5t15.5 -148.5v-629h-76l-10 127h-4q-76 -59 -163 -105.5t-185 -46.5 q-59 0 -110.5 16.5t-91.5 49.5t-62.5 84t-22.5 121zM227 250q0 -106 61.5 -151.5t145.5 -45.5q86 0 164 41t170 119v334q-152 -18 -255 -45t-166.5 -64t-91.5 -84t-28 -104zM357 1450h106l189 -279h-78z" />
-<glyph unicode="&#xe1;" horiz-adv-x="1021" d="M133 246q0 162 153.5 248t481.5 122q2 55 -7 111.5t-35 100.5t-72 72t-117 28q-100 0 -182.5 -39t-131.5 -76l-41 68q27 18 65 40.5t84 41t101 32t115 13.5q88 0 147.5 -30t96 -81t52 -119.5t15.5 -148.5v-629h-76l-10 127h-4q-76 -59 -163 -105.5t-185 -46.5 q-59 0 -110.5 16.5t-91.5 49.5t-62.5 84t-22.5 121zM227 250q0 -106 61.5 -151.5t145.5 -45.5q86 0 164 41t170 119v334q-152 -18 -255 -45t-166.5 -64t-91.5 -84t-28 -104zM422 1171l189 279h106l-217 -279h-78z" />
-<glyph unicode="&#xe2;" horiz-adv-x="1021" d="M133 246q0 162 153.5 248t481.5 122q2 55 -7 111.5t-35 100.5t-72 72t-117 28q-100 0 -182.5 -39t-131.5 -76l-41 68q27 18 65 40.5t84 41t101 32t115 13.5q88 0 147.5 -30t96 -81t52 -119.5t15.5 -148.5v-629h-76l-10 127h-4q-76 -59 -163 -105.5t-185 -46.5 q-59 0 -110.5 16.5t-91.5 49.5t-62.5 84t-22.5 121zM227 250q0 -106 61.5 -151.5t145.5 -45.5q86 0 164 41t170 119v334q-152 -18 -255 -45t-166.5 -64t-91.5 -84t-28 -104zM304 1171l194 279h78l194 -279h-75l-154 203h-8l-154 -203h-75z" />
-<glyph unicode="&#xe3;" horiz-adv-x="1021" d="M133 246q0 162 153.5 248t481.5 122q2 55 -7 111.5t-35 100.5t-72 72t-117 28q-100 0 -182.5 -39t-131.5 -76l-41 68q27 18 65 40.5t84 41t101 32t115 13.5q88 0 147.5 -30t96 -81t52 -119.5t15.5 -148.5v-629h-76l-10 127h-4q-76 -59 -163 -105.5t-185 -46.5 q-59 0 -110.5 16.5t-91.5 49.5t-62.5 84t-22.5 121zM227 250q0 -106 61.5 -151.5t145.5 -45.5q86 0 164 41t170 119v334q-152 -18 -255 -45t-166.5 -64t-91.5 -84t-28 -104zM283 1190q2 33 10 65.5t25.5 58t43 42t62.5 16.5t68 -17.5t57.5 -39t51 -38.5t51.5 -17 q33 0 51 29.5t27 82.5h61q-2 -33 -10 -65.5t-25.5 -58t-43 -42t-62.5 -16.5t-68 17.5t-56.5 39t-51 39t-52.5 17.5q-61 0 -78 -113h-61z" />
-<glyph unicode="&#xe4;" horiz-adv-x="1021" d="M133 246q0 162 153.5 248t481.5 122q2 55 -7 111.5t-35 100.5t-72 72t-117 28q-100 0 -182.5 -39t-131.5 -76l-41 68q27 18 65 40.5t84 41t101 32t115 13.5q88 0 147.5 -30t96 -81t52 -119.5t15.5 -148.5v-629h-76l-10 127h-4q-76 -59 -163 -105.5t-185 -46.5 q-59 0 -110.5 16.5t-91.5 49.5t-62.5 84t-22.5 121zM227 250q0 -106 61.5 -151.5t145.5 -45.5q86 0 164 41t170 119v334q-152 -18 -255 -45t-166.5 -64t-91.5 -84t-28 -104zM301 1300q0 31 20.5 52.5t53.5 21.5t54.5 -21.5t21.5 -52.5q0 -33 -21.5 -54t-54.5 -21t-53.5 21.5 t-20.5 53.5zM623 1300q0 31 21.5 52.5t54.5 21.5t53.5 -21.5t20.5 -52.5q0 -33 -20.5 -54t-53.5 -21t-54.5 21.5t-21.5 53.5z" />
-<glyph unicode="&#xe5;" horiz-adv-x="1021" d="M133 246q0 162 153.5 248t481.5 122q2 55 -7 111.5t-35 100.5t-72 72t-117 28q-100 0 -182.5 -39t-131.5 -76l-41 68q27 18 65 40.5t84 41t101 32t115 13.5q88 0 147.5 -30t96 -81t52 -119.5t15.5 -148.5v-629h-76l-10 127h-4q-76 -59 -163 -105.5t-185 -46.5 q-59 0 -110.5 16.5t-91.5 49.5t-62.5 84t-22.5 121zM227 250q0 -106 61.5 -151.5t145.5 -45.5q86 0 164 41t170 119v334q-152 -18 -255 -45t-166.5 -64t-91.5 -84t-28 -104zM369 1280q0 80 48 129t120 49t120 -49t48 -129q0 -78 -48 -127t-120 -49t-120 49t-48 127z M431 1280q0 -55 30.5 -89t75.5 -34t75.5 34t30.5 89q0 57 -30.5 91t-75.5 34t-75.5 -34t-30.5 -91z" />
-<glyph unicode="&#xe6;" horiz-adv-x="1605" d="M133 244q0 164 153.5 250t471.5 122q0 55 -8.5 111.5t-34 100.5t-71.5 72t-118 28q-92 0 -173 -39t-130 -76l-41 68q27 18 64 40.5t83 41t98 32t108 13.5q121 0 191.5 -67t94.5 -179q53 113 142.5 179.5t199.5 66.5q174 0 269.5 -119t95.5 -336v-36.5t-4 -37.5h-680 q0 -92 26.5 -170t73.5 -134t111.5 -88t138.5 -32q80 0 140.5 23.5t115.5 64.5l39 -71q-29 -18 -59.5 -35t-67.5 -31t-80 -22.5t-96 -8.5q-66 0 -119 17.5t-96 46.5t-77 64.5t-60 74.5q-98 -94 -210 -148.5t-204 -54.5q-59 0 -110.5 16.5t-91.5 49.5t-62.5 83t-22.5 120z M227 250q0 -106 61.5 -151.5t145.5 -45.5q39 0 86 12.5t95.5 37t95.5 60.5t90 81q-23 45 -33 111.5t-10 136.5l-2 55q-143 -18 -243.5 -45t-164 -64t-92.5 -84t-29 -104zM844 549h600q0 190 -75 285.5t-208 95.5q-61 0 -115.5 -28t-96.5 -78t-69.5 -120.5t-35.5 -154.5z" />
-<glyph unicode="&#xe7;" horiz-adv-x="919" d="M106 489q0 123 37 220.5t98.5 163t142.5 100.5t171 35q102 0 171 -37t118 -84l-53 -64q-47 45 -104.5 75t-129.5 30q-76 0 -140.5 -32t-112.5 -90t-75.5 -138t-27.5 -179q0 -96 25.5 -176t71.5 -137t112.5 -89t146.5 -32q78 0 144.5 33t117.5 80l47 -62q-63 -57 -141 -94 t-172 -37q-96 0 -177 35t-141.5 100.5t-94.5 160.5t-34 218zM391 -365q86 12 138.5 37t52.5 68q0 47 -39 69.5t-98 38.5l82 156h71l-59 -115q49 -16 86 -47.5t37 -93.5q0 -41 -21.5 -70.5t-57.5 -50t-82 -34t-95 -19.5z" />
-<glyph unicode="&#xe8;" horiz-adv-x="989" d="M106 489q0 121 36 217.5t96.5 163t137.5 102.5t159 36q176 0 276 -119t100 -336v-36.5t-4 -37.5h-708q2 -92 28.5 -171t74.5 -135t115.5 -88t151.5 -32q80 0 144.5 23.5t120.5 64.5l36 -69q-59 -35 -129.5 -66t-179.5 -31q-94 0 -177 35t-144.5 101.5t-97.5 161.5 t-36 216zM199 549h626q0 190 -77.5 285.5t-210.5 95.5q-63 0 -121 -26.5t-104 -76t-75.5 -120t-37.5 -158.5zM355 1450h106l189 -279h-78z" />
-<glyph unicode="&#xe9;" horiz-adv-x="989" d="M106 489q0 121 36 217.5t96.5 163t137.5 102.5t159 36q176 0 276 -119t100 -336v-36.5t-4 -37.5h-708q2 -92 28.5 -171t74.5 -135t115.5 -88t151.5 -32q80 0 144.5 23.5t120.5 64.5l36 -69q-59 -35 -129.5 -66t-179.5 -31q-94 0 -177 35t-144.5 101.5t-97.5 161.5 t-36 216zM199 549h626q0 190 -77.5 285.5t-210.5 95.5q-63 0 -121 -26.5t-104 -76t-75.5 -120t-37.5 -158.5zM420 1171l189 279h106l-217 -279h-78z" />
-<glyph unicode="&#xea;" horiz-adv-x="989" d="M106 489q0 121 36 217.5t96.5 163t137.5 102.5t159 36q176 0 276 -119t100 -336v-36.5t-4 -37.5h-708q2 -92 28.5 -171t74.5 -135t115.5 -88t151.5 -32q80 0 144.5 23.5t120.5 64.5l36 -69q-59 -35 -129.5 -66t-179.5 -31q-94 0 -177 35t-144.5 101.5t-97.5 161.5 t-36 216zM199 549h626q0 190 -77.5 285.5t-210.5 95.5q-63 0 -121 -26.5t-104 -76t-75.5 -120t-37.5 -158.5zM302 1171l194 279h78l194 -279h-75l-154 203h-8l-154 -203h-75z" />
-<glyph unicode="&#xeb;" horiz-adv-x="989" d="M106 489q0 121 36 217.5t96.5 163t137.5 102.5t159 36q176 0 276 -119t100 -336v-36.5t-4 -37.5h-708q2 -92 28.5 -171t74.5 -135t115.5 -88t151.5 -32q80 0 144.5 23.5t120.5 64.5l36 -69q-59 -35 -129.5 -66t-179.5 -31q-94 0 -177 35t-144.5 101.5t-97.5 161.5 t-36 216zM199 549h626q0 190 -77.5 285.5t-210.5 95.5q-63 0 -121 -26.5t-104 -76t-75.5 -120t-37.5 -158.5zM299 1300q0 31 20.5 52.5t53.5 21.5t54.5 -21.5t21.5 -52.5q0 -33 -21.5 -54t-54.5 -21t-53.5 21.5t-20.5 53.5zM621 1300q0 31 21.5 52.5t54.5 21.5t53.5 -21.5 t20.5 -52.5q0 -33 -20.5 -54t-53.5 -21t-54.5 21.5t-21.5 53.5z" />
-<glyph unicode="&#xec;" horiz-adv-x="468" d="M53 1450h106l189 -279h-78zM188 0v983h91v-983h-91z" />
-<glyph unicode="&#xed;" horiz-adv-x="468" d="M118 1171l189 279h106l-217 -279h-78zM188 0v983h91v-983h-91z" />
-<glyph unicode="&#xee;" horiz-adv-x="468" d="M0 1171l194 279h78l194 -279h-75l-154 203h-8l-154 -203h-75zM188 0v983h91v-983h-91z" />
-<glyph unicode="&#xef;" horiz-adv-x="468" d="M-3 1300q0 31 20.5 52.5t53.5 21.5t54.5 -21.5t21.5 -52.5q0 -33 -21.5 -54t-54.5 -21t-53.5 21.5t-20.5 53.5zM188 0v983h91v-983h-91zM319 1300q0 31 21.5 52.5t54.5 21.5t53.5 -21.5t20.5 -52.5q0 -33 -20.5 -54t-53.5 -21t-54.5 21.5t-21.5 53.5z" />
-<glyph unicode="&#xf0;" horiz-adv-x="1095" d="M123 449q0 100 30.5 185t87 144.5t134.5 93t172 33.5q88 0 166 -39t137 -116q-29 152 -90.5 260t-147.5 194l-290 -151l-31 57l270 139q-57 49 -120.5 91t-131.5 81l45 62q76 -41 146.5 -88t136.5 -107l291 152l30 -56l-272 -141q61 -61 111.5 -136t87.5 -164 t57.5 -195.5t20.5 -231.5q0 -123 -31 -223t-85 -171t-131 -109t-169 -38q-82 0 -159 33t-135 93.5t-94 148.5t-36 199zM213 449q0 -86 26.5 -159t71.5 -125t106.5 -81t129.5 -29q84 0 144.5 36t100 97.5t59 145.5t19.5 180q0 66 -6 127q-39 57 -79 94t-78.5 57.5t-77.5 27.5 t-78 7q-84 0 -146.5 -30.5t-105.5 -82.5t-64.5 -121t-21.5 -144z" />
-<glyph unicode="&#xf1;" horiz-adv-x="1089" d="M188 0v983h78l8 -152h7q76 76 155.5 126.5t181.5 50.5q154 0 225.5 -92.5t71.5 -284.5v-631h-90v618q0 158 -52 233t-173 75q-88 0 -159.5 -46t-161.5 -139v-741h-91zM326 1190q2 33 10 65.5t25.5 58t43 42t62.5 16.5t68 -17.5t57.5 -39t51 -38.5t51.5 -17q33 0 51 29.5 t27 82.5h61q-2 -33 -10 -65.5t-25.5 -58t-43 -42t-62.5 -16.5t-68 17.5t-56.5 39t-51 39t-52.5 17.5q-61 0 -78 -113h-61z" />
-<glyph unicode="&#xf2;" horiz-adv-x="1095" d="M106 489q0 123 36 220.5t96.5 163t140.5 100.5t168 35t169 -35t141.5 -100.5t96 -163t35.5 -220.5t-35.5 -218t-96 -160.5t-141.5 -100.5t-169 -35t-168 35t-140.5 100.5t-96.5 160.5t-36 218zM201 489q0 -96 26.5 -176t72.5 -137t109.5 -89t137.5 -32t138.5 32t110.5 89 t72.5 137t26.5 176q0 98 -26.5 178.5t-72.5 138.5t-110.5 90t-138.5 32t-137.5 -32t-109.5 -90t-72.5 -138.5t-26.5 -178.5zM367 1450h106l189 -279h-78z" />
-<glyph unicode="&#xf3;" horiz-adv-x="1095" d="M106 489q0 123 36 220.5t96.5 163t140.5 100.5t168 35t169 -35t141.5 -100.5t96 -163t35.5 -220.5t-35.5 -218t-96 -160.5t-141.5 -100.5t-169 -35t-168 35t-140.5 100.5t-96.5 160.5t-36 218zM201 489q0 -96 26.5 -176t72.5 -137t109.5 -89t137.5 -32t138.5 32t110.5 89 t72.5 137t26.5 176q0 98 -26.5 178.5t-72.5 138.5t-110.5 90t-138.5 32t-137.5 -32t-109.5 -90t-72.5 -138.5t-26.5 -178.5zM432 1171l189 279h106l-217 -279h-78z" />
-<glyph unicode="&#xf4;" horiz-adv-x="1095" d="M106 489q0 123 36 220.5t96.5 163t140.5 100.5t168 35t169 -35t141.5 -100.5t96 -163t35.5 -220.5t-35.5 -218t-96 -160.5t-141.5 -100.5t-169 -35t-168 35t-140.5 100.5t-96.5 160.5t-36 218zM201 489q0 -96 26.5 -176t72.5 -137t109.5 -89t137.5 -32t138.5 32t110.5 89 t72.5 137t26.5 176q0 98 -26.5 178.5t-72.5 138.5t-110.5 90t-138.5 32t-137.5 -32t-109.5 -90t-72.5 -138.5t-26.5 -178.5zM314 1171l194 279h78l194 -279h-75l-154 203h-8l-154 -203h-75z" />
-<glyph unicode="&#xf5;" horiz-adv-x="1095" d="M106 489q0 123 36 220.5t96.5 163t140.5 100.5t168 35t169 -35t141.5 -100.5t96 -163t35.5 -220.5t-35.5 -218t-96 -160.5t-141.5 -100.5t-169 -35t-168 35t-140.5 100.5t-96.5 160.5t-36 218zM201 489q0 -96 26.5 -176t72.5 -137t109.5 -89t137.5 -32t138.5 32t110.5 89 t72.5 137t26.5 176q0 98 -26.5 178.5t-72.5 138.5t-110.5 90t-138.5 32t-137.5 -32t-109.5 -90t-72.5 -138.5t-26.5 -178.5zM293 1190q2 33 10 65.5t25.5 58t43 42t62.5 16.5t68 -17.5t57.5 -39t51 -38.5t51.5 -17q33 0 51 29.5t27 82.5h61q-2 -33 -10 -65.5t-25.5 -58 t-43 -42t-62.5 -16.5t-68 17.5t-56.5 39t-51 39t-52.5 17.5q-61 0 -78 -113h-61z" />
-<glyph unicode="&#xf6;" horiz-adv-x="1095" d="M106 489q0 123 36 220.5t96.5 163t140.5 100.5t168 35t169 -35t141.5 -100.5t96 -163t35.5 -220.5t-35.5 -218t-96 -160.5t-141.5 -100.5t-169 -35t-168 35t-140.5 100.5t-96.5 160.5t-36 218zM201 489q0 -96 26.5 -176t72.5 -137t109.5 -89t137.5 -32t138.5 32t110.5 89 t72.5 137t26.5 176q0 98 -26.5 178.5t-72.5 138.5t-110.5 90t-138.5 32t-137.5 -32t-109.5 -90t-72.5 -138.5t-26.5 -178.5zM311 1300q0 31 20.5 52.5t53.5 21.5t54.5 -21.5t21.5 -52.5q0 -33 -21.5 -54t-54.5 -21t-53.5 21.5t-20.5 53.5zM633 1300q0 31 21.5 52.5 t54.5 21.5t53.5 -21.5t20.5 -52.5q0 -33 -20.5 -54t-53.5 -21t-54.5 21.5t-21.5 53.5z" />
-<glyph unicode="&#xf7;" d="M70 637v78h841v-78h-841zM412 307q0 35 22.5 57.5t54.5 22.5q35 0 56.5 -22.5t21.5 -57.5q0 -39 -21.5 -61.5t-56.5 -22.5q-33 0 -55 22.5t-22 61.5zM412 1044q0 35 22.5 57.5t54.5 22.5q35 0 56.5 -22.5t21.5 -57.5q0 -39 -21.5 -61t-56.5 -22q-33 0 -55 22.5t-22 60.5z " />
-<glyph unicode="&#xf8;" horiz-adv-x="1095" d="M94 -2l119 143q-49 66 -78 152t-29 196q0 123 36 220.5t96.5 163t140.5 100.5t168 35q82 0 156.5 -29t134.5 -86l110 133l53 -43l-118 -141q49 -66 77.5 -154t28.5 -199q0 -123 -35.5 -218t-96 -160.5t-141.5 -100.5t-169 -35q-168 0 -289 115l-111 -135zM199 492 q0 -166 73 -281l510 614q-94 104 -235 105q-74 0 -138.5 -32t-110.5 -90t-72.5 -139t-26.5 -177zM313 156q96 -102 234 -103q74 0 138.5 32t111.5 89t73.5 137t26.5 176q0 168 -74 283z" />
-<glyph unicode="&#xf9;" horiz-adv-x="1083" d="M174 352v631h90v-618q0 -158 52.5 -233t170.5 -75q88 0 160 48.5t158 152.5v725h90v-983h-76l-10 164h-4q-72 -86 -152 -137.5t-182 -51.5q-154 0 -225.5 92.5t-71.5 284.5zM361 1450h106l189 -279h-78z" />
-<glyph unicode="&#xfa;" horiz-adv-x="1083" d="M174 352v631h90v-618q0 -158 52.5 -233t170.5 -75q88 0 160 48.5t158 152.5v725h90v-983h-76l-10 164h-4q-72 -86 -152 -137.5t-182 -51.5q-154 0 -225.5 92.5t-71.5 284.5zM426 1171l189 279h106l-217 -279h-78z" />
-<glyph unicode="&#xfb;" horiz-adv-x="1083" d="M174 352v631h90v-618q0 -158 52.5 -233t170.5 -75q88 0 160 48.5t158 152.5v725h90v-983h-76l-10 164h-4q-72 -86 -152 -137.5t-182 -51.5q-154 0 -225.5 92.5t-71.5 284.5zM308 1171l194 279h78l194 -279h-75l-154 203h-8l-154 -203h-75z" />
-<glyph unicode="&#xfc;" horiz-adv-x="1083" d="M174 352v631h90v-618q0 -158 52.5 -233t170.5 -75q88 0 160 48.5t158 152.5v725h90v-983h-76l-10 164h-4q-72 -86 -152 -137.5t-182 -51.5q-154 0 -225.5 92.5t-71.5 284.5zM305 1300q0 31 20.5 52.5t53.5 21.5t54.5 -21.5t21.5 -52.5q0 -33 -21.5 -54t-54.5 -21 t-53.5 21.5t-20.5 53.5zM627 1300q0 31 21.5 52.5t54.5 21.5t53.5 -21.5t20.5 -52.5q0 -33 -20.5 -54t-53.5 -21t-54.5 21.5t-21.5 53.5z" />
-<glyph unicode="&#xfd;" horiz-adv-x="892" d="M25 983h98l237 -618q23 -61 50.5 -135t56.5 -140h8q23 66 46.5 139.5t43.5 135.5l211 618h92l-389 -1106q-20 -61 -50 -119.5t-70 -104.5t-92 -74t-117 -28q-55 0 -101 21l21 80q16 -6 36.5 -11.5t43.5 -5.5q92 0 153.5 74t97.5 187l27 86zM354 1171l189 279h106 l-217 -279h-78z" />
-<glyph unicode="&#xfe;" horiz-adv-x="1114" d="M188 -444v1917h91v-424v-187q74 57 157.5 101.5t175.5 44.5q98 0 173 -36t124 -101.5t74 -157.5t25 -207q0 -125 -35 -223.5t-95.5 -167t-139.5 -104.5t-165 -36q-72 0 -144.5 31t-149.5 88v-180v-358h-91zM279 182q86 -70 159.5 -98.5t130.5 -28.5q74 0 137.5 33 t108.5 92.5t70.5 142.5t25.5 183q0 90 -17 168t-54 134t-96.5 88t-143.5 32q-74 0 -152.5 -42t-168.5 -120v-584z" />
-<glyph unicode="&#xff;" horiz-adv-x="892" d="M25 983h98l237 -618q23 -61 50.5 -135t56.5 -140h8q23 66 46.5 139.5t43.5 135.5l211 618h92l-389 -1106q-20 -61 -50 -119.5t-70 -104.5t-92 -74t-117 -28q-55 0 -101 21l21 80q16 -6 36.5 -11.5t43.5 -5.5q92 0 153.5 74t97.5 187l27 86zM233 1300q0 31 20.5 52.5 t53.5 21.5t54.5 -21.5t21.5 -52.5q0 -33 -21.5 -54t-54.5 -21t-53.5 21.5t-20.5 53.5zM555 1300q0 31 21.5 52.5t54.5 21.5t53.5 -21.5t20.5 -52.5q0 -33 -20.5 -54t-53.5 -21t-54.5 21.5t-21.5 53.5z" />
-<glyph unicode="&#x152;" horiz-adv-x="1691" d="M104 680q0 154 40 276.5t121 210.5t201 135.5t279 47.5h838v-82h-606v-510h502v-82h-502v-594h627v-82h-861q-160 0 -279.5 48t-199.5 137t-120 215t-40 280zM203 680q0 -133 33.5 -242.5t101.5 -189.5t172 -124t246 -44h127v1190h-127q-141 0 -245.5 -43t-172.5 -120 t-101.5 -186.5t-33.5 -240.5z" />
-<glyph unicode="&#x153;" horiz-adv-x="1736" d="M106 489q0 123 35 220.5t95.5 163t138.5 100.5t164 35q119 0 223 -73t158 -218q53 135 150 213t216 78q174 0 274.5 -119t100.5 -336q0 -37 -6 -74h-690q0 -92 27.5 -170t74.5 -134t112.5 -88t139.5 -32q80 0 143.5 23.5t118.5 64.5l39 -71q-59 -35 -130 -66t-181 -31 q-129 0 -231.5 78t-155.5 211q-57 -143 -155.5 -216t-227.5 -73q-86 0 -164 35t-138.5 100.5t-95.5 160.5t-35 218zM201 489q0 -96 25.5 -176t70.5 -137t107.5 -89t134.5 -32q74 0 136 32t106 89t70 137t26 176q0 98 -26 178.5t-70 138.5t-106.5 90t-135.5 32 q-72 0 -134.5 -32t-107.5 -90t-70.5 -138.5t-25.5 -178.5zM965 549h610q0 190 -79 285.5t-210 95.5q-61 0 -116.5 -28t-98.5 -78t-70.5 -120.5t-35.5 -154.5z" />
-<glyph unicode="&#x178;" horiz-adv-x="901" d="M-2 1350h100l205 -422q35 -74 70 -145.5t73 -145.5h9q39 74 75.5 145.5t71.5 145.5l205 422h96l-405 -803v-547h-95v547zM215 1559q0 35 20.5 55t53.5 20t54.5 -20.5t21.5 -54.5q0 -35 -21.5 -54.5t-54.5 -19.5t-53.5 19.5t-20.5 54.5zM537 1559q0 35 21.5 55t54.5 20 t53.5 -20.5t20.5 -54.5q0 -35 -20.5 -54.5t-53.5 -19.5t-54.5 19.5t-21.5 54.5z" />
-<glyph unicode="&#x2c6;" horiz-adv-x="1095" d="M314 1171l194 279h78l194 -279h-75l-154 203h-8l-154 -203h-75z" />
-<glyph unicode="&#x2dc;" horiz-adv-x="1095" d="M293 1190q2 33 10 65.5t25.5 58t43 42t62.5 16.5t68 -17.5t57.5 -39t51 -38.5t51.5 -17q33 0 51 29.5t27 82.5h61q-2 -33 -10 -65.5t-25.5 -58t-43 -42t-62.5 -16.5t-68 17.5t-56.5 39t-51 39t-52.5 17.5q-61 0 -78 -113h-61z" />
-<glyph unicode="&#x2000;" horiz-adv-x="884" />
-<glyph unicode="&#x2001;" horiz-adv-x="1769" />
-<glyph unicode="&#x2002;" horiz-adv-x="884" />
-<glyph unicode="&#x2003;" horiz-adv-x="1769" />
-<glyph unicode="&#x2004;" horiz-adv-x="589" />
-<glyph unicode="&#x2005;" horiz-adv-x="442" />
-<glyph unicode="&#x2006;" horiz-adv-x="294" />
-<glyph unicode="&#x2007;" horiz-adv-x="294" />
-<glyph unicode="&#x2008;" horiz-adv-x="221" />
-<glyph unicode="&#x2009;" horiz-adv-x="353" />
-<glyph unicode="&#x200a;" horiz-adv-x="98" />
-<glyph unicode="&#x2010;" horiz-adv-x="612" d="M82 471v80h450v-80h-450z" />
-<glyph unicode="&#x2011;" horiz-adv-x="612" d="M82 471v80h450v-80h-450z" />
-<glyph unicode="&#x2012;" horiz-adv-x="612" d="M82 471v80h450v-80h-450z" />
-<glyph unicode="&#x2013;" horiz-adv-x="983" d="M82 475v74h819v-74h-819z" />
-<glyph unicode="&#x2014;" horiz-adv-x="1638" d="M82 475v74h1474v-74h-1474z" />
-<glyph unicode="&#x2018;" horiz-adv-x="448" d="M119 1120q0 111 46 188.5t128 131.5l37 -47q-68 -55 -102.5 -110.5t-34.5 -143.5q4 2 16 2q31 0 56.5 -18.5t25.5 -57.5t-23.5 -60.5t-58.5 -21.5q-41 0 -65.5 36t-24.5 101z" />
-<glyph unicode="&#x2019;" horiz-adv-x="448" d="M119 1024q68 55 102.5 110.5t34.5 143.5q-4 -2 -16 -2q-29 0 -54.5 18.5t-25.5 57.5t22.5 60.5t57.5 21.5q41 0 66.5 -36t25.5 -102q0 -111 -46 -188.5t-130 -130.5z" />
-<glyph unicode="&#x201a;" horiz-adv-x="448" d="M119 -219q68 55 102.5 110.5t34.5 143.5q-4 -2 -16 -2q-29 0 -54.5 18.5t-25.5 57.5t22.5 60.5t57.5 21.5q41 0 66.5 -36t25.5 -102q0 -111 -46 -188.5t-130 -130.5z" />
-<glyph unicode="&#x201c;" horiz-adv-x="737" d="M119 1120q0 111 46 188.5t128 131.5l37 -47q-68 -55 -102.5 -110.5t-34.5 -143.5q4 2 16 2q31 0 56.5 -18.5t25.5 -57.5t-23.5 -60.5t-58.5 -21.5q-41 0 -65.5 36t-24.5 101zM408 1120q0 111 46 188.5t128 131.5l37 -47q-68 -55 -102.5 -110.5t-34.5 -143.5q4 2 16 2 q31 0 56.5 -18.5t25.5 -57.5t-23.5 -60.5t-58.5 -21.5q-41 0 -65.5 36t-24.5 101z" />
-<glyph unicode="&#x201d;" horiz-adv-x="737" d="M119 1024q68 55 102.5 110.5t34.5 143.5q-4 -2 -16 -2q-29 0 -54.5 18.5t-25.5 57.5t22.5 60.5t57.5 21.5q41 0 66.5 -36t25.5 -102q0 -111 -46 -188.5t-130 -130.5zM408 1024q68 55 102.5 110.5t34.5 143.5q-4 -2 -16 -2q-29 0 -54.5 18.5t-25.5 57.5t22.5 60.5 t57.5 21.5q41 0 66.5 -36t25.5 -102q0 -111 -46 -188.5t-130 -130.5z" />
-<glyph unicode="&#x201e;" horiz-adv-x="737" d="M119 -219q68 55 102.5 110.5t34.5 143.5q-4 -2 -16 -2q-29 0 -54.5 18.5t-25.5 57.5t22.5 60.5t57.5 21.5q41 0 66.5 -36t25.5 -102q0 -111 -46 -188.5t-130 -130.5zM408 -219q68 55 102.5 110.5t34.5 143.5q-4 -2 -16 -2q-29 0 -54.5 18.5t-25.5 57.5t22.5 60.5 t57.5 21.5q41 0 66.5 -36t25.5 -102q0 -111 -46 -188.5t-130 -130.5z" />
-<glyph unicode="&#x2022;" horiz-adv-x="575" d="M82 541q0 51 17.5 93t46 70.5t65.5 45t76 16.5t76.5 -16.5t66.5 -45t46.5 -70.5t17.5 -93q0 -53 -17.5 -94t-46.5 -71t-66.5 -45.5t-76.5 -15.5t-76 15.5t-65.5 45.5t-46 70.5t-17.5 94.5z" />
-<glyph unicode="&#x2026;" horiz-adv-x="1904" d="M213 68q0 45 26.5 69.5t61.5 24.5t60.5 -24.5t25.5 -69.5q0 -43 -25.5 -68t-60.5 -25t-61.5 25t-26.5 68zM903 68q0 45 26.5 69.5t61.5 24.5t60.5 -24.5t25.5 -69.5q0 -43 -25.5 -68t-60.5 -25t-61.5 25t-26.5 68zM1593 68q0 45 26.5 69.5t61.5 24.5t60.5 -24.5 t25.5 -69.5q0 -43 -25.5 -68t-60.5 -25t-61.5 25t-26.5 68z" />
-<glyph unicode="&#x202f;" horiz-adv-x="353" />
-<glyph unicode="&#x2039;" horiz-adv-x="530" d="M88 477v78l281 330l51 -43l-252 -326l252 -330l-51 -39z" />
-<glyph unicode="&#x203a;" horiz-adv-x="530" d="M111 186l249 330l-249 326l49 43l282 -330v-78l-282 -330z" />
-<glyph unicode="&#x205f;" horiz-adv-x="442" />
-<glyph unicode="&#x20ac;" d="M49 504v59l127 8q-2 23 -2 43.5v42.5v37t2 35h-127v59l133 9q14 125 53 224t100.5 169t144.5 106.5t182 36.5q92 0 167.5 -47t120.5 -112l-59 -56q-45 61 -101.5 99t-127.5 38q-164 0 -262.5 -121.5t-120.5 -336.5h569v-68h-576q-2 -16 -2 -33.5v-36.5v-44t2 -44h494v-67 h-487q27 -209 118.5 -330t239.5 -121q86 0 150.5 41t123.5 125l60 -51q-66 -90 -146 -141.5t-194 -51.5q-90 0 -166 37t-133.5 105.5t-96 166t-53.5 220.5h-133z" />
-<glyph unicode="&#x2122;" horiz-adv-x="1249" d="M4 1313v71h518v-71h-221v-557h-78v557h-219zM629 756v628h106l107 -256l63 -176h8l64 176l102 256h107v-628h-78v329l10 201h-8l-168 -432h-70l-167 432h-9l11 -201v-329h-78z" />
-<glyph unicode="&#xe000;" horiz-adv-x="983" d="M0 0v983h983v-983h-983z" />
-<glyph unicode="&#xfb01;" horiz-adv-x="1044" d="M68 905v70l135 8v219q0 147 63.5 221t179.5 74q72 0 144 -33l-25 -73q-31 16 -60.5 22t-58.5 6q-78 0 -115.5 -58t-37.5 -165v-213h227v-78h-227v-905h-90v905h-135zM729 1300q0 39 23.5 60.5t58.5 21.5t58 -21.5t23 -60.5q0 -35 -23 -57t-58 -22t-58.5 22.5t-23.5 56.5z M763 0v983h91v-983h-91z" />
-<glyph unicode="&#xfb02;" horiz-adv-x="1024" d="M68 905v70l135 8v219q0 147 63.5 221t179.5 74q72 0 144 -33l-25 -73q-31 16 -60.5 22t-58.5 6q-78 0 -115.5 -58t-37.5 -165v-213h227v-78h-227v-905h-90v905h-135zM727 131v1342h91v-1354q0 -33 12 -48.5t31 -15.5h13t23 4l17 -73q-14 -4 -28.5 -7.5t-37.5 -3.5 q-121 0 -121 156z" />
-</font>
-</defs></svg> 
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.ttf b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.ttf
deleted file mode 100644
index b081effa23ca1217956e1334a938b0d3bb25b250..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.ttf and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.woff b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.woff
deleted file mode 100644
index 0cc7b8d7815bbd7ee728812f8d8db78a6842b641..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-200-normal-webfont.woff and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.eot b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.eot
deleted file mode 100644
index 3490416ce5062bb5fabc5ef50f3c9f411691650b..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.eot and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.svg b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.svg
deleted file mode 100644
index 83388d83b58f50bd122569ca375647e805193a7c..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.svg
+++ /dev/null
@@ -1,245 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="source_sans_proregular" horiz-adv-x="1017" >
-<font-face units-per-em="2048" ascent="1536" descent="-512" />
-<missing-glyph horiz-adv-x="413" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="682" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode="&#xd;" horiz-adv-x="413" />
-<glyph unicode=" "  horiz-adv-x="413" />
-<glyph unicode="&#x09;" horiz-adv-x="413" />
-<glyph unicode="&#xa0;" horiz-adv-x="413" />
-<glyph unicode="!" horiz-adv-x="591" d="M174 102q0 59 36 95t87 36q49 0 85 -35.5t36 -95.5q0 -55 -36 -91t-85 -36q-51 0 -87 36t-36 91zM211 1372h170l-4 -192l-23 -774h-116l-23 774z" />
-<glyph unicode="&#x22;" horiz-adv-x="870" d="M164 1413h180l-6 -188l-33 -342h-102l-33 342zM524 1413h180l-6 -188l-33 -342h-102l-33 342z" />
-<glyph unicode="#" d="M72 418v117h178l37 303h-174v118h188l47 375h109l-47 -375h272l49 375h109l-49 -375h165v-118h-178l-37 -303h174v-117h-188l-51 -418h-109l49 418h-270l-51 -418h-111l52 418h-164zM360 535h271l37 303h-271z" />
-<glyph unicode="$" d="M106 135l78 117q66 -57 145 -97t173 -40q115 0 171 57t56 154q0 82 -42 136t-105.5 94t-138 75t-138 80t-105.5 109.5t-42 164.5q0 137 80.5 228.5t216.5 113.5v205h123v-203q98 -10 166.5 -53t123.5 -102l-90 -101q-57 55 -111.5 86t-138.5 31q-94 0 -149 -53.5 t-55 -143.5q0 -74 42 -121t105.5 -82.5t138 -69.5t138 -82t105.5 -118.5t42 -181.5q0 -147 -85 -241.5t-232 -114.5v-207h-123v202q-98 10 -190.5 54.5t-158.5 103.5z" />
-<glyph unicode="%" horiz-adv-x="1687" d="M72 946q0 203 83 312.5t222 109.5q137 0 221 -109.5t84 -312.5q0 -205 -84 -315.5t-221 -110.5q-139 0 -222 111t-83 315zM199 946q0 -160 49 -240.5t129 -80.5q78 0 127 81t49 240q0 160 -49 239t-127 79q-80 0 -129 -79t-49 -239zM414 -25l741 1393h115l-741 -1393 h-115zM1008 401q0 203 83 312.5t222 109.5q137 0 221 -109.5t84 -312.5q0 -205 -84 -315.5t-221 -110.5q-139 0 -222 111t-83 315zM1135 401q0 -160 49 -240.5t129 -80.5q78 0 127 81t49 240q0 160 -49 239t-127 79q-80 0 -129 -79t-49 -239z" />
-<glyph unicode="&#x26;" horiz-adv-x="1247" d="M66 348q0 68 21.5 123t58 102.5t85 87t99.5 74.5q-41 84 -64.5 163t-23.5 153q0 68 22.5 125t63.5 100t98 67.5t127 24.5q125 0 194.5 -73.5t69.5 -192.5q0 -66 -26.5 -121t-69.5 -103.5t-97.5 -90.5t-109.5 -82q66 -104 155 -200.5t185 -176.5q61 84 109.5 182t78.5 215 h158q-41 -133 -98.5 -254t-136.5 -227q70 -47 133 -80t119 -49l-46 -140q-72 20 -149.5 58.5t-159.5 95.5q-78 -70 -173 -112t-214 -42q-92 0 -167 28t-129 77t-83.5 117.5t-29.5 150.5zM229 358q0 -55 20.5 -101t56.5 -79t84 -50t104 -17q70 0 133 28.5t123 79.5 q-98 86 -189.5 188.5t-163.5 210.5q-72 -57 -120 -119.5t-48 -140.5zM387 1053q0 -55 17.5 -114.5t46.5 -121.5q45 31 87 62.5t73.5 65.5t50 72t18.5 83q0 59 -29.5 103t-97.5 44q-76 0 -121 -55t-45 -139z" />
-<glyph unicode="'" horiz-adv-x="509" d="M164 1413h180l-6 -188l-33 -342h-102l-33 342z" />
-<glyph unicode="(" horiz-adv-x="620" d="M168 569q0 270 71.5 496.5t198.5 433.5l105 -49q-119 -197 -177.5 -421t-58.5 -460t58.5 -460t177.5 -420l-105 -49q-127 205 -198.5 432t-71.5 497z" />
-<glyph unicode=")" horiz-adv-x="620" d="M78 -311q119 197 177 421t58 459q0 236 -58 460t-177 421l104 49q127 -207 199 -433t72 -497q0 -270 -72 -497.5t-199 -431.5z" />
-<glyph unicode="*" horiz-adv-x="856" d="M119 1194l31 94l208 -51l19 221h100l19 -219l211 49l30 -94l-198 -82l114 -192l-80 -60l-145 176l-145 -176l-82 60l116 192z" />
-<glyph unicode="+" d="M70 612v127h372v400h133v-400h373v-127h-373v-399h-133v399h-372z" />
-<glyph unicode="," horiz-adv-x="509" d="M96 -250q86 39 135.5 102.5t49.5 147.5q-6 -2 -21 -2q-49 0 -85 29.5t-36 87.5q0 55 37 86.5t88 31.5q66 0 104 -53t38 -145q0 -133 -72 -231.5t-197 -151.5z" />
-<glyph unicode="-" horiz-adv-x="636" d="M84 449v129h471v-129h-471z" />
-<glyph unicode="." horiz-adv-x="509" d="M133 102q0 59 36 95t87 36q49 0 85 -35.5t36 -95.5q0 -55 -36 -91t-85 -36q-51 0 -87 36t-36 91z" />
-<glyph unicode="/" horiz-adv-x="716" d="M20 -328l547 1782h123l-545 -1782h-125z" />
-<glyph unicode="0" d="M90 657q0 330 110.5 502t309.5 172q197 0 307.5 -172t110.5 -502t-110.5 -506t-307.5 -176q-199 0 -309.5 176.5t-110.5 505.5zM254 657q0 -287 70.5 -416.5t185.5 -129.5q57 0 103 31.5t80 98t52.5 170t18.5 246.5t-18.5 246t-52.5 167.5t-80 95t-103 30.5t-104.5 -30.5 t-81 -95t-52 -167t-18.5 -246.5z" />
-<glyph unicode="1" d="M162 0v139h299v963h-238v108q90 16 156.5 40t120.5 57h129v-1168h270v-139h-737z" />
-<glyph unicode="2" d="M74 1133q82 90 174 144t221 54q182 0 286.5 -105.5t104.5 -279.5q0 -92 -40 -185t-110.5 -192.5t-168 -207t-213.5 -228.5q53 4 110.5 8t108.5 4h379v-145h-844v100q147 147 262 266t192.5 220.5t118.5 186.5t41 165q0 113 -61.5 184.5t-185.5 71.5q-82 0 -152 -46 t-127 -112z" />
-<glyph unicode="3" d="M53 160l86 110q59 -61 138 -108t196 -47q119 0 194.5 64.5t75.5 174.5q0 57 -21.5 105.5t-70.5 83.5t-129 53t-196 18v129q104 0 174.5 18.5t114.5 51.5t62.5 78t18.5 96q0 96 -60.5 151.5t-164.5 55.5q-82 0 -150.5 -37t-127.5 -96l-91 106q76 72 167 118t208 46 q86 0 158 -22.5t124 -64.5t80.5 -103.5t28.5 -141.5q0 -119 -65.5 -194.5t-171.5 -116.5v-8q59 -14 110.5 -42t90 -70t60 -97t21.5 -123q0 -86 -33.5 -155.5t-92 -117.5t-136.5 -74t-168 -26q-78 0 -142.5 15.5t-117.5 41t-95 58.5t-75 70z" />
-<glyph unicode="4" d="M35 360v111l559 836h188v-811h179v-136h-179v-360h-159v360h-588zM213 496h410v378q0 53 3 126t7 126h-8q-25 -47 -51.5 -92t-55.5 -92z" />
-<glyph unicode="5" d="M51 154l82 110q57 -59 136 -104t194 -45q59 0 111.5 21.5t91.5 60.5t61.5 94t22.5 123q0 135 -76 210.5t-203 75.5q-68 0 -116 -20.5t-107 -58.5l-90 57l43 629h653v-146h-506l-35 -387q47 25 94.5 39t106.5 14q84 0 157.5 -24.5t129 -74.5t87.5 -127t32 -183t-37 -188.5 t-98.5 -138.5t-140.5 -86t-165 -30q-78 0 -142.5 15.5t-116.5 40t-94 56.5t-75 67z" />
-<glyph unicode="6" d="M98 604q0 197 41 335t110.5 225t159 127t187.5 40q106 0 183 -40t132 -99l-94 -105q-41 47 -97 75t-118 28q-68 0 -129 -28.5t-108.5 -94.5t-76 -171t-30.5 -261q61 76 143 120t162 44q170 0 271.5 -100.5t101.5 -303.5q0 -94 -31 -171t-84 -132t-122.5 -86t-149.5 -31 q-96 0 -178 39t-142.5 118t-95.5 196.5t-35 275.5zM262 500q16 -193 89 -292t198 -99q49 0 90 20.5t71.5 58t48 90t17.5 117.5q0 129 -59.5 203t-181.5 74q-61 0 -134 -40t-139 -132z" />
-<glyph unicode="7" d="M90 1161v146h842v-105q-117 -147 -189.5 -282.5t-115.5 -275.5t-62.5 -297t-27.5 -347h-175q8 184 33 338t69 292t112.5 267t164.5 264h-651z" />
-<glyph unicode="8" d="M84 334q0 63 21.5 117.5t55.5 98.5t78 78t91 58v8q-72 51 -127.5 124t-55.5 177q0 76 29 137.5t78 105.5t116.5 68.5t147.5 24.5q86 0 153.5 -25.5t116 -71.5t74 -110.5t25.5 -140.5q0 -51 -17.5 -98t-43 -88t-57.5 -74t-62 -55v-9q43 -25 83.5 -56.5t72.5 -71t51.5 -91 t19.5 -116.5q0 -74 -31 -137.5t-86 -110.5t-133 -74t-172 -27q-92 0 -171 27t-135 75t-89 113.5t-33 143.5zM236 350q0 -55 21.5 -100t59 -79t89 -52.5t110.5 -18.5q115 0 185.5 63.5t70.5 166.5q0 63 -28.5 108t-78 79t-114 61.5t-133.5 56.5q-78 -53 -130 -124t-52 -161z M303 995q0 -59 24.5 -101t66.5 -75t96.5 -58t113.5 -48q66 59 101.5 124.5t35.5 137.5q0 98 -59 164.5t-168 66.5q-92 0 -151.5 -57t-59.5 -154z" />
-<glyph unicode="9" d="M82 911q0 94 30.5 171t83 132.5t123 86t148.5 30.5q96 0 179 -39t143.5 -117.5t94.5 -196.5t34 -276q0 -197 -41 -335t-111 -225t-159 -127t-187 -40q-104 0 -183 39t-133 99l95 106q41 -47 97 -75.5t118 -28.5q70 0 131 28.5t108 95t76 173t31 264.5q-61 -78 -143 -123 t-164 -45q-170 0 -270.5 100.5t-100.5 302.5zM240 911q0 -129 59 -202.5t182 -73.5q63 0 136 40t139 134q-16 193 -90 291t-199 98q-47 0 -89 -20.5t-73 -58.5t-48 -91t-17 -117z" />
-<glyph unicode=":" horiz-adv-x="509" d="M133 102q0 59 36 95t87 36q49 0 85 -35.5t36 -95.5q0 -55 -36 -91t-85 -36q-51 0 -87 36t-36 91zM133 841q0 59 36 95t87 36q49 0 85 -35.5t36 -95.5q0 -55 -36 -91t-85 -36q-51 0 -87 36t-36 91z" />
-<glyph unicode=";" horiz-adv-x="509" d="M96 -250q86 39 135.5 102.5t49.5 147.5q-6 -2 -21 -2q-49 0 -85 29.5t-36 87.5q0 55 37 86.5t88 31.5q66 0 104 -53t38 -145q0 -133 -72 -231.5t-197 -151.5zM133 841q0 59 36 95t87 36q49 0 85 -35.5t36 -95.5q0 -55 -36 -91t-85 -36q-51 0 -87 36t-36 91z" />
-<glyph unicode="&#x3c;" d="M70 612v136l878 344v-146l-432 -160l-274 -102v-8l274 -103l432 -159v-146z" />
-<glyph unicode="=" d="M70 395v127h878v-127h-878zM70 831v127h878v-127h-878z" />
-<glyph unicode="&#x3e;" d="M70 268v146l432 159l274 103v8l-274 102l-432 160v146l878 -344v-136z" />
-<glyph unicode="?" horiz-adv-x="870" d="M78 1227q66 74 149.5 122t194.5 48q160 0 255 -87t95 -241q0 -68 -24.5 -123t-60.5 -104t-76 -97.5t-73.5 -99.5t-52 -109.5t-10.5 -129.5h-147q-12 80 5 144t48 118.5t71 101.5t74.5 93t58 93.5t23.5 102.5q0 82 -50 140t-148 58q-68 0 -128.5 -31.5t-107.5 -86.5z M285 102q0 59 34.5 95t86.5 36q51 0 86.5 -35.5t35.5 -95.5q0 -55 -35.5 -91t-86.5 -36t-86 36t-35 91z" />
-<glyph unicode="@" horiz-adv-x="1734" d="M104 416q0 205 69 372.5t186.5 286.5t272 183.5t326.5 64.5q156 0 280 -49t211 -138t134 -214t47 -277q0 -135 -38 -236.5t-97 -170t-132 -103.5t-142 -35q-84 0 -142.5 39t-68.5 117h-4q-51 -59 -117 -99t-133 -40q-104 0 -175 73.5t-71 215.5q0 82 27.5 166.5t79 153.5 t124 112t162.5 43q53 0 94 -23.5t70 -75.5h4l23 82h112l-80 -409q-61 -240 111 -240q49 0 97 28.5t88 83t64.5 133.5t24.5 179q0 123 -35.5 228.5t-107.5 181t-178.5 118.5t-245.5 43q-137 0 -266 -56t-229.5 -158.5t-161 -248t-60.5 -325.5q0 -150 46 -266.5t128 -196.5 t194 -122t243 -42q94 0 178 25.5t153 66.5l45 -100q-174 -104 -389 -104q-152 0 -282.5 47t-228 140t-154 230.5t-56.5 315.5zM645 416q0 -98 41 -141.5t102 -43.5q43 0 89.5 29t99.5 92l59 326q-29 47 -59.5 66.5t-71.5 19.5q-61 0 -109 -33t-82 -84t-51.5 -112.5 t-17.5 -118.5z" />
-<glyph unicode="A" horiz-adv-x="1101" d="M0 0l455 1343h192l455 -1343h-180l-129 410h-490l-129 -410h-174zM346 547h404l-64 205q-35 113 -67.5 224t-65.5 228h-8q-33 -117 -66 -228.5t-67 -223.5z" />
-<glyph unicode="B" horiz-adv-x="1193" d="M178 0v1343h400q102 0 187 -18t146.5 -57t95 -101.5t33.5 -150.5q0 -100 -57 -181t-178 -112v-8q147 -23 229 -103t82 -219q0 -98 -37 -172t-104.5 -123t-160.5 -73.5t-206 -24.5h-430zM350 135h234q174 0 269 64.5t95 201.5q0 125 -93 183.5t-271 58.5h-234v-508z M350 770h199q172 0 247.5 59.5t75.5 171.5q0 111 -79.5 159t-235.5 48h-207v-438z" />
-<glyph unicode="C" horiz-adv-x="1159" d="M100 672q0 162 45 291t126 219t190.5 138t238.5 48q121 0 214.5 -50t152.5 -116l-96 -108q-53 57 -119 91t-150 34q-96 0 -174.5 -38t-134 -109t-86.5 -171t-31 -225q0 -127 30 -228.5t84 -173t131 -110.5t173 -39t169 39t138 110l97 -104q-78 -92 -178.5 -143.5 t-229.5 -51.5q-127 0 -234.5 47.5t-186.5 136.5t-124 219t-45 294z" />
-<glyph unicode="D" horiz-adv-x="1253" d="M178 0v1343h336q311 0 473 -172t162 -493q0 -160 -41 -286t-121 -213t-196.5 -133t-268.5 -46h-344zM350 139h152q238 0 354.5 141.5t116.5 397.5t-117 391t-354 135h-152v-1065z" />
-<glyph unicode="E" horiz-adv-x="1069" d="M178 0v1343h774v-143h-602v-422h508v-145h-508v-488h623v-145h-795z" />
-<glyph unicode="F" horiz-adv-x="1001" d="M178 0v1343h776v-143h-604v-455h512v-143h-512v-602h-172z" />
-<glyph unicode="G" horiz-adv-x="1253" d="M100 672q0 162 46.5 291t129 219t196.5 138t249 48q137 0 231.5 -52t153.5 -114l-98 -108q-51 53 -118 89t-167 36q-102 0 -184 -38t-140.5 -109t-90.5 -171t-32 -225q0 -127 30 -228.5t86.5 -173t139 -110.5t191.5 -39q72 0 137.5 21.5t106.5 58.5v350h-285v141h440 v-565q-66 -66 -174 -111t-243 -45q-133 0 -244 47.5t-191 136.5t-125 219t-45 294z" />
-<glyph unicode="H" horiz-adv-x="1325" d="M178 0v1343h172v-563h625v563h170v-1343h-170v633h-625v-633h-172z" />
-<glyph unicode="I" horiz-adv-x="528" d="M178 0v1343h172v-1343h-172z" />
-<glyph unicode="J" horiz-adv-x="970" d="M59 190l121 86q47 -80 104.5 -115.5t129.5 -35.5q109 0 162 66.5t53 220.5v931h170v-948q0 -86 -20.5 -162.5t-65.5 -134t-116 -90.5t-169 -33q-250 0 -369 215z" />
-<glyph unicode="K" horiz-adv-x="1175" d="M178 0v1343h172v-673h4l559 673h195l-422 -512l485 -831h-190l-401 698l-230 -272v-426h-172z" />
-<glyph unicode="L" horiz-adv-x="985" d="M178 0v1343h172v-1198h586v-145h-758z" />
-<glyph unicode="M" horiz-adv-x="1478" d="M178 0v1343h203l260 -720l96 -275h8l95 275l258 720h200v-1343h-161v739q0 90 8 199t14 199h-8l-107 -299l-258 -703h-98l-258 703l-106 299h-9q6 -90 13.5 -199t7.5 -199v-739h-158z" />
-<glyph unicode="N" horiz-adv-x="1314" d="M178 0v1343h176l488 -843l145 -279h8q-6 102 -14 212t-8 216v694h162v-1343h-177l-485 846l-145 276h-9q6 -102 13.5 -207.5t7.5 -212.5v-702h-162z" />
-<glyph unicode="O" horiz-adv-x="1349" d="M100 678q0 162 42 290t119 217t182.5 136t232.5 47q125 0 230.5 -48t182 -137t118.5 -217t42 -288q0 -162 -42 -292t-118.5 -221t-182 -140.5t-230.5 -49.5q-127 0 -232.5 49.5t-182.5 140.5t-119 221t-42 292zM276 678q0 -127 29 -228.5t81 -174t126 -111.5t164 -39 t162.5 39t125 111.5t81 174t28.5 228.5q0 125 -28.5 225.5t-81 170t-125 107.5t-162.5 38t-164 -38t-126 -107.5t-81 -170t-29 -225.5z" />
-<glyph unicode="P" horiz-adv-x="1169" d="M178 0v1343h414q111 0 203 -20t156.5 -66.5t100 -122t35.5 -186.5q0 -106 -35.5 -184t-101 -129t-157 -77t-201.5 -26h-242v-532h-172zM350 672h219q178 0 263.5 66.5t85.5 209.5q0 145 -87.5 201.5t-261.5 56.5h-219v-534z" />
-<glyph unicode="Q" horiz-adv-x="1349" d="M98 678q0 162 42 290t118 217t181.5 136t232.5 47t232.5 -48t182 -137t118.5 -217t42 -288q0 -145 -33.5 -265t-96 -209t-150.5 -145.5t-195 -74.5q47 -90 133 -133.5t197 -43.5q45 0 78.5 6.5t62.5 14.5l33 -133q-31 -10 -82 -20.5t-111 -10.5q-186 0 -311 89t-184 229 q-111 14 -201 69t-154.5 145.5t-99.5 212t-35 269.5zM274 678q0 -127 29 -228.5t81 -174t125 -111.5t163 -39t162.5 39t125 111.5t81 174t28.5 228.5q0 125 -28.5 225.5t-81 170t-125 107.5t-162.5 38t-163 -38t-125 -107.5t-81 -170t-29 -225.5z" />
-<glyph unicode="R" horiz-adv-x="1179" d="M178 0v1343h422q102 0 188 -19t148.5 -64.5t97.5 -117t35 -175.5q0 -158 -82 -252t-219 -129l342 -586h-195l-323 567h-242v-567h-172zM350 707h225q158 0 241 64.5t83 195.5q0 133 -83 186t-241 53h-225v-499z" />
-<glyph unicode="S" horiz-adv-x="1083" d="M82 174l102 119q72 -76 168.5 -122t202.5 -46q133 0 207 60.5t74 158.5q0 51 -17.5 87t-48.5 61.5t-72 46t-88 43.5l-192 84q-47 20 -95.5 48.5t-88 69.5t-64.5 97.5t-25 130.5q0 76 32 141.5t89.5 113.5t134 74.5t168.5 26.5q121 0 222.5 -46t173.5 -120l-91 -110 q-61 59 -136.5 93t-168.5 34q-115 0 -183.5 -52.5t-68.5 -144.5q0 -49 20.5 -83t52.5 -59.5t72 -45t79 -35.5l192 -82q57 -25 108.5 -56.5t88.5 -73.5t58.5 -98.5t21.5 -130.5q0 -80 -32 -149.5t-91.5 -121.5t-144.5 -82t-191 -30q-141 0 -261 53.5t-208 145.5z" />
-<glyph unicode="T" horiz-adv-x="1087" d="M51 1200v143h985v-143h-407v-1200h-170v1200h-408z" />
-<glyph unicode="U" horiz-adv-x="1310" d="M172 555v788h172v-792q0 -121 24.5 -203t66.5 -131t98.5 -70.5t121.5 -21.5q68 0 126.5 21.5t101.5 70.5t67.5 131t24.5 203v792h164v-788q0 -162 -37 -272.5t-101.5 -179t-153.5 -98.5t-192 -30q-102 0 -191 30t-153.5 98.5t-101.5 179t-37 272.5z" />
-<glyph unicode="V" horiz-adv-x="1044" d="M-4 1343h180l217 -725q35 -121 63.5 -223t65.5 -221h8q18 59 35 113.5t32 108t30.5 108.5t31.5 114l215 725h175l-426 -1343h-199z" />
-<glyph unicode="W" horiz-adv-x="1599" d="M41 1343h176l141 -731q20 -111 40 -217t40 -217h8q23 111 46.5 218.5t48.5 215.5l186 731h156l186 -731q23 -106 47.5 -214.5t48.5 -219.5h9q20 111 38.5 218.5t36.5 215.5l142 731h165l-278 -1343h-207l-203 809q-16 78 -32.5 152.5t-30.5 152.5h-8q-16 -78 -34 -152.5 t-34 -152.5l-201 -809h-202z" />
-<glyph unicode="X" horiz-adv-x="1040" d="M27 0l391 694l-367 649h189l184 -344q25 -47 48.5 -91t55.5 -103h9q29 59 49 103t45 91l178 344h180l-364 -657l391 -686h-189l-198 362q-27 49 -54.5 101.5t-60.5 114.5h-8q-29 -61 -54.5 -113.5t-52.5 -102.5l-194 -362h-178z" />
-<glyph unicode="Y" horiz-adv-x="964" d="M-8 1343h184l172 -378q33 -74 64.5 -145.5t66.5 -147.5h8q35 76 69 147.5t65 145.5l174 378h176l-404 -823v-520h-170v520z" />
-<glyph unicode="Z" horiz-adv-x="1093" d="M86 0v102l709 1098h-645v143h856v-100l-709 -1098h715v-145h-926z" />
-<glyph unicode="[" horiz-adv-x="620" d="M193 -311v1761h366v-98h-240v-1567h240v-96h-366z" />
-<glyph unicode="\" horiz-adv-x="716" d="M29 1454h121l546 -1782h-123z" />
-<glyph unicode="]" horiz-adv-x="620" d="M63 -215h238v1567h-238v98h365v-1761h-365v96z" />
-<glyph unicode="^" d="M123 582l311 790h150l311 -790h-147l-134 360l-100 272h-8l-103 -272l-133 -360h-147z" />
-<glyph unicode="_" horiz-adv-x="1024" d="M25 -145h974v-113h-974v113z" />
-<glyph unicode="`" horiz-adv-x="1110" d="M328 1462h176l184 -288h-129z" />
-<glyph unicode="a" horiz-adv-x="1048" d="M119 258q0 164 146.5 251t465.5 122q0 47 -9 92t-32.5 80t-62.5 56.5t-101 21.5q-88 0 -162.5 -33t-134.5 -74l-67 117q70 45 170 87t221 42q182 0 264 -111.5t82 -298.5v-610h-139l-15 119h-4q-72 -59 -154.5 -101.5t-174.5 -42.5q-127 0 -210 74t-83 209zM285 270 q0 -86 50 -122.5t124 -36.5q72 0 136 33.5t136 99.5v276q-125 -16 -211 -38.5t-138 -53.5t-74.5 -71t-22.5 -87z" />
-<glyph unicode="b" horiz-adv-x="1136" d="M168 0v1458h168v-397l-4 -180q68 59 147.5 99t163.5 40q96 0 170 -36t124 -102.5t75.5 -159.5t25.5 -208q0 -127 -34.5 -227.5t-94 -170t-137.5 -105.5t-164 -36q-70 0 -144.5 32t-139.5 91h-7l-14 -98h-135zM336 221q66 -57 130 -80.5t114 -23.5q61 0 113 27.5t90 77.5 t59.5 124t21.5 166q0 82 -14 149.5t-46 115.5t-82 75t-120 27q-121 0 -266 -136v-522z" />
-<glyph unicode="c" horiz-adv-x="933" d="M94 496q0 125 39 222t104.5 164.5t152.5 102.5t183 35q98 0 169 -36t122 -83l-84 -108q-45 39 -93 63.5t-107 24.5q-68 0 -125.5 -28t-98.5 -79t-64.5 -121.5t-23.5 -156.5t22.5 -156t62.5 -120t97.5 -77.5t124.5 -27.5q72 0 130.5 29.5t103.5 70.5l76 -111 q-68 -59 -151 -94t-173 -35q-98 0 -184 35t-148.5 101.5t-98.5 164t-36 220.5z" />
-<glyph unicode="d" horiz-adv-x="1136" d="M96 496q0 121 36 218t95.5 164.5t137 104.5t163.5 37t149.5 -31t129.5 -84l-8 170v383h170v-1458h-140l-14 117h-6q-59 -57 -136 -99.5t-165 -42.5q-188 0 -300 135.5t-112 385.5zM270 498q0 -180 72 -280.5t203 -100.5q70 0 131 33.5t123 103.5v520q-63 57 -122 81 t-120 24q-59 0 -111.5 -28t-91.5 -78t-61.5 -119.5t-22.5 -155.5z" />
-<glyph unicode="e" horiz-adv-x="1015" d="M94 496q0 123 38 220t100.5 164.5t142.5 103.5t166 36q94 0 168.5 -33t125 -94.5t77 -147.5t26.5 -192q0 -55 -6 -92h-672q10 -162 99.5 -256t232.5 -94q72 0 132 21.5t116 55.5l59 -110q-66 -41 -145.5 -72t-182.5 -31q-100 0 -187 36t-151.5 102.5t-101.5 163 t-37 219.5zM258 571h533q0 154 -64.5 235t-181.5 81q-53 0 -101.5 -21.5t-87.5 -61.5t-64.5 -98.5t-33.5 -134.5z" />
-<glyph unicode="f" horiz-adv-x="598" d="M61 858v127l136 10v158q0 154 70.5 242t219.5 88q47 0 89 -9.5t77 -23.5l-37 -129q-55 25 -112 25q-139 0 -139 -193v-158h210v-137h-210v-858h-168v858h-136z" />
-<glyph unicode="g" horiz-adv-x="1032" d="M92 -190q0 63 39 120.5t107 104.5v8q-37 23 -62.5 62.5t-25.5 99.5q0 63 34.5 110t73.5 74v8q-49 41 -89 109.5t-40 159.5q0 82 29.5 147.5t81 111.5t120 70.5t144.5 24.5q41 0 76.5 -7t64.5 -18h346v-129h-205q35 -35 58.5 -88t23.5 -116q0 -80 -28.5 -144.5 t-77.5 -108.5t-115.5 -69t-142.5 -25q-37 0 -76 9.5t-74 25.5q-27 -23 -45 -50.5t-18 -68.5q0 -47 37 -77.5t139 -30.5h192q174 0 261.5 -56.5t87.5 -181.5q0 -70 -35 -132t-100.5 -109t-158.5 -75t-210 -28q-92 0 -168 17.5t-130 52.5t-84 84t-30 115zM240 -168 q0 -80 76.5 -127t211.5 -47q72 0 130.5 17.5t99.5 45t63.5 64.5t22.5 76q0 70 -51.5 96.5t-149.5 26.5h-172q-29 0 -62.5 3t-66.5 13q-53 -39 -77.5 -82t-24.5 -86zM293 666q0 -55 16.5 -99.5t46 -75t67.5 -47t81 -16.5t81 16.5t67.5 47t46 74.5t16.5 100q0 111 -61.5 171 t-149.5 60t-149.5 -60.5t-61.5 -170.5z" />
-<glyph unicode="h" horiz-adv-x="1114" d="M168 0v1458h168v-397l-6 -205q72 68 149.5 116t182.5 48q158 0 230.5 -98.5t72.5 -290.5v-631h-168v608q0 141 -45 203.5t-144 62.5q-78 0 -137 -38.5t-135 -114.5v-721h-168z" />
-<glyph unicode="i" horiz-adv-x="503" d="M137 1309q0 49 34 78.5t83 29.5t83 -29.5t34 -78.5q0 -47 -34 -78t-83 -31t-83 31t-34 78zM168 0v995h168v-995h-168z" />
-<glyph unicode="j" horiz-adv-x="505" d="M-82 -418l35 127q18 -6 42.5 -11t51.5 -5q74 0 98.5 51t24.5 143v1108h168v-1108q0 -152 -61.5 -241.5t-210.5 -89.5q-47 0 -84 8t-64 18zM139 1309q0 49 34 78.5t83 29.5q47 0 81 -29.5t34 -78.5q0 -47 -34 -78t-81 -31q-49 0 -83 31t-34 78z" />
-<glyph unicode="k" horiz-adv-x="1013" d="M168 0v1458h166v-987h6l424 524h186l-334 -399l379 -596h-184l-291 479l-186 -217v-262h-166z" />
-<glyph unicode="l" horiz-adv-x="522" d="M168 201v1257h168v-1270q0 -41 14.5 -57t32.5 -16h15.5t21.5 4l22 -127q-16 -8 -38.5 -12.5t-57.5 -4.5q-96 0 -137 57.5t-41 168.5z" />
-<glyph unicode="m" horiz-adv-x="1697" d="M168 0v995h139l15 -143h6q66 72 142.5 120t166.5 48q115 0 179.5 -50t94.5 -141q78 86 157 138.5t171 52.5q154 0 228.5 -98.5t74.5 -290.5v-631h-168v608q0 141 -45 203.5t-139 62.5q-113 0 -250 -153v-721h-168v608q0 141 -45 203.5t-141 62.5q-113 0 -250 -153v-721 h-168z" />
-<glyph unicode="n" horiz-adv-x="1120" d="M168 0v995h139l15 -143h6q72 72 150.5 120t183.5 48q158 0 230.5 -98.5t72.5 -290.5v-631h-168v608q0 141 -45 203.5t-144 62.5q-78 0 -137 -38.5t-135 -114.5v-721h-168z" />
-<glyph unicode="o" horiz-adv-x="1110" d="M94 496q0 125 38 222t101.5 164.5t146.5 102.5t175 35t175 -35t146.5 -102.5t101.5 -164.5t38 -222q0 -123 -38 -220.5t-101.5 -164t-146.5 -101.5t-175 -35t-175 35t-146.5 101.5t-101.5 164t-38 220.5zM268 496q0 -86 20.5 -156t58.5 -120t91.5 -77.5t116.5 -27.5 t116.5 27.5t91.5 77.5t58.5 120t20.5 156t-20.5 156.5t-58.5 121.5t-91.5 79t-116.5 28t-116.5 -28t-91.5 -79t-58.5 -121.5t-20.5 -156.5z" />
-<glyph unicode="p" horiz-adv-x="1136" d="M168 -420v1415h139l15 -114h6q68 57 148.5 98t168.5 41q96 0 170 -36t123 -102.5t74.5 -159.5t25.5 -210q0 -127 -34.5 -226.5t-94 -169t-137.5 -105.5t-164 -36q-70 0 -138.5 31t-137.5 84l4 -174v-336h-168zM336 221q68 -57 131 -80.5t113 -23.5q61 0 113 27.5t90 77.5 t59.5 124t21.5 166q0 82 -14 149.5t-46 115.5t-82 75t-120 27q-63 0 -127.5 -35t-138.5 -101v-522z" />
-<glyph unicode="q" horiz-adv-x="1126" d="M96 496q0 121 36 218t95.5 164.5t137 104.5t163.5 37t151.5 -29.5t133.5 -89.5h4l17 94h135v-1415h-170v354l8 177q-59 -55 -136 -95.5t-163 -40.5q-188 0 -300 135.5t-112 385.5zM270 498q0 -180 72 -280.5t203 -100.5q70 0 131 33.5t123 103.5v520q-63 57 -122 81 t-120 24q-59 0 -111.5 -28t-91.5 -78t-61.5 -119.5t-22.5 -155.5z" />
-<glyph unicode="r" horiz-adv-x="710" d="M168 0v995h139l15 -180h6q51 94 123.5 149.5t158.5 55.5q59 0 107 -21l-33 -147q-25 8 -45.5 12t-50.5 4q-63 0 -132 -51t-120 -178v-639h-168z" />
-<glyph unicode="s" horiz-adv-x="858" d="M57 113l84 112q66 -53 134.5 -86t158.5 -33q98 0 147.5 45.5t49.5 110.5q0 39 -20.5 67.5t-52.5 50t-73 38t-82 33.5q-53 18 -106 41.5t-95 57.5t-69 79t-27 108q0 59 24 111.5t68 90.5t107.5 59.5t143.5 21.5q94 0 172.5 -33t136.5 -80l-80 -106q-51 39 -106.5 63.5 t-120.5 24.5q-94 0 -138.5 -43t-44.5 -101q0 -35 18.5 -59t49.5 -44.5t70.5 -36t82.5 -32.5q53 -20 107.5 -42.5t97.5 -56.5t71 -83t28 -119q0 -61 -24 -114.5t-70 -94t-114.5 -64.5t-156.5 -24q-106 0 -202.5 39t-168.5 99z" />
-<glyph unicode="t" horiz-adv-x="692" d="M49 858v127l156 10l20 279h142v-279h268v-137h-268v-553q0 -92 33.5 -142t119.5 -50q27 0 57.5 8t55.5 18l33 -127q-41 -14 -89.5 -25.5t-95.5 -11.5q-80 0 -134 25t-88 68t-48 104t-14 135v551h-148z" />
-<glyph unicode="u" horiz-adv-x="1114" d="M154 365v630h170v-608q0 -141 44 -203.5t142 -62.5q78 0 137.5 40t130.5 128v706h168v-995h-139l-14 156h-7q-70 -82 -146.5 -131.5t-180.5 -49.5q-160 0 -232.5 98.5t-72.5 291.5z" />
-<glyph unicode="v" horiz-adv-x="956" d="M25 995h174l188 -565q23 -74 46.5 -147.5t45.5 -145.5h8q23 72 45.5 145.5t45.5 147.5l188 565h166l-352 -995h-197z" />
-<glyph unicode="w" horiz-adv-x="1470" d="M49 995h172l148 -575q16 -72 30.5 -139.5t28.5 -137.5h8q16 70 32.5 138.5t35.5 138.5l153 575h164l156 -575q18 -72 35.5 -139.5t34.5 -137.5h8q16 70 30.5 137.5t30.5 139.5l146 575h159l-266 -995h-205l-143 535q-18 72 -33.5 141t-34.5 145h-8q-16 -76 -32.5 -146.5 t-36.5 -142.5l-140 -532h-196z" />
-<glyph unicode="x" horiz-adv-x="913" d="M29 0l325 520l-301 475h183l133 -219q23 -41 47 -83t51 -83h8q23 41 45.5 83t44.5 83l121 219h176l-301 -493l324 -502h-183l-145 231q-27 45 -53.5 90.5t-54.5 88.5h-9q-27 -43 -51 -87t-49 -92l-135 -231h-176z" />
-<glyph unicode="y" horiz-adv-x="956" d="M25 995h174l202 -551q23 -66 48.5 -138.5t48.5 -141.5h8q23 68 43 141.5t41 138.5l178 551h164l-375 -1077q-27 -74 -59.5 -137.5t-77.5 -109.5t-102.5 -72.5t-133.5 -26.5q-35 0 -63.5 5t-52.5 15l32 134q16 -4 37 -9.5t39 -5.5q86 0 140.5 60.5t84.5 152.5l23 74z" />
-<glyph unicode="z" horiz-adv-x="870" d="M63 0v90l525 768h-467v137h680v-90l-525 -768h541v-137h-754z" />
-<glyph unicode="{" horiz-adv-x="620" d="M70 516v107q51 0 85.5 14t54 35.5t28 50.5t8.5 57q0 98 -9.5 194.5t-9.5 203.5q0 78 14.5 130t44 83.5t75 45t104.5 13.5h94v-98h-57q-82 0 -109.5 -42t-27.5 -143q0 -90 6 -183t6 -187q0 -100 -29 -152.5t-94 -71.5v-8q66 -18 94.5 -71.5t28.5 -151.5q0 -104 -6 -190 t-6 -181q0 -100 27.5 -143t109.5 -43h57v-96h-94q-59 0 -104.5 13t-75 44t-44 83t-14.5 132q0 55 3 105.5t6.5 97.5t6.5 94t3 98q0 31 -8.5 58.5t-28 50t-54 37t-85.5 14.5z" />
-<glyph unicode="|" horiz-adv-x="493" d="M188 -512v2048h119v-2048h-119z" />
-<glyph unicode="}" horiz-adv-x="620" d="M63 -215h54q84 0 111.5 43t27.5 143q0 94 -5 180.5t-5 190.5q0 98 27.5 151.5t93.5 71.5v8q-66 18 -93.5 70.5t-27.5 153.5q0 94 5 187t5 183q0 100 -27.5 142.5t-111.5 42.5h-54v98h91q123 0 181 -58.5t58 -213.5q0 -106 -9 -202.5t-9 -195.5q0 -59 37 -107t139 -50 v-107q-51 0 -85 -14.5t-54.5 -37t-28.5 -50t-8 -58.5q0 -51 3 -98l6 -94t6 -97.5t3 -105.5q0 -80 -14 -132t-44 -83t-75 -44t-106 -13h-91v96z" />
-<glyph unicode="~" d="M74 641q55 98 122.5 141t133.5 43q61 0 109 -26.5t90 -59t81 -59.5t82 -27q45 0 84 30t74 95l94 -69q-55 -98 -122.5 -140.5t-133.5 -42.5q-61 0 -109.5 27t-90.5 59.5t-80.5 59t-81.5 26.5q-45 0 -84 -29.5t-74 -95.5z" />
-<glyph unicode="&#xa1;" horiz-adv-x="591" d="M174 893q0 55 36 91t87 36q49 0 85 -36t36 -91q0 -59 -36 -95t-85 -36q-51 0 -87 36t-36 95zM211 -377l4 193l23 774h116l23 -774l4 -193h-170z" />
-<glyph unicode="&#xa2;" d="M125 635q0 106 31.5 190t87 145.5t131.5 99.5t162 50v217h106v-211q90 -4 155.5 -38.5t112.5 -79.5l-82 -107q-41 37 -87 59.5t-99 26.5v-704q66 4 119 31.5t94 64.5l74 -107q-59 -53 -133 -87.5t-154 -41.5v-211h-106v213q-92 10 -168 48t-130.5 99.5t-84 147.5 t-29.5 195zM293 635q0 -137 63.5 -227.5t180.5 -116.5v686q-113 -27 -178.5 -117t-65.5 -225z" />
-<glyph unicode="&#xa3;" d="M109 584v106l137 8h37q-20 66 -38 128.5t-18 127.5q0 86 28 156t78 119t119.5 75.5t155.5 26.5q111 0 187.5 -44t130.5 -109l-99 -97q-39 47 -88 78t-118 31q-111 0 -169.5 -66.5t-58.5 -173.5q0 -66 15.5 -126t33.5 -126h326v-114h-299q4 -29 7 -56.5t3 -58.5 q0 -109 -32.5 -180.5t-94.5 -134.5v-9h576v-145h-817v102q104 57 160.5 154.5t56.5 214.5q0 29 -4.5 56.5t-10.5 56.5h-204z" />
-<glyph unicode="&#xa4;" d="M53 303l131 133q-35 47 -54 106.5t-19 131.5t19.5 132t53.5 107l-131 136l90 92l140 -144q98 76 227 76q59 0 118.5 -19.5t106.5 -56.5l139 144l91 -92l-134 -136q35 -47 55.5 -107.5t20.5 -131.5q0 -72 -20.5 -131.5t-55.5 -106.5l134 -133l-91 -92l-139 141 q-47 -39 -106.5 -58.5t-118.5 -19.5q-131 0 -227 78l-140 -141zM266 674q0 -61 19.5 -111.5t52.5 -87.5t78 -56.5t94 -19.5t93 19.5t77 56.5t52.5 87t19.5 112q0 61 -19.5 111.5t-52.5 87t-77 56t-93 19.5t-94 -19.5t-78 -56t-52.5 -87t-19.5 -111.5z" />
-<glyph unicode="&#xa5;" d="M47 1307h176l160 -351q31 -68 60.5 -136t62.5 -140h8q35 72 64.5 140.5t60.5 135.5l160 351h172l-336 -656h291v-96h-334v-133h334v-98h-334v-324h-168v324h-332v98h332v133h-332v96h289z" />
-<glyph unicode="&#xa6;" horiz-adv-x="493" d="M188 438h119v-950h-119v950zM188 596v940h119v-940h-119z" />
-<glyph unicode="&#xa7;" d="M92 702q0 90 49 156t127 109q-31 33 -48 73.5t-17 94.5q0 53 19.5 101t59.5 85t97 58.5t135 21.5q98 0 177 -35t138 -82l-81 -108q-49 41 -104.5 67.5t-123.5 26.5q-86 0 -124 -38t-38 -91q0 -55 42 -92t105.5 -68t136.5 -61.5t136.5 -74.5t105.5 -106.5t42 -156.5 q0 -98 -48.5 -159t-125.5 -106q29 -35 45 -74.5t16 -92.5q0 -61 -24.5 -112.5t-68.5 -88.5t-104.5 -58.5t-132.5 -21.5q-111 0 -200.5 39t-153.5 106l102 92q51 -49 110.5 -77.5t141.5 -28.5t128 41t46 100q0 57 -42 96t-104 70t-136 60.5t-136.5 72.5t-104.5 105.5 t-42 156.5zM240 713q0 -68 41 -112t103 -76.5t135 -62.5t136 -67q59 29 91 68t32 106q0 70 -41 115t-102.5 79t-134 62.5t-135.5 65.5q-59 -33 -92 -74t-33 -104z" />
-<glyph unicode="&#xa8;" horiz-adv-x="1110" d="M279 1305q0 43 27.5 71.5t72.5 28.5q43 0 71.5 -28.5t28.5 -71.5t-28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM631 1305q0 43 28.5 71.5t71.5 28.5q45 0 72.5 -28.5t27.5 -71.5t-27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1523" d="M100 662q0 156 53.5 280.5t143.5 212.5t211 135t254 47t253 -47t211 -135t144 -213t53 -280q0 -158 -53 -284t-144 -215t-211 -137.5t-253 -48.5t-254 48.5t-211 137.5t-143.5 215t-53.5 284zM197 662q0 -135 45 -245t121.5 -188.5t179 -122t219.5 -43.5t219 43.5 t179 122t122 188t45 245.5q0 133 -45 242.5t-122 187t-179 119.5t-219 42t-219.5 -42t-179 -119.5t-121.5 -187t-45 -242.5zM406 662q0 88 31.5 159.5t83.5 122.5t121 78t142 27q86 0 146.5 -34t109.5 -83l-71 -80q-41 41 -83 62.5t-95 21.5q-113 0 -181.5 -77t-68.5 -197 q0 -135 66.5 -214t176.5 -79q66 0 115 25.5t94 64.5l62 -86q-57 -49 -121 -83t-156 -34q-78 0 -145.5 27.5t-118.5 80t-79.5 127.5t-28.5 171z" />
-<glyph unicode="&#xaa;" horiz-adv-x="706" d="M76 709q0 109 97 166t310 77q-2 66 -28.5 109t-98.5 43q-53 0 -109.5 -22.5t-96.5 -47.5l-48 86q51 33 122 60.5t151 27.5q123 0 179 -71.5t56 -202.5v-402h-102l-14 76h-9q-41 -37 -92 -64.5t-114 -27.5q-92 0 -147.5 53.5t-55.5 139.5zM201 719q0 -53 30.5 -77 t83.5 -24q80 0 168 82v172q-158 -16 -220 -56t-62 -97z" />
-<glyph unicode="&#xab;" horiz-adv-x="878" d="M92 453v127l279 317l73 -61l-241 -320l241 -323l-73 -58zM416 453v127l279 317l73 -61l-241 -320l241 -323l-73 -58z" />
-<glyph unicode="&#xac;" d="M70 612v127h878v-526h-135v399h-743z" />
-<glyph unicode="&#xad;" horiz-adv-x="636" d="M84 449v129h471v-129h-471z" />
-<glyph unicode="&#xae;" horiz-adv-x="866" d="M47 1057q0 90 31 163.5t83 127t121.5 83t149.5 29.5t150.5 -29.5t123 -83t83 -127t30.5 -163.5t-30.5 -164t-83 -127t-123 -83t-150.5 -30t-149.5 30t-121.5 83t-83 127t-31 164zM129 1057q0 -74 23.5 -134.5t63.5 -103.5t95 -66.5t121 -23.5q63 0 119.5 23.5t97.5 66.5 t64.5 103.5t23.5 134.5q0 72 -23.5 132t-64.5 104t-97 68.5t-120 24.5q-66 0 -121 -24.5t-95 -68.5t-63.5 -104.5t-23.5 -131.5zM285 854v416h155q66 0 113 -30t47 -103q0 -37 -20.5 -69t-55.5 -44l94 -170h-94l-71 143h-84v-143h-84zM369 1063h53q88 0 88 70q0 31 -18.5 49 t-65.5 18h-57v-137z" />
-<glyph unicode="&#xaf;" horiz-adv-x="1110" d="M303 1231v117h504v-117h-504z" />
-<glyph unicode="&#xb0;" horiz-adv-x="677" d="M84 1139q0 61 20.5 109t56.5 83t82 53.5t97 18.5t97 -18.5t82 -53.5t56.5 -83t20.5 -109q0 -59 -20.5 -107.5t-56.5 -82.5t-82 -52t-97 -18t-97 18t-82 52t-56.5 82t-20.5 108zM186 1139q0 -72 43 -119t111 -47t111 47t43 119q0 76 -43 123t-111 47t-111 -47.5 t-43 -122.5z" />
-<glyph unicode="&#xb1;" d="M70 0v127h878v-127h-878zM70 623v127h372v389h133v-389h373v-127h-373v-363h-133v363h-372z" />
-<glyph unicode="&#xb2;" horiz-adv-x="751" d="M82 1569q47 70 115.5 112.5t150.5 42.5q121 0 193.5 -65.5t72.5 -192.5q0 -57 -22.5 -110.5t-62.5 -107.5t-94 -111.5t-118 -122.5h338v-113h-549v76q92 84 164 150.5t119 121.5t71.5 103.5t24.5 93.5q0 78 -41 123t-112 45q-51 0 -94 -34t-78 -83z" />
-<glyph unicode="&#xb3;" horiz-adv-x="751" d="M72 1032l88 68q37 -55 88 -87t114 -32q66 0 113 37t47 106q0 70 -65.5 106t-182.5 36v84q104 0 161 40.5t57 102.5q0 57 -40 92t-106 35q-45 0 -86 -27.5t-76 -68.5l-80 69q53 59 116 95t147 36q51 0 97 -14t81 -42t55.5 -68t20.5 -91q0 -72 -39 -120t-101 -76 q68 -16 120 -66.5t52 -130.5q0 -55 -22.5 -99t-61.5 -76t-91 -48.5t-109 -16.5q-98 0 -174 44t-123 112z" />
-<glyph unicode="&#xb4;" horiz-adv-x="1110" d="M422 1174l184 288h176l-231 -288h-129z" />
-<glyph unicode="&#xb5;" horiz-adv-x="1126" d="M168 -410v1405h168v-608q0 -141 45 -203.5t143 -62.5q78 0 136.5 40t130.5 128v706h167v-995h-139l-14 156h-4q-59 -80 -130 -126t-157 -46q-59 0 -106.5 17t-81.5 71l10 -185v-297h-168z" />
-<glyph unicode="&#xb6;" horiz-adv-x="1146" d="M84 907q0 121 37 204t103.5 135t156.5 74.5t197 22.5h90v-880h-68q-111 0 -206 25.5t-163.5 80t-107.5 138.5t-39 200zM778 -164v1507h172v-1507h-172z" />
-<glyph unicode="&#xb7;" horiz-adv-x="509" d="M133 657q0 59 36 95t87 36q49 0 85 -35.5t36 -95.5q0 -55 -36 -91t-85 -36q-51 0 -87 36t-36 91z" />
-<glyph unicode="&#xb8;" horiz-adv-x="1110" d="M393 -352q82 10 132 33.5t50 64.5t-33.5 62.5t-95.5 37.5l82 160h109l-52 -108q49 -16 85 -49t36 -97q0 -45 -24.5 -77.5t-65.5 -55t-95 -36t-112 -19.5z" />
-<glyph unicode="&#xb9;" horiz-adv-x="751" d="M178 1532v86q68 12 113 31.5t86 50.5h106v-799h-131v631h-174z" />
-<glyph unicode="&#xba;" horiz-adv-x="747" d="M61 862q0 82 25 146.5t68 108.5t99 67.5t120 23.5q63 0 119.5 -23.5t99.5 -67.5t67.5 -108.5t24.5 -146.5t-24.5 -146.5t-67.5 -108.5t-99.5 -67.5t-119.5 -23.5t-119.5 23.5t-99.5 67.5t-68 108.5t-25 146.5zM190 862q0 -109 48.5 -175t134.5 -66t133 66.5t47 174.5 q0 111 -47 176.5t-133 65.5t-134.5 -65.5t-48.5 -176.5z" />
-<glyph unicode="&#xbb;" horiz-adv-x="878" d="M111 193l241 323l-241 320l71 61l281 -317v-127l-281 -318zM435 193l241 323l-241 320l71 61l281 -317v-127l-281 -318z" />
-<glyph unicode="&#xbc;" horiz-adv-x="1599" d="M131 1176v86q68 12 113 31.5t86 50.5h106v-799h-131v631h-174zM369 -25l741 1393h115l-741 -1393h-115zM932 213v68l336 518h147v-492h119v-94h-119v-213h-118v213h-365zM1069 307h228v144l8 223h-8l-103 -166z" />
-<glyph unicode="&#xbd;" horiz-adv-x="1654" d="M131 1176v86q68 12 113 31.5t86 50.5h106v-799h-131v631h-174zM326 -25l741 1393h115l-741 -1393h-115zM985 668q47 70 115.5 112.5t150.5 42.5q121 0 193.5 -65.5t72.5 -192.5q0 -57 -22.5 -110.5t-62.5 -107.5t-94 -111.5t-118 -122.5h338v-113h-549v76 q92 84 164 150.5t119 121.5t71.5 103.5t24.5 93.5q0 78 -41 123t-112 45q-51 0 -94 -34t-78 -83z" />
-<glyph unicode="&#xbe;" horiz-adv-x="1630" d="M72 676l88 68q37 -55 88 -87t114 -32q66 0 113 37t47 106q0 70 -65.5 106t-182.5 36v84q104 0 161 40.5t57 102.5q0 57 -40 92t-106 35q-45 0 -86 -27.5t-76 -68.5l-80 69q53 59 116 95t147 36q51 0 97 -14t81 -42t55.5 -68t20.5 -91q0 -72 -39 -120t-101 -76 q68 -16 120 -66.5t52 -130.5q0 -55 -22.5 -99t-61.5 -76t-91 -48.5t-109 -16.5q-98 0 -174 44t-123 112zM444 -25l741 1393h115l-741 -1393h-115zM963 213v68l336 518h147v-492h119v-94h-119v-213h-118v213h-365zM1100 307h228v144l8 223h-8l-103 -166z" />
-<glyph unicode="&#xbf;" horiz-adv-x="870" d="M98 -74q0 68 24.5 123t60.5 104.5t76 97.5t73 99t51 109.5t10 130.5h150q10 -80 -6.5 -144.5t-47 -119t-70.5 -101.5t-75 -93t-58.5 -94t-23.5 -101q0 -82 49 -139.5t150 -57.5q68 0 127 30.5t106 86.5l99 -88q-66 -72 -150 -121t-194 -49q-160 0 -255.5 87t-95.5 240z M342 893q0 55 36 91t87 36q49 0 85 -36t36 -91q0 -59 -36 -95t-85 -36q-51 0 -87 36t-36 95z" />
-<glyph unicode="&#xc0;" horiz-adv-x="1101" d="M0 0l455 1343h192l455 -1343h-180l-129 410h-490l-129 -410h-174zM281 1675h192l180 -229h-141zM346 547h404l-64 205q-35 113 -67.5 224t-65.5 228h-8q-33 -117 -66 -228.5t-67 -223.5z" />
-<glyph unicode="&#xc1;" horiz-adv-x="1101" d="M0 0l455 1343h192l455 -1343h-180l-129 410h-490l-129 -410h-174zM346 547h404l-64 205q-35 113 -67.5 224t-65.5 228h-8q-33 -117 -66 -228.5t-67 -223.5zM445 1446l180 229h192l-231 -229h-141z" />
-<glyph unicode="&#xc2;" horiz-adv-x="1101" d="M0 0l455 1343h192l455 -1343h-180l-129 410h-490l-129 -410h-174zM270 1446l197 229h164l197 -229h-138l-137 139h-8l-137 -139h-138zM346 547h404l-64 205q-35 113 -67.5 224t-65.5 228h-8q-33 -117 -66 -228.5t-67 -223.5z" />
-<glyph unicode="&#xc3;" horiz-adv-x="1101" d="M0 0l455 1343h192l455 -1343h-180l-129 410h-490l-129 -410h-174zM252 1456q10 96 55 158.5t119 62.5q41 0 74 -16t60.5 -36.5t54 -37t55.5 -16.5t51.5 27.5t30.5 78.5h94q-10 -94 -55 -157.5t-119 -63.5q-41 0 -74 16.5t-60.5 37t-54 37t-55.5 16.5t-51.5 -27t-30.5 -80 h-94zM346 547h404l-64 205q-35 113 -67.5 224t-65.5 228h-8q-33 -117 -66 -228.5t-67 -223.5z" />
-<glyph unicode="&#xc4;" horiz-adv-x="1101" d="M0 0l455 1343h192l455 -1343h-180l-129 410h-490l-129 -410h-174zM273 1565q0 45 27.5 72.5t72.5 27.5q43 0 71.5 -27.5t28.5 -72.5q0 -43 -28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM346 547h404l-64 205q-35 113 -67.5 224t-65.5 228h-8q-33 -117 -66 -228.5 t-67 -223.5zM625 1565q0 45 28.5 72.5t71.5 27.5q45 0 72.5 -27.5t27.5 -72.5q0 -43 -27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#xc5;" horiz-adv-x="1101" d="M0 0l455 1343h192l455 -1343h-180l-129 410h-490l-129 -410h-174zM346 547h404l-64 205q-35 113 -67.5 224t-65.5 228h-8q-33 -117 -66 -228.5t-67 -223.5zM359 1612q0 82 53 131t137 49q82 0 136 -49t54 -131q0 -84 -54 -132t-136 -48q-84 0 -137 48t-53 132zM451 1612 q0 -51 28.5 -79t69.5 -28q39 0 67.5 28t28.5 79q0 47 -28.5 75.5t-67.5 28.5q-41 0 -69.5 -28.5t-28.5 -75.5z" />
-<glyph unicode="&#xc6;" horiz-adv-x="1673" d="M12 0l705 1343h842v-143h-572v-422h477v-145h-477v-488h592v-145h-762v391h-426l-203 -391h-176zM463 528h354v680h-8q-53 -111 -110.5 -219t-110.5 -219z" />
-<glyph unicode="&#xc7;" horiz-adv-x="1159" d="M100 672q0 162 45 291t126 219t190.5 138t238.5 48q121 0 214.5 -50t152.5 -116l-96 -108q-53 57 -119 91t-150 34q-96 0 -174.5 -38t-134 -109t-86.5 -171t-31 -225q0 -127 30 -228.5t84 -173t131 -110.5t173 -39t169 39t138 110l97 -104q-78 -92 -178.5 -143.5 t-229.5 -51.5q-127 0 -234.5 47.5t-186.5 136.5t-124 219t-45 294zM524 -352q82 10 132 33.5t50 64.5t-33.5 62.5t-95.5 37.5l82 160h109l-52 -108q49 -16 85 -49t36 -97q0 -45 -24.5 -77.5t-65.5 -55t-95 -36t-112 -19.5z" />
-<glyph unicode="&#xc8;" horiz-adv-x="1069" d="M178 0v1343h774v-143h-602v-422h508v-145h-508v-488h623v-145h-795zM310 1675h192l180 -229h-141z" />
-<glyph unicode="&#xc9;" horiz-adv-x="1069" d="M178 0v1343h774v-143h-602v-422h508v-145h-508v-488h623v-145h-795zM474 1446l180 229h192l-231 -229h-141z" />
-<glyph unicode="&#xca;" horiz-adv-x="1069" d="M178 0v1343h774v-143h-602v-422h508v-145h-508v-488h623v-145h-795zM299 1446l197 229h164l197 -229h-138l-137 139h-8l-137 -139h-138z" />
-<glyph unicode="&#xcb;" horiz-adv-x="1069" d="M178 0v1343h774v-143h-602v-422h508v-145h-508v-488h623v-145h-795zM302 1565q0 45 27.5 72.5t72.5 27.5q43 0 71.5 -27.5t28.5 -72.5q0 -43 -28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM654 1565q0 45 28.5 72.5t71.5 27.5q45 0 72.5 -27.5t27.5 -72.5 q0 -43 -27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#xcc;" horiz-adv-x="528" d="M-4 1675h192l180 -229h-141zM178 0v1343h172v-1343h-172z" />
-<glyph unicode="&#xcd;" horiz-adv-x="528" d="M160 1446l180 229h192l-231 -229h-141zM178 0v1343h172v-1343h-172z" />
-<glyph unicode="&#xce;" horiz-adv-x="528" d="M-15 1446l197 229h164l197 -229h-138l-137 139h-8l-137 -139h-138zM178 0v1343h172v-1343h-172z" />
-<glyph unicode="&#xcf;" horiz-adv-x="528" d="M-12 1565q0 45 27.5 72.5t72.5 27.5q43 0 71.5 -27.5t28.5 -72.5q0 -43 -28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM178 0v1343h172v-1343h-172zM340 1565q0 45 28.5 72.5t71.5 27.5q45 0 72.5 -27.5t27.5 -72.5q0 -43 -27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z " />
-<glyph unicode="&#xd0;" horiz-adv-x="1292" d="M61 657v88l158 9v589h336q311 0 473 -172t162 -493q0 -160 -41 -286t-121 -213t-196.5 -133t-268.5 -46h-344v657h-158zM389 139h154q236 0 353.5 141.5t117.5 397.5t-118 391t-353 135h-154v-450h311v-97h-311v-518z" />
-<glyph unicode="&#xd1;" horiz-adv-x="1314" d="M178 0v1343h176l488 -843l145 -279h8q-6 102 -14 212t-8 216v694h162v-1343h-177l-485 846l-145 276h-9q6 -102 13.5 -207.5t7.5 -212.5v-702h-162zM367 1456q10 96 55 158.5t119 62.5q41 0 74 -16t60.5 -36.5t54 -37t55.5 -16.5t51.5 27.5t30.5 78.5h94 q-10 -94 -55 -157.5t-119 -63.5q-41 0 -74 16.5t-60.5 37t-54 37t-55.5 16.5t-51.5 -27t-30.5 -80h-94z" />
-<glyph unicode="&#xd2;" horiz-adv-x="1349" d="M100 678q0 162 42 290t119 217t182.5 136t232.5 47q125 0 230.5 -48t182 -137t118.5 -217t42 -288q0 -162 -42 -292t-118.5 -221t-182 -140.5t-230.5 -49.5q-127 0 -232.5 49.5t-182.5 140.5t-119 221t-42 292zM276 678q0 -127 29 -228.5t81 -174t126 -111.5t164 -39 t162.5 39t125 111.5t81 174t28.5 228.5q0 125 -28.5 225.5t-81 170t-125 107.5t-162.5 38t-164 -38t-126 -107.5t-81 -170t-29 -225.5zM406 1675h192l180 -229h-141z" />
-<glyph unicode="&#xd3;" horiz-adv-x="1349" d="M100 678q0 162 42 290t119 217t182.5 136t232.5 47q125 0 230.5 -48t182 -137t118.5 -217t42 -288q0 -162 -42 -292t-118.5 -221t-182 -140.5t-230.5 -49.5q-127 0 -232.5 49.5t-182.5 140.5t-119 221t-42 292zM276 678q0 -127 29 -228.5t81 -174t126 -111.5t164 -39 t162.5 39t125 111.5t81 174t28.5 228.5q0 125 -28.5 225.5t-81 170t-125 107.5t-162.5 38t-164 -38t-126 -107.5t-81 -170t-29 -225.5zM570 1446l180 229h192l-231 -229h-141z" />
-<glyph unicode="&#xd4;" horiz-adv-x="1349" d="M100 678q0 162 42 290t119 217t182.5 136t232.5 47q125 0 230.5 -48t182 -137t118.5 -217t42 -288q0 -162 -42 -292t-118.5 -221t-182 -140.5t-230.5 -49.5q-127 0 -232.5 49.5t-182.5 140.5t-119 221t-42 292zM276 678q0 -127 29 -228.5t81 -174t126 -111.5t164 -39 t162.5 39t125 111.5t81 174t28.5 228.5q0 125 -28.5 225.5t-81 170t-125 107.5t-162.5 38t-164 -38t-126 -107.5t-81 -170t-29 -225.5zM395 1446l197 229h164l197 -229h-138l-137 139h-8l-137 -139h-138z" />
-<glyph unicode="&#xd5;" horiz-adv-x="1349" d="M100 678q0 162 42 290t119 217t182.5 136t232.5 47q125 0 230.5 -48t182 -137t118.5 -217t42 -288q0 -162 -42 -292t-118.5 -221t-182 -140.5t-230.5 -49.5q-127 0 -232.5 49.5t-182.5 140.5t-119 221t-42 292zM276 678q0 -127 29 -228.5t81 -174t126 -111.5t164 -39 t162.5 39t125 111.5t81 174t28.5 228.5q0 125 -28.5 225.5t-81 170t-125 107.5t-162.5 38t-164 -38t-126 -107.5t-81 -170t-29 -225.5zM377 1456q10 96 55 158.5t119 62.5q41 0 74 -16t60.5 -36.5t54 -37t55.5 -16.5t51.5 27.5t30.5 78.5h94q-10 -94 -55 -157.5t-119 -63.5 q-41 0 -74 16.5t-60.5 37t-54 37t-55.5 16.5t-51.5 -27t-30.5 -80h-94z" />
-<glyph unicode="&#xd6;" horiz-adv-x="1349" d="M100 678q0 162 42 290t119 217t182.5 136t232.5 47q125 0 230.5 -48t182 -137t118.5 -217t42 -288q0 -162 -42 -292t-118.5 -221t-182 -140.5t-230.5 -49.5q-127 0 -232.5 49.5t-182.5 140.5t-119 221t-42 292zM276 678q0 -127 29 -228.5t81 -174t126 -111.5t164 -39 t162.5 39t125 111.5t81 174t28.5 228.5q0 125 -28.5 225.5t-81 170t-125 107.5t-162.5 38t-164 -38t-126 -107.5t-81 -170t-29 -225.5zM398 1565q0 45 27.5 72.5t72.5 27.5q43 0 71.5 -27.5t28.5 -72.5q0 -43 -28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM750 1565 q0 45 28.5 72.5t71.5 27.5q45 0 72.5 -27.5t27.5 -72.5q0 -43 -27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#xd7;" d="M102 350l318 326l-318 323l91 93l317 -326l315 326l90 -93l-317 -323l317 -326l-90 -92l-315 328l-317 -328z" />
-<glyph unicode="&#xd8;" horiz-adv-x="1349" d="M96 12l142 185q-66 90 -102 210.5t-36 270.5q0 162 42 290t119 217t182.5 136t232.5 47q106 0 198.5 -34t163.5 -99l129 170l97 -72l-146 -188q63 -88 97 -205t34 -262q0 -162 -42 -292t-118.5 -221t-182 -140.5t-230.5 -49.5q-209 0 -357 129l-126 -165zM276 678 q0 -203 72 -340l590 768q-102 113 -262 113q-90 0 -164 -38t-126 -107.5t-81 -170t-29 -225.5zM420 233q102 -109 256 -108q90 0 162.5 39t125 111.5t81 174t28.5 228.5q0 193 -65 323z" />
-<glyph unicode="&#xd9;" horiz-adv-x="1310" d="M172 555v788h172v-792q0 -121 24.5 -203t66.5 -131t98.5 -70.5t121.5 -21.5q68 0 126.5 21.5t101.5 70.5t67.5 131t24.5 203v792h164v-788q0 -162 -37 -272.5t-101.5 -179t-153.5 -98.5t-192 -30q-102 0 -191 30t-153.5 98.5t-101.5 179t-37 272.5zM387 1675h192 l180 -229h-141z" />
-<glyph unicode="&#xda;" horiz-adv-x="1310" d="M172 555v788h172v-792q0 -121 24.5 -203t66.5 -131t98.5 -70.5t121.5 -21.5q68 0 126.5 21.5t101.5 70.5t67.5 131t24.5 203v792h164v-788q0 -162 -37 -272.5t-101.5 -179t-153.5 -98.5t-192 -30q-102 0 -191 30t-153.5 98.5t-101.5 179t-37 272.5zM551 1446l180 229h192 l-231 -229h-141z" />
-<glyph unicode="&#xdb;" horiz-adv-x="1310" d="M172 555v788h172v-792q0 -121 24.5 -203t66.5 -131t98.5 -70.5t121.5 -21.5q68 0 126.5 21.5t101.5 70.5t67.5 131t24.5 203v792h164v-788q0 -162 -37 -272.5t-101.5 -179t-153.5 -98.5t-192 -30q-102 0 -191 30t-153.5 98.5t-101.5 179t-37 272.5zM376 1446l197 229h164 l197 -229h-138l-137 139h-8l-137 -139h-138z" />
-<glyph unicode="&#xdc;" horiz-adv-x="1310" d="M172 555v788h172v-792q0 -121 24.5 -203t66.5 -131t98.5 -70.5t121.5 -21.5q68 0 126.5 21.5t101.5 70.5t67.5 131t24.5 203v792h164v-788q0 -162 -37 -272.5t-101.5 -179t-153.5 -98.5t-192 -30q-102 0 -191 30t-153.5 98.5t-101.5 179t-37 272.5zM379 1565 q0 45 27.5 72.5t72.5 27.5q43 0 71.5 -27.5t28.5 -72.5q0 -43 -28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM731 1565q0 45 28.5 72.5t71.5 27.5q45 0 72.5 -27.5t27.5 -72.5q0 -43 -27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#xdd;" horiz-adv-x="964" d="M-8 1343h184l172 -378q33 -74 64.5 -145.5t66.5 -147.5h8q35 76 69 147.5t65 145.5l174 378h176l-404 -823v-520h-170v520zM377 1446l180 229h192l-231 -229h-141z" />
-<glyph unicode="&#xde;" horiz-adv-x="1193" d="M182 0v1343h170v-225h242q111 0 203 -20.5t156.5 -67.5t100.5 -121.5t36 -185.5q0 -106 -36 -185t-101.5 -130.5t-156.5 -76t-202 -24.5h-242v-307h-170zM352 446h221q176 0 261.5 66t85.5 211t-86 200.5t-261 55.5h-221v-533z" />
-<glyph unicode="&#xdf;" horiz-adv-x="1179" d="M168 0v1055q0 193 104.5 308.5t296.5 115.5q80 0 142.5 -23.5t105.5 -64.5t64.5 -95.5t21.5 -115.5q0 -78 -28.5 -132.5t-64.5 -99.5t-64.5 -87t-28.5 -95q0 -49 29.5 -82t74.5 -58.5t97.5 -52t97.5 -63.5t74.5 -92.5t29.5 -136.5q0 -66 -22.5 -121.5t-65.5 -96 t-103.5 -64.5t-135.5 -24q-86 0 -156 27t-133 74l67 119q53 -45 105.5 -67t111.5 -22q86 0 129.5 49.5t43.5 114.5q0 59 -30 98.5t-75 68t-97 54t-97.5 58.5t-75 79t-29.5 117q0 70 27.5 119t61.5 94.5t62.5 92.5t28.5 112q0 78 -42 128t-128 50q-111 0 -171 -78.5 t-60 -238.5v-1024h-168z" />
-<glyph unicode="&#xe0;" horiz-adv-x="1048" d="M119 258q0 164 146.5 251t465.5 122q0 47 -9 92t-32.5 80t-62.5 56.5t-101 21.5q-88 0 -162.5 -33t-134.5 -74l-67 117q70 45 170 87t221 42q182 0 264 -111.5t82 -298.5v-610h-139l-15 119h-4q-72 -59 -154.5 -101.5t-174.5 -42.5q-127 0 -210 74t-83 209zM285 270 q0 -86 50 -122.5t124 -36.5q72 0 136 33.5t136 99.5v276q-125 -16 -211 -38.5t-138 -53.5t-74.5 -71t-22.5 -87zM324 1462h176l184 -288h-129z" />
-<glyph unicode="&#xe1;" horiz-adv-x="1048" d="M119 258q0 164 146.5 251t465.5 122q0 47 -9 92t-32.5 80t-62.5 56.5t-101 21.5q-88 0 -162.5 -33t-134.5 -74l-67 117q70 45 170 87t221 42q182 0 264 -111.5t82 -298.5v-610h-139l-15 119h-4q-72 -59 -154.5 -101.5t-174.5 -42.5q-127 0 -210 74t-83 209zM285 270 q0 -86 50 -122.5t124 -36.5q72 0 136 33.5t136 99.5v276q-125 -16 -211 -38.5t-138 -53.5t-74.5 -71t-22.5 -87zM418 1174l184 288h176l-231 -288h-129z" />
-<glyph unicode="&#xe2;" horiz-adv-x="1048" d="M119 258q0 164 146.5 251t465.5 122q0 47 -9 92t-32.5 80t-62.5 56.5t-101 21.5q-88 0 -162.5 -33t-134.5 -74l-67 117q70 45 170 87t221 42q182 0 264 -111.5t82 -298.5v-610h-139l-15 119h-4q-72 -59 -154.5 -101.5t-174.5 -42.5q-127 0 -210 74t-83 209zM285 270 q0 -86 50 -122.5t124 -36.5q72 0 136 33.5t136 99.5v276q-125 -16 -211 -38.5t-138 -53.5t-74.5 -71t-22.5 -87zM287 1174l194 288h140l194 -288h-123l-137 186h-8l-137 -186h-123z" />
-<glyph unicode="&#xe3;" horiz-adv-x="1048" d="M119 258q0 164 146.5 251t465.5 122q0 47 -9 92t-32.5 80t-62.5 56.5t-101 21.5q-88 0 -162.5 -33t-134.5 -74l-67 117q70 45 170 87t221 42q182 0 264 -111.5t82 -298.5v-610h-139l-15 119h-4q-72 -59 -154.5 -101.5t-174.5 -42.5q-127 0 -210 74t-83 209zM266 1186 q8 92 49 154.5t117 62.5q39 0 72 -16.5t60.5 -36t52 -36t49.5 -16.5q57 0 75 105h95q-8 -92 -49 -154.5t-117 -62.5q-39 0 -71 16.5t-59.5 35.5t-52 35.5t-51.5 16.5q-57 0 -75 -104h-95zM285 270q0 -86 50 -122.5t124 -36.5q72 0 136 33.5t136 99.5v276 q-125 -16 -211 -38.5t-138 -53.5t-74.5 -71t-22.5 -87z" />
-<glyph unicode="&#xe4;" horiz-adv-x="1048" d="M119 258q0 164 146.5 251t465.5 122q0 47 -9 92t-32.5 80t-62.5 56.5t-101 21.5q-88 0 -162.5 -33t-134.5 -74l-67 117q70 45 170 87t221 42q182 0 264 -111.5t82 -298.5v-610h-139l-15 119h-4q-72 -59 -154.5 -101.5t-174.5 -42.5q-127 0 -210 74t-83 209zM275 1305 q0 43 27.5 71.5t72.5 28.5q43 0 71.5 -28.5t28.5 -71.5t-28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM285 270q0 -86 50 -122.5t124 -36.5q72 0 136 33.5t136 99.5v276q-125 -16 -211 -38.5t-138 -53.5t-74.5 -71t-22.5 -87zM627 1305q0 43 28.5 71.5t71.5 28.5 q45 0 72.5 -28.5t27.5 -71.5t-27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#xe5;" horiz-adv-x="1048" d="M119 258q0 164 146.5 251t465.5 122q0 47 -9 92t-32.5 80t-62.5 56.5t-101 21.5q-88 0 -162.5 -33t-134.5 -74l-67 117q70 45 170 87t221 42q182 0 264 -111.5t82 -298.5v-610h-139l-15 119h-4q-72 -59 -154.5 -101.5t-174.5 -42.5q-127 0 -210 74t-83 209zM285 270 q0 -86 50 -122.5t124 -36.5q72 0 136 33.5t136 99.5v276q-125 -16 -211 -38.5t-138 -53.5t-74.5 -71t-22.5 -87zM361 1300q0 86 53 137.5t137 51.5t137 -51.5t53 -137.5t-53 -138t-137 -52t-137 52t-53 138zM453 1300q0 -53 28.5 -83.5t69.5 -30.5t69.5 30.5t28.5 83.5 q0 51 -28.5 82t-69.5 31t-69.5 -30.5t-28.5 -82.5z" />
-<glyph unicode="&#xe6;" horiz-adv-x="1607" d="M119 258q0 164 145.5 251t456.5 122q0 47 -8 92t-32 80t-62.5 56.5t-100.5 21.5q-82 0 -155.5 -33t-133.5 -74l-67 117q70 45 168 87t209 42t182.5 -56.5t101.5 -154.5q59 98 142.5 154.5t185.5 56.5q92 0 162.5 -33t119 -94.5t73 -148.5t24.5 -193q0 -57 -6 -94h-645 q2 -78 27.5 -141.5t66.5 -108.5t96 -69.5t119 -24.5q72 0 129 23.5t113 58.5l61 -117q-66 -41 -143.5 -72t-180.5 -31q-125 0 -209 56.5t-141 130.5q-102 -92 -205.5 -139.5t-199.5 -47.5q-127 0 -210 74t-83 209zM285 270q0 -86 50 -122.5t124 -36.5q70 0 151.5 39.5 t149.5 113.5q-16 39 -26.5 93.5t-12.5 111.5v51q-119 -16 -202 -38.5t-135 -53.5t-75.5 -71t-23.5 -87zM879 569h503q0 154 -60 236t-175 82q-104 0 -179 -85t-89 -233z" />
-<glyph unicode="&#xe7;" horiz-adv-x="933" d="M94 496q0 125 39 222t104.5 164.5t152.5 102.5t183 35q98 0 169 -36t122 -83l-84 -108q-45 39 -93 63.5t-107 24.5q-68 0 -125.5 -28t-98.5 -79t-64.5 -121.5t-23.5 -156.5t22.5 -156t62.5 -120t97.5 -77.5t124.5 -27.5q72 0 130.5 29.5t103.5 70.5l76 -111 q-68 -59 -151 -94t-173 -35q-98 0 -184 35t-148.5 101.5t-98.5 164t-36 220.5zM383 -352q82 10 132 33.5t50 64.5t-33.5 62.5t-95.5 37.5l82 160h109l-52 -108q49 -16 85 -49t36 -97q0 -45 -24.5 -77.5t-65.5 -55t-95 -36t-112 -19.5z" />
-<glyph unicode="&#xe8;" horiz-adv-x="1015" d="M94 496q0 123 38 220t100.5 164.5t142.5 103.5t166 36q94 0 168.5 -33t125 -94.5t77 -147.5t26.5 -192q0 -55 -6 -92h-672q10 -162 99.5 -256t232.5 -94q72 0 132 21.5t116 55.5l59 -110q-66 -41 -145.5 -72t-182.5 -31q-100 0 -187 36t-151.5 102.5t-101.5 163 t-37 219.5zM258 571h533q0 154 -64.5 235t-181.5 81q-53 0 -101.5 -21.5t-87.5 -61.5t-64.5 -98.5t-33.5 -134.5zM316 1462h176l184 -288h-129z" />
-<glyph unicode="&#xe9;" horiz-adv-x="1015" d="M94 496q0 123 38 220t100.5 164.5t142.5 103.5t166 36q94 0 168.5 -33t125 -94.5t77 -147.5t26.5 -192q0 -55 -6 -92h-672q10 -162 99.5 -256t232.5 -94q72 0 132 21.5t116 55.5l59 -110q-66 -41 -145.5 -72t-182.5 -31q-100 0 -187 36t-151.5 102.5t-101.5 163 t-37 219.5zM258 571h533q0 154 -64.5 235t-181.5 81q-53 0 -101.5 -21.5t-87.5 -61.5t-64.5 -98.5t-33.5 -134.5zM410 1174l184 288h176l-231 -288h-129z" />
-<glyph unicode="&#xea;" horiz-adv-x="1015" d="M94 496q0 123 38 220t100.5 164.5t142.5 103.5t166 36q94 0 168.5 -33t125 -94.5t77 -147.5t26.5 -192q0 -55 -6 -92h-672q10 -162 99.5 -256t232.5 -94q72 0 132 21.5t116 55.5l59 -110q-66 -41 -145.5 -72t-182.5 -31q-100 0 -187 36t-151.5 102.5t-101.5 163 t-37 219.5zM258 571h533q0 154 -64.5 235t-181.5 81q-53 0 -101.5 -21.5t-87.5 -61.5t-64.5 -98.5t-33.5 -134.5zM279 1174l194 288h140l194 -288h-123l-137 186h-8l-137 -186h-123z" />
-<glyph unicode="&#xeb;" horiz-adv-x="1015" d="M94 496q0 123 38 220t100.5 164.5t142.5 103.5t166 36q94 0 168.5 -33t125 -94.5t77 -147.5t26.5 -192q0 -55 -6 -92h-672q10 -162 99.5 -256t232.5 -94q72 0 132 21.5t116 55.5l59 -110q-66 -41 -145.5 -72t-182.5 -31q-100 0 -187 36t-151.5 102.5t-101.5 163 t-37 219.5zM258 571h533q0 154 -64.5 235t-181.5 81q-53 0 -101.5 -21.5t-87.5 -61.5t-64.5 -98.5t-33.5 -134.5zM267 1305q0 43 27.5 71.5t72.5 28.5q43 0 71.5 -28.5t28.5 -71.5t-28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM619 1305q0 43 28.5 71.5t71.5 28.5 q45 0 72.5 -28.5t27.5 -71.5t-27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#xec;" horiz-adv-x="503" d="M25 1462h176l184 -288h-129zM168 0v995h168v-995h-168z" />
-<glyph unicode="&#xed;" horiz-adv-x="503" d="M119 1174l184 288h176l-231 -288h-129zM168 0v995h168v-995h-168z" />
-<glyph unicode="&#xee;" horiz-adv-x="503" d="M-12 1174l194 288h140l194 -288h-123l-137 186h-8l-137 -186h-123zM168 0v995h168v-995h-168z" />
-<glyph unicode="&#xef;" horiz-adv-x="503" d="M-24 1305q0 43 27.5 71.5t72.5 28.5q43 0 71.5 -28.5t28.5 -71.5t-28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM168 0v995h168v-995h-168zM328 1305q0 43 28.5 71.5t71.5 28.5q45 0 72.5 -28.5t27.5 -71.5t-27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#xf0;" horiz-adv-x="1116" d="M109 455q0 104 32.5 189t89 145.5t133 93t166.5 32.5q78 0 150 -32.5t125 -102.5q-29 127 -85 221.5t-134 172.5l-289 -150l-49 84l260 133q-106 82 -229 148l77 106q74 -41 145.5 -86t137.5 -100l291 149l49 -84l-264 -135q123 -125 200.5 -297t77.5 -416 q0 -123 -31.5 -224t-90 -174t-139.5 -113t-181 -40q-86 0 -166 33t-141.5 95.5t-98 151.5t-36.5 200zM268 455q0 -78 22.5 -140.5t62.5 -106.5t91.5 -68.5t110.5 -24.5q70 0 121 29.5t86 83t52 128t17 164.5q0 29 -1 57.5t-3 55.5q-68 90 -135 120.5t-137 30.5 q-68 0 -121 -24.5t-90 -69.5t-56.5 -105.5t-19.5 -129.5z" />
-<glyph unicode="&#xf1;" horiz-adv-x="1120" d="M168 0v995h139l15 -143h6q72 72 150.5 120t183.5 48q158 0 230.5 -98.5t72.5 -290.5v-631h-168v608q0 141 -45 203.5t-144 62.5q-78 0 -137 -38.5t-135 -114.5v-721h-168zM313 1186q8 92 49 154.5t117 62.5q39 0 72 -16.5t60.5 -36t52 -36t49.5 -16.5q57 0 75 105h95 q-8 -92 -49 -154.5t-117 -62.5q-39 0 -71 16.5t-59.5 35.5t-52 35.5t-51.5 16.5q-57 0 -75 -104h-95z" />
-<glyph unicode="&#xf2;" horiz-adv-x="1110" d="M94 496q0 125 38 222t101.5 164.5t146.5 102.5t175 35t175 -35t146.5 -102.5t101.5 -164.5t38 -222q0 -123 -38 -220.5t-101.5 -164t-146.5 -101.5t-175 -35t-175 35t-146.5 101.5t-101.5 164t-38 220.5zM268 496q0 -86 20.5 -156t58.5 -120t91.5 -77.5t116.5 -27.5 t116.5 27.5t91.5 77.5t58.5 120t20.5 156t-20.5 156.5t-58.5 121.5t-91.5 79t-116.5 28t-116.5 -28t-91.5 -79t-58.5 -121.5t-20.5 -156.5zM328 1462h176l184 -288h-129z" />
-<glyph unicode="&#xf3;" horiz-adv-x="1110" d="M94 496q0 125 38 222t101.5 164.5t146.5 102.5t175 35t175 -35t146.5 -102.5t101.5 -164.5t38 -222q0 -123 -38 -220.5t-101.5 -164t-146.5 -101.5t-175 -35t-175 35t-146.5 101.5t-101.5 164t-38 220.5zM268 496q0 -86 20.5 -156t58.5 -120t91.5 -77.5t116.5 -27.5 t116.5 27.5t91.5 77.5t58.5 120t20.5 156t-20.5 156.5t-58.5 121.5t-91.5 79t-116.5 28t-116.5 -28t-91.5 -79t-58.5 -121.5t-20.5 -156.5zM422 1174l184 288h176l-231 -288h-129z" />
-<glyph unicode="&#xf4;" horiz-adv-x="1110" d="M94 496q0 125 38 222t101.5 164.5t146.5 102.5t175 35t175 -35t146.5 -102.5t101.5 -164.5t38 -222q0 -123 -38 -220.5t-101.5 -164t-146.5 -101.5t-175 -35t-175 35t-146.5 101.5t-101.5 164t-38 220.5zM268 496q0 -86 20.5 -156t58.5 -120t91.5 -77.5t116.5 -27.5 t116.5 27.5t91.5 77.5t58.5 120t20.5 156t-20.5 156.5t-58.5 121.5t-91.5 79t-116.5 28t-116.5 -28t-91.5 -79t-58.5 -121.5t-20.5 -156.5zM291 1174l194 288h140l194 -288h-123l-137 186h-8l-137 -186h-123z" />
-<glyph unicode="&#xf5;" horiz-adv-x="1110" d="M94 496q0 125 38 222t101.5 164.5t146.5 102.5t175 35t175 -35t146.5 -102.5t101.5 -164.5t38 -222q0 -123 -38 -220.5t-101.5 -164t-146.5 -101.5t-175 -35t-175 35t-146.5 101.5t-101.5 164t-38 220.5zM268 496q0 -86 20.5 -156t58.5 -120t91.5 -77.5t116.5 -27.5 t116.5 27.5t91.5 77.5t58.5 120t20.5 156t-20.5 156.5t-58.5 121.5t-91.5 79t-116.5 28t-116.5 -28t-91.5 -79t-58.5 -121.5t-20.5 -156.5zM270 1186q8 92 49 154.5t117 62.5q39 0 72 -16.5t60.5 -36t52 -36t49.5 -16.5q57 0 75 105h95q-8 -92 -49 -154.5t-117 -62.5 q-39 0 -71 16.5t-59.5 35.5t-52 35.5t-51.5 16.5q-57 0 -75 -104h-95z" />
-<glyph unicode="&#xf6;" horiz-adv-x="1110" d="M94 496q0 125 38 222t101.5 164.5t146.5 102.5t175 35t175 -35t146.5 -102.5t101.5 -164.5t38 -222q0 -123 -38 -220.5t-101.5 -164t-146.5 -101.5t-175 -35t-175 35t-146.5 101.5t-101.5 164t-38 220.5zM268 496q0 -86 20.5 -156t58.5 -120t91.5 -77.5t116.5 -27.5 t116.5 27.5t91.5 77.5t58.5 120t20.5 156t-20.5 156.5t-58.5 121.5t-91.5 79t-116.5 28t-116.5 -28t-91.5 -79t-58.5 -121.5t-20.5 -156.5zM279 1305q0 43 27.5 71.5t72.5 28.5q43 0 71.5 -28.5t28.5 -71.5t-28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM631 1305 q0 43 28.5 71.5t71.5 28.5q45 0 72.5 -28.5t27.5 -71.5t-27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#xf7;" d="M70 612v127h878v-127h-878zM397 307q0 47 33 78t80 31t79 -31t32 -78q0 -49 -32 -79.5t-79 -30.5t-80 30.5t-33 79.5zM397 1044q0 47 33 78t80 31t79 -30.5t32 -78.5q0 -49 -32 -79.5t-79 -30.5t-80 30.5t-33 79.5z" />
-<glyph unicode="&#xf8;" horiz-adv-x="1110" d="M94 12l111 133q-51 66 -81 153t-30 198q0 125 38 222t101.5 164.5t146.5 102.5t175 35q78 0 151.5 -25.5t133.5 -76.5l102 124l74 -59l-111 -133q51 -66 81 -155t30 -199q0 -123 -38 -220.5t-101.5 -164t-146.5 -101.5t-175 -35q-162 0 -285 101l-100 -123zM260 504 q0 -137 47 -232l438 531q-76 82 -190 82q-63 0 -117.5 -28t-93.5 -78t-61.5 -120.5t-22.5 -154.5zM365 190q80 -80 190 -79q63 0 117.5 27.5t94.5 77.5t61.5 120t21.5 153q0 137 -49 234z" />
-<glyph unicode="&#xf9;" horiz-adv-x="1114" d="M154 365v630h170v-608q0 -141 44 -203.5t142 -62.5q78 0 137.5 40t130.5 128v706h168v-995h-139l-14 156h-7q-70 -82 -146.5 -131.5t-180.5 -49.5q-160 0 -232.5 98.5t-72.5 291.5zM330 1462h176l184 -288h-129z" />
-<glyph unicode="&#xfa;" horiz-adv-x="1114" d="M154 365v630h170v-608q0 -141 44 -203.5t142 -62.5q78 0 137.5 40t130.5 128v706h168v-995h-139l-14 156h-7q-70 -82 -146.5 -131.5t-180.5 -49.5q-160 0 -232.5 98.5t-72.5 291.5zM424 1174l184 288h176l-231 -288h-129z" />
-<glyph unicode="&#xfb;" horiz-adv-x="1114" d="M154 365v630h170v-608q0 -141 44 -203.5t142 -62.5q78 0 137.5 40t130.5 128v706h168v-995h-139l-14 156h-7q-70 -82 -146.5 -131.5t-180.5 -49.5q-160 0 -232.5 98.5t-72.5 291.5zM293 1174l194 288h140l194 -288h-123l-137 186h-8l-137 -186h-123z" />
-<glyph unicode="&#xfc;" horiz-adv-x="1114" d="M154 365v630h170v-608q0 -141 44 -203.5t142 -62.5q78 0 137.5 40t130.5 128v706h168v-995h-139l-14 156h-7q-70 -82 -146.5 -131.5t-180.5 -49.5q-160 0 -232.5 98.5t-72.5 291.5zM281 1305q0 43 27.5 71.5t72.5 28.5q43 0 71.5 -28.5t28.5 -71.5t-28.5 -72t-71.5 -29 q-45 0 -72.5 29t-27.5 72zM633 1305q0 43 28.5 71.5t71.5 28.5q45 0 72.5 -28.5t27.5 -71.5t-27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#xfd;" horiz-adv-x="956" d="M25 995h174l202 -551q23 -66 48.5 -138.5t48.5 -141.5h8q23 68 43 141.5t41 138.5l178 551h164l-375 -1077q-27 -74 -59.5 -137.5t-77.5 -109.5t-102.5 -72.5t-133.5 -26.5q-35 0 -63.5 5t-52.5 15l32 134q16 -4 37 -9.5t39 -5.5q86 0 140.5 60.5t84.5 152.5l23 74z M363 1174l184 288h176l-231 -288h-129z" />
-<glyph unicode="&#xfe;" horiz-adv-x="1136" d="M168 -420v1878h168v-397l-2 -170q66 53 143.5 91t159.5 38q98 0 173 -36t126 -102.5t76.5 -159.5t25.5 -210q0 -127 -34.5 -226.5t-94 -169t-137.5 -105.5t-164 -36q-72 0 -139.5 29t-134.5 82l2 -170v-336h-168zM336 221q68 -57 131 -80.5t113 -23.5q61 0 113 27.5 t90 77.5t59.5 124t21.5 166q0 82 -14 149.5t-46 115.5t-82 75t-120 27q-63 0 -127.5 -35t-138.5 -101v-522z" />
-<glyph unicode="&#xff;" horiz-adv-x="956" d="M25 995h174l202 -551q23 -66 48.5 -138.5t48.5 -141.5h8q23 68 43 141.5t41 138.5l178 551h164l-375 -1077q-27 -74 -59.5 -137.5t-77.5 -109.5t-102.5 -72.5t-133.5 -26.5q-35 0 -63.5 5t-52.5 15l32 134q16 -4 37 -9.5t39 -5.5q86 0 140.5 60.5t84.5 152.5l23 74z M220 1305q0 43 27.5 71.5t72.5 28.5q43 0 71.5 -28.5t28.5 -71.5t-28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM572 1305q0 43 28.5 71.5t71.5 28.5q45 0 72.5 -28.5t27.5 -71.5t-27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#x152;" horiz-adv-x="1724" d="M100 678q0 322 172 493.5t486 171.5h852v-143h-570v-422h476v-145h-476v-488h590v-145h-880q-154 0 -274 46t-204 133t-128 213t-44 286zM276 678q0 -258 125 -398.5t369 -140.5h98v1065h-98q-244 0 -369 -135t-125 -391z" />
-<glyph unicode="&#x153;" horiz-adv-x="1718" d="M94 496q0 125 37 222t98.5 164.5t143.5 102.5t172 35q115 0 211 -63.5t149 -186.5q57 117 148.5 183.5t201.5 66.5q92 0 164 -33t121 -94.5t74.5 -148.5t25.5 -193q0 -57 -6 -94h-653q2 -78 27.5 -141.5t67.5 -108.5t98.5 -69.5t119.5 -24.5q72 0 131.5 23.5t114.5 58.5 l62 -117q-66 -41 -146 -72t-182 -31q-117 0 -213 65.5t-154 182.5q-117 -248 -366 -248q-90 0 -171 35t-142.5 101.5t-97.5 164t-36 220.5zM266 496q0 -86 20.5 -156t57.5 -120t88 -77.5t113 -27.5q61 0 112.5 27.5t88 77.5t57 120t20.5 156t-20.5 156.5t-57 121.5t-88 79 t-112.5 28t-112.5 -28t-88.5 -79t-57.5 -121.5t-20.5 -156.5zM981 569h512q0 154 -63.5 236t-178.5 82q-104 0 -180 -85t-90 -233z" />
-<glyph unicode="&#x178;" horiz-adv-x="964" d="M-8 1343h184l172 -378q33 -74 64.5 -145.5t66.5 -147.5h8q35 76 69 147.5t65 145.5l174 378h176l-404 -823v-520h-170v520zM205 1565q0 45 27.5 72.5t72.5 27.5q43 0 71.5 -27.5t28.5 -72.5q0 -43 -28.5 -72t-71.5 -29q-45 0 -72.5 29t-27.5 72zM557 1565q0 45 28.5 72.5 t71.5 27.5q45 0 72.5 -27.5t27.5 -72.5q0 -43 -27.5 -72t-72.5 -29q-43 0 -71.5 29t-28.5 72z" />
-<glyph unicode="&#x2c6;" horiz-adv-x="1110" d="M291 1174l194 288h140l194 -288h-123l-137 186h-8l-137 -186h-123z" />
-<glyph unicode="&#x2dc;" horiz-adv-x="1110" d="M270 1186q8 92 49 154.5t117 62.5q39 0 72 -16.5t60.5 -36t52 -36t49.5 -16.5q57 0 75 105h95q-8 -92 -49 -154.5t-117 -62.5q-39 0 -71 16.5t-59.5 35.5t-52 35.5t-51.5 16.5q-57 0 -75 -104h-95z" />
-<glyph unicode="&#x2000;" horiz-adv-x="896" />
-<glyph unicode="&#x2001;" horiz-adv-x="1792" />
-<glyph unicode="&#x2002;" horiz-adv-x="896" />
-<glyph unicode="&#x2003;" horiz-adv-x="1792" />
-<glyph unicode="&#x2004;" horiz-adv-x="597" />
-<glyph unicode="&#x2005;" horiz-adv-x="448" />
-<glyph unicode="&#x2006;" horiz-adv-x="298" />
-<glyph unicode="&#x2007;" horiz-adv-x="298" />
-<glyph unicode="&#x2008;" horiz-adv-x="224" />
-<glyph unicode="&#x2009;" horiz-adv-x="358" />
-<glyph unicode="&#x200a;" horiz-adv-x="99" />
-<glyph unicode="&#x2010;" horiz-adv-x="636" d="M84 449v129h471v-129h-471z" />
-<glyph unicode="&#x2011;" horiz-adv-x="636" d="M84 449v129h471v-129h-471z" />
-<glyph unicode="&#x2012;" horiz-adv-x="636" d="M84 449v129h471v-129h-471z" />
-<glyph unicode="&#x2013;" horiz-adv-x="983" d="M84 457v116h815v-116h-815z" />
-<glyph unicode="&#x2014;" horiz-adv-x="1638" d="M84 457v116h1470v-116h-1470z" />
-<glyph unicode="&#x2018;" horiz-adv-x="509" d="M117 1061q0 123 55 213t162 151l49 -79q-78 -51 -117 -108.5t-39 -145.5q6 2 19 2q41 0 74.5 -27t33.5 -78q0 -53 -30.5 -82.5t-77.5 -29.5q-61 0 -95 47t-34 137z" />
-<glyph unicode="&#x2019;" horiz-adv-x="509" d="M129 961q78 51 116 108t38 148q-6 -2 -17 -3q-43 0 -75.5 27t-32.5 76q0 53 30.5 84t77.5 31q59 0 94 -48.5t35 -138.5q0 -123 -56 -212t-163 -150z" />
-<glyph unicode="&#x201a;" horiz-adv-x="509" d="M129 -217q78 51 116 108t38 148q-6 -2 -17 -3q-43 0 -75.5 27t-32.5 76q0 53 30.5 84t77.5 31q59 0 94 -48.5t35 -138.5q0 -123 -56 -212t-163 -150z" />
-<glyph unicode="&#x201c;" horiz-adv-x="870" d="M117 1061q0 123 55 213t162 151l49 -79q-78 -51 -117 -108.5t-39 -145.5q6 2 19 2q41 0 74.5 -27t33.5 -78q0 -53 -30.5 -82.5t-77.5 -29.5q-61 0 -95 47t-34 137zM477 1061q0 123 55 213t162 151l49 -79q-78 -51 -117 -108.5t-39 -145.5q6 2 19 2q41 0 74.5 -27 t33.5 -78q0 -53 -30.5 -82.5t-77.5 -29.5q-61 0 -95 47t-34 137z" />
-<glyph unicode="&#x201d;" horiz-adv-x="870" d="M129 961q78 51 116 108t38 148q-6 -2 -17 -3q-43 0 -75.5 27t-32.5 76q0 53 30.5 84t77.5 31q59 0 94 -48.5t35 -138.5q0 -123 -56 -212t-163 -150zM489 961q78 51 116 108t38 148q-6 -2 -17 -3q-43 0 -75.5 27t-32.5 76q0 53 30.5 84t77.5 31q59 0 94 -48.5t35 -138.5 q0 -123 -56 -212t-163 -150z" />
-<glyph unicode="&#x201e;" horiz-adv-x="870" d="M129 -217q78 51 116 108t38 148q-6 -2 -17 -3q-43 0 -75.5 27t-32.5 76q0 53 30.5 84t77.5 31q59 0 94 -48.5t35 -138.5q0 -123 -56 -212t-163 -150zM489 -217q78 51 116 108t38 148q-6 -2 -17 -3q-43 0 -75.5 27t-32.5 76q0 53 30.5 84t77.5 31q59 0 94 -48.5t35 -138.5 q0 -123 -56 -212t-163 -150z" />
-<glyph unicode="&#x2022;" horiz-adv-x="622" d="M82 539q0 55 18.5 101t50 78t72.5 50t88 18q45 0 87 -18t74 -50t50.5 -78t18.5 -101t-18.5 -100.5t-50.5 -78t-74 -50t-87 -17.5q-47 0 -88 17.5t-72.5 50t-50 77.5t-18.5 101z" />
-<glyph unicode="&#x2026;" horiz-adv-x="1941" d="M192 102q0 59 36 95t87 36q49 0 85 -35.5t36 -95.5q0 -55 -36 -91t-85 -36q-51 0 -87 36t-36 91zM878 102q0 59 36 95t87 36q49 0 85 -35.5t36 -95.5q0 -55 -36 -91t-85 -36q-51 0 -87 36t-36 91zM1565 102q0 59 36 95t87 36q49 0 85 -35.5t36 -95.5q0 -55 -36 -91 t-85 -36q-51 0 -87 36t-36 91z" />
-<glyph unicode="&#x202f;" horiz-adv-x="358" />
-<glyph unicode="&#x2039;" horiz-adv-x="555" d="M92 453v127l279 317l73 -61l-241 -320l241 -323l-73 -58z" />
-<glyph unicode="&#x203a;" horiz-adv-x="555" d="M111 193l241 323l-241 320l71 61l281 -317v-127l-281 -318z" />
-<glyph unicode="&#x205f;" horiz-adv-x="448" />
-<glyph unicode="&#x20ac;" d="M47 481v88l121 9q-2 18 -2 36.5v36.5v32.5t2 33.5h-121v90l131 10q18 121 61.5 216t108 162t149.5 101.5t185 34.5q92 0 172 -46t133 -114l-100 -96q-43 53 -94.5 87t-116.5 34q-135 0 -218 -100.5t-108 -278.5h520v-100h-528q-2 -14 -2 -28.5v-31.5v-39.5t2 -37.5h446 v-99h-436q27 -174 106 -272t206 -98q76 0 132 36.5t109 108.5l101 -90q-68 -90 -154 -140.5t-199 -50.5q-92 0 -171 34t-140 99.5t-103 158.5t-61 214h-131z" />
-<glyph unicode="&#x2122;" horiz-adv-x="1304" d="M6 1274v110h531v-110h-205v-524h-123v524h-203zM635 750v634h153l95 -229l55 -162h8l55 162l93 229h151v-634h-117v280l13 215h-8l-146 -397h-92l-147 397h-9l15 -215v-280h-119z" />
-<glyph unicode="&#xe000;" horiz-adv-x="993" d="M0 0v993h993v-993h-993z" />
-<glyph unicode="&#xfb01;" horiz-adv-x="1138" d="M61 858v127l136 10v158q0 154 70.5 242t219.5 88q47 0 89 -9.5t77 -23.5l-37 -129q-55 25 -112 25q-139 0 -139 -193v-158h210v-137h-210v-858h-168v858h-136zM772 1309q0 49 34 78.5t83 29.5t83 -29.5t34 -78.5q0 -47 -34 -78t-83 -31t-83 31t-34 78zM803 0v995h168 v-995h-168z" />
-<glyph unicode="&#xfb02;" horiz-adv-x="1120" d="M61 858v127l136 10v158q0 154 70.5 242t219.5 88q47 0 89 -9.5t77 -23.5l-37 -129q-55 25 -112 25q-139 0 -139 -193v-158h210v-137h-210v-858h-168v858h-136zM766 201v1257h168v-1270q0 -41 14.5 -57t32.5 -16h15.5t21.5 4l22 -127q-16 -8 -38.5 -12.5t-57.5 -4.5 q-96 0 -137 57.5t-41 168.5z" />
-</font>
-</defs></svg> 
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.ttf b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.ttf
deleted file mode 100644
index fe5d758dce70b7b25183b7dd064ffd52ca60fc88..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.ttf and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.woff b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.woff
deleted file mode 100644
index 9799be38b24ef0223e78cf7cfaf0b5af9a895049..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-400-normal-webfont.woff and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.eot b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.eot
deleted file mode 100644
index 1f11e3af0d468258e96734126358b5f84c825ebc..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.eot and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.svg b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.svg
deleted file mode 100644
index ca699f72cc446609e7fbb03d114993fbc5bd87e4..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.svg
+++ /dev/null
@@ -1,245 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="source_sans_prosemibold" horiz-adv-x="1050" >
-<font-face units-per-em="2048" ascent="1536" descent="-512" />
-<missing-glyph horiz-adv-x="419" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="682" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode="&#xd;" horiz-adv-x="419" />
-<glyph unicode=" "  horiz-adv-x="419" />
-<glyph unicode="&#x09;" horiz-adv-x="419" />
-<glyph unicode="&#xa0;" horiz-adv-x="419" />
-<glyph unicode="!" horiz-adv-x="645" d="M170 135q0 70 44 115t110 45t108.5 -45t42.5 -115t-43 -115t-108 -45q-66 0 -110 45t-44 115zM205 1372h237l-8 -233l-33 -699h-157l-33 699z" />
-<glyph unicode="&#x22;" horiz-adv-x="987" d="M160 1409h241l-6 -231l-47 -375h-135l-45 375zM584 1409h241l-6 -231l-47 -375h-135l-45 375z" />
-<glyph unicode="#" d="M72 399v156h174l33 264h-166v156h186l45 356h141l-43 -356h240l47 356h139l-43 -356h164v-156h-182l-33 -264h174v-156h-192l-47 -399h-144l47 399h-239l-49 -399h-144l49 399h-157zM389 555h242l33 264h-242z" />
-<glyph unicode="$" d="M92 135l107 160q72 -57 145.5 -92t157.5 -35q100 0 149 46t49 130q0 68 -41 113t-103 81.5t-134 70.5t-134.5 80t-103.5 110.5t-41 161.5q0 143 82 238t221 120v209h164v-205q98 -12 169 -56t128 -104l-121 -137q-57 53 -110 81t-127 28q-84 0 -131 -42t-47 -122 q0 -61 41 -101.5t103.5 -74t134 -67.5t134 -81t103.5 -115.5t41 -171.5q0 -147 -82 -246.5t-236 -127.5v-211h-164v205q-94 10 -189 50t-165 105z" />
-<glyph unicode="%" horiz-adv-x="1722" d="M61 942q0 203 89.5 312.5t230.5 109.5t230 -109.5t89 -312.5t-89 -314.5t-230 -111.5t-230.5 112t-89.5 314zM231 942q0 -152 42 -220t108 -68t107.5 68.5t41.5 219.5q0 152 -42 218.5t-107 66.5q-66 0 -108 -66.5t-42 -218.5zM422 -25l731 1389h143l-729 -1389h-145z M1022 401q0 203 89.5 312.5t230.5 109.5t230 -109.5t89 -312.5t-89 -314.5t-230 -111.5t-230.5 112t-89.5 314zM1192 401q0 -152 42 -220t108 -68t107.5 68.5t41.5 219.5q0 152 -42 218.5t-107 66.5q-66 0 -108 -66.5t-42 -218.5z" />
-<glyph unicode="&#x26;" horiz-adv-x="1308" d="M57 352q0 70 20.5 125t56.5 101.5t82 84t97 72.5q-41 78 -63.5 152t-22.5 143q0 70 23.5 130.5t69 105.5t106.5 71.5t139 26.5q137 0 216 -78t79 -207q0 -66 -24.5 -121t-65.5 -101t-93 -87t-108 -80q61 -84 140 -162.5t165 -144.5q55 74 98.5 163t71.5 193h218 q-37 -127 -94.5 -243.5t-135.5 -221.5q66 -41 127.5 -68.5t114.5 -37.5l-60 -193q-78 18 -159.5 54.5t-165.5 89.5q-80 -66 -180.5 -105t-223.5 -39q-100 0 -179 30t-134 80t-85 118.5t-30 148.5zM283 367q0 -94 65.5 -151.5t165.5 -57.5q55 0 109.5 21.5t105.5 58.5 q-90 76 -171 160.5t-146 176.5q-57 -47 -93 -97t-36 -111zM424 1032q0 -47 14.5 -95t38.5 -101q84 53 141.5 108t57.5 133q0 53 -24.5 90t-84.5 37q-63 0 -103 -47t-40 -125z" />
-<glyph unicode="'" horiz-adv-x="563" d="M160 1409h241l-6 -231l-47 -375h-135l-45 375z" />
-<glyph unicode="(" horiz-adv-x="663" d="M158 569q0 272 70.5 497.5t199.5 436.5l147 -65q-117 -199 -171 -420t-54 -449q0 -227 54.5 -448t170.5 -420l-147 -66q-129 211 -199.5 436.5t-70.5 497.5z" />
-<glyph unicode=")" horiz-adv-x="663" d="M88 -299q117 199 171 420t54 448t-54 448.5t-171 420.5l148 65q129 -211 199.5 -436t70.5 -498q0 -272 -70.5 -497.5t-199.5 -436.5z" />
-<glyph unicode="*" horiz-adv-x="897" d="M98 1155l39 123l223 -51l23 231h129l23 -231l225 51l39 -123l-211 -92l119 -201l-105 -76l-153 179l-156 -179l-105 76l119 201z" />
-<glyph unicode="+" d="M70 590v172h366v387h178v-387h367v-172h-367v-387h-178v387h-366z" />
-<glyph unicode="," horiz-adv-x="563" d="M96 -244q98 39 152.5 104.5t54.5 143.5h-18q-59 0 -105.5 38t-46.5 108q0 66 46 105.5t112 39.5q84 0 130 -63.5t46 -178.5q0 -152 -83 -262t-237 -164z" />
-<glyph unicode="-" horiz-adv-x="659" d="M86 430v172h487v-172h-487z" />
-<glyph unicode="." horiz-adv-x="563" d="M129 135q0 70 44 115t110 45t108.5 -45t42.5 -115t-43 -115t-108 -45q-66 0 -110 45t-44 115z" />
-<glyph unicode="/" horiz-adv-x="704" d="M25 -328l477 1782h160l-478 -1782h-159z" />
-<glyph unicode="0" d="M82 657q0 332 118.5 501t323.5 169t324 -170t119 -500q0 -332 -119 -507t-324 -175t-323.5 175.5t-118.5 506.5zM307 657q0 -139 16.5 -233t45 -153.5t68.5 -85t87 -25.5t87 25.5t69 85t45 153.5t16 233q0 137 -16 230.5t-45 151t-69 81t-87 23.5t-87 -23.5t-68.5 -81 t-45 -150.5t-16.5 -231z" />
-<glyph unicode="1" d="M152 0v193h290v856h-239v147q98 18 168.5 44t132.5 63h176v-1110h256v-193h-784z" />
-<glyph unicode="2" d="M68 1126q90 96 185 148.5t230 52.5q94 0 170 -28.5t129.5 -81t83 -126t29.5 -163.5q0 -86 -38 -175t-102.5 -180.5t-150.5 -187.5t-182 -199q51 4 110.5 9.5t106.5 5.5h319v-201h-880v137q135 131 244.5 241.5t186.5 205t118 176.5t41 155q0 104 -55.5 165t-159.5 61 q-76 0 -138.5 -43t-115.5 -103z" />
-<glyph unicode="3" d="M49 160l113 151q59 -59 135 -101t174 -42q106 0 173 52t67 145q0 51 -18.5 92t-62.5 69.5t-118 44t-184 15.5v172q96 0 160.5 15t104.5 43t57.5 67t17.5 84q0 82 -51.5 128t-141.5 46q-78 0 -140.5 -34t-121.5 -89l-121 145q84 74 179.5 119t211.5 45q94 0 172 -22.5 t133.5 -66.5t86 -108.5t30.5 -146.5q0 -111 -60.5 -184.5t-166.5 -114.5v-8q117 -31 193.5 -113t76.5 -211q0 -90 -35.5 -159.5t-98 -117.5t-145.5 -74t-177 -26q-160 0 -266.5 53.5t-176.5 131.5z" />
-<glyph unicode="4" d="M37 336v160l516 807h281v-785h163v-182h-163v-336h-222v336h-575zM270 518h342v295q0 57 3 135t8 135h-9q-25 -51 -51 -100t-55 -102z" />
-<glyph unicode="5" d="M49 156l109 151q59 -55 133 -97t172 -42q111 0 181.5 65.5t70.5 184.5q0 117 -65.5 180.5t-174.5 63.5q-63 0 -106 -17.5t-103 -56.5l-112 71l39 644h696v-199h-492l-26 -316q41 20 81 31.5t91 11.5q84 0 158.5 -24.5t130 -74.5t88 -127t32.5 -181q0 -106 -37.5 -190 t-101 -141.5t-146.5 -87.5t-173 -30q-158 0 -265.5 54.5t-179.5 126.5z" />
-<glyph unicode="6" d="M90 612q0 190 43 325.5t113.5 221.5t163 127t192.5 41q119 0 204 -43t144 -104l-127 -144q-35 43 -91 71t-116 28q-61 0 -115.5 -25t-95 -81t-66.5 -148.5t-30 -227.5q57 72 134 113t149 41q84 0 154.5 -24.5t121 -75t78 -126t27.5 -178.5q0 -98 -33 -177t-88 -134 t-130 -86t-159 -31q-96 0 -182 38t-150.5 116t-102.5 199t-38 284zM315 485q18 -174 83 -251.5t161 -77.5q82 0 138.5 63.5t56.5 183.5q0 117 -53.5 174.5t-151.5 57.5q-55 0 -116.5 -34t-117.5 -116z" />
-<glyph unicode="7" d="M90 1104v199h875v-144q-115 -141 -185.5 -269t-111.5 -262t-58.5 -286t-25.5 -342h-240q8 174 30.5 318.5t64.5 275.5t107.5 255t160.5 255h-617z" />
-<glyph unicode="8" d="M84 334q0 61 19.5 111.5t52 91.5t74.5 73.5t89 57.5v8q-76 53 -128 127t-52 178q0 80 30 143.5t82 108.5t125 69.5t156 24.5q88 0 159 -25.5t121 -71.5t76.5 -110.5t26.5 -144.5q0 -49 -15 -93t-39.5 -82t-56.5 -70t-63 -54v-8q45 -25 86 -56.5t72 -72.5t49.5 -92.5 t18.5 -116.5q0 -76 -32 -140.5t-89.5 -112.5t-139 -75t-180.5 -27q-96 0 -177 27t-139 74t-92 112.5t-34 145.5zM291 358q0 -98 69.5 -156.5t169.5 -58.5q94 0 154.5 51.5t60.5 143.5q0 53 -24.5 91t-66.5 67.5t-99 54t-123 51.5q-61 -45 -101 -106.5t-40 -137.5zM350 981 q0 -49 20.5 -86t56.5 -64.5t83 -51.5t102 -44q53 53 81 108.5t28 117.5q0 86 -50 142t-143 56q-76 0 -127 -46t-51 -132z" />
-<glyph unicode="9" d="M76 901q0 98 32.5 177t88 134.5t130 85t158.5 29.5q94 0 180.5 -38t151 -115.5t102 -197.5t37.5 -284q0 -190 -42 -325.5t-112.5 -222.5t-163.5 -128t-194 -41q-117 0 -202.5 43t-145.5 105l127 143q37 -43 93.5 -70.5t115.5 -27.5q61 0 115.5 24.5t95.5 81t66.5 148.5 t29.5 227q-57 -72 -135 -111.5t-149 -39.5q-84 0 -154 24.5t-120 74.5t-77.5 126t-27.5 178zM293 901q0 -117 54.5 -175t152.5 -58q55 0 117.5 34.5t115.5 116.5q-18 172 -84.5 250t-161.5 78q-80 0 -137 -63.5t-57 -182.5z" />
-<glyph unicode=":" horiz-adv-x="563" d="M129 135q0 70 44 115t110 45t108.5 -45t42.5 -115t-43 -115t-108 -45q-66 0 -110 45t-44 115zM129 835q0 70 44 115t110 45t108.5 -45t42.5 -115t-43 -115t-108 -45q-66 0 -110 45t-44 115z" />
-<glyph unicode=";" horiz-adv-x="563" d="M96 -244q98 39 152.5 104.5t54.5 143.5h-18q-59 0 -105.5 38t-46.5 108q0 66 46 105.5t112 39.5q84 0 130 -63.5t46 -178.5q0 -152 -83 -262t-237 -164zM129 835q0 70 44 115t110 45t108.5 -45t42.5 -115t-43 -115t-108 -45q-66 0 -110 45t-44 115z" />
-<glyph unicode="&#x3c;" d="M70 594v172l911 354v-198l-395 -140l-277 -98v-8l277 -98l395 -140v-198z" />
-<glyph unicode="=" d="M70 363v172h911v-172h-911zM70 819v172h911v-172h-911z" />
-<glyph unicode="&#x3e;" d="M70 240v198l395 140l276 98v8l-276 98l-395 140v198l911 -354v-172z" />
-<glyph unicode="?" horiz-adv-x="909" d="M82 1219q66 78 156 128t202 50q82 0 152 -21.5t121 -64.5t78.5 -106.5t27.5 -147.5q0 -66 -23.5 -118t-58.5 -99t-74.5 -90t-71.5 -90.5t-51.5 -100.5t-11.5 -119h-206q-10 74 5 135.5t44.5 112.5t67.5 95t72 86t56.5 83t22.5 88q0 74 -44 119t-122 45 q-63 0 -114.5 -28.5t-96.5 -77.5zM274 135q0 70 43 115t109 45t110 -45t44 -115t-44 -115t-110 -45t-109 45t-43 115z" />
-<glyph unicode="@" horiz-adv-x="1792" d="M102 418q0 211 72 382t192.5 292.5t282.5 188.5t342 67q160 0 290 -51.5t221 -144.5t140.5 -223t49.5 -286q0 -137 -40 -240.5t-103.5 -173t-141.5 -104.5t-154 -35q-88 0 -149.5 39t-75.5 117h-4q-47 -61 -114.5 -100.5t-133.5 -39.5q-113 0 -185.5 79t-72.5 221 q0 88 30 175t83 156.5t126.5 113.5t164.5 44q106 0 159 -100h4l27 84h150l-88 -433q-51 -207 102 -206q47 0 94 27.5t84 78.5t59.5 124t22.5 165q0 117 -34 219t-102.5 179t-175 122t-251.5 45q-135 0 -262 -55t-225.5 -156.5t-159 -244t-60.5 -318.5q0 -152 47 -266.5 t129 -191.5t192.5 -115.5t235.5 -38.5q86 0 170 23.5t152 60.5l55 -131q-180 -102 -395 -103q-152 0 -288 47t-238.5 142.5t-163 236t-60.5 328.5zM700 420q0 -84 34 -122t91 -38q37 0 76 24.5t86 82.5l53 301q-45 72 -112 71q-53 0 -95 -30.5t-72 -77.5t-45.5 -103.5 t-15.5 -107.5z" />
-<glyph unicode="A" horiz-adv-x="1136" d="M-8 0l438 1339h279l436 -1339h-252l-105 362h-448l-104 -362h-244zM393 549h342l-47 164q-31 106 -61.5 218.5t-59.5 223.5h-8q-29 -113 -57.5 -224.5t-61.5 -217.5z" />
-<glyph unicode="B" horiz-adv-x="1216" d="M168 0v1339h428q102 0 190 -17t151.5 -55t99.5 -101.5t36 -155.5q0 -96 -55 -178t-174 -113v-8q145 -25 223 -104t78 -214q0 -100 -39 -174t-107.5 -123t-163 -72.5t-204.5 -23.5h-463zM406 184h200q147 0 226 55.5t79 170.5q0 104 -77.5 154t-227.5 50h-200v-430z M406 784h167q141 0 204 51.5t63 145.5q0 92 -64.5 133t-195.5 41h-174v-371z" />
-<glyph unicode="C" horiz-adv-x="1173" d="M96 666q0 164 48.5 294t132 220t196.5 137t242 47q123 0 220 -51t161 -119l-131 -147q-53 51 -111.5 80.5t-136.5 29.5q-82 0 -151.5 -33.5t-120 -96t-78 -153t-27.5 -202.5q0 -229 100.5 -359.5t268.5 -130.5q90 0 157.5 35t124.5 98l131 -145q-82 -94 -185 -144.5 t-232 -50.5q-127 0 -239 45.5t-194 133.5t-129 217t-47 295z" />
-<glyph unicode="D" horiz-adv-x="1275" d="M168 0v1339h356q307 0 480.5 -165.5t173.5 -497.5q0 -166 -44 -293t-127 -212t-202 -128t-268 -43h-369zM406 193h102q205 0 315.5 117.5t110.5 365.5q0 246 -111.5 358.5t-314.5 112.5h-102v-954z" />
-<glyph unicode="E" horiz-adv-x="1093" d="M168 0v1339h805v-200h-567v-342h481v-201h-481v-395h587v-201h-825z" />
-<glyph unicode="F" horiz-adv-x="1036" d="M168 0v1339h809v-200h-571v-379h485v-201h-485v-559h-238z" />
-<glyph unicode="G" horiz-adv-x="1277" d="M96 666q0 164 49.5 294t135.5 220t202.5 137t251.5 47q70 0 129.5 -14.5t108.5 -38t90 -54t72 -63.5l-131 -147q-51 49 -112 79.5t-155 30.5q-90 0 -162.5 -33.5t-125 -96t-81 -153t-28.5 -202.5q0 -229 104.5 -359.5t307.5 -130.5q55 0 106 15.5t84 44.5v288h-252v195 h465v-590q-70 -66 -182.5 -113t-249.5 -47q-133 0 -248 45.5t-198.5 133.5t-132 217t-48.5 295z" />
-<glyph unicode="H" horiz-adv-x="1351" d="M168 0v1339h238v-538h540v538h238v-1339h-238v594h-540v-594h-238z" />
-<glyph unicode="I" horiz-adv-x="571" d="M168 0v1339h238v-1339h-238z" />
-<glyph unicode="J" horiz-adv-x="1005" d="M45 203l164 121q41 -74 94 -108t115 -34q94 0 142 57.5t48 200.5v899h238v-919q0 -92 -23.5 -173t-72 -141.5t-124 -95.5t-180.5 -35q-141 0 -238 57.5t-163 170.5z" />
-<glyph unicode="K" horiz-adv-x="1216" d="M168 0v1339h238v-608h6l477 608h262l-412 -522l482 -817h-263l-360 631l-192 -240v-391h-238z" />
-<glyph unicode="L" horiz-adv-x="1021" d="M168 0v1339h238v-1138h555v-201h-793z" />
-<glyph unicode="M" horiz-adv-x="1519" d="M168 0v1339h260l242 -659l88 -254h8l88 254l236 659h262v-1339h-224v612q0 47 3.5 102.5t7.5 112t10 110.5t10 101h-8l-109 -305l-231 -608h-109l-231 608l-106 305h-9q4 -47 9.5 -101t9.5 -110.5t7 -112t3 -102.5v-612h-217z" />
-<glyph unicode="N" horiz-adv-x="1337" d="M168 0v1339h244l415 -753l140 -285h8q-10 104 -20.5 224t-10.5 233v581h225v-1339h-243l-416 754l-139 284h-9q10 -106 20.5 -223t10.5 -229v-586h-225z" />
-<glyph unicode="O" horiz-adv-x="1374" d="M96 676q0 162 43 290t122 216t187.5 135t239.5 47t239.5 -47t186.5 -135t121 -216t43 -290q0 -164 -43 -293t-121 -220t-186.5 -139.5t-239.5 -48.5t-239.5 48.5t-187.5 139.5t-122 220t-43 293zM340 676q0 -113 24.5 -204t70.5 -155.5t109.5 -99.5t143.5 -35 q78 0 142.5 35t109.5 99.5t69.5 155.5t24.5 204q0 225 -94 353t-252 128q-160 0 -254 -128t-94 -353z" />
-<glyph unicode="P" horiz-adv-x="1204" d="M168 0v1339h450q111 0 204 -20.5t161 -69.5t105.5 -128t37.5 -195q0 -111 -38.5 -193t-107.5 -136t-162 -79.5t-200 -25.5h-212v-492h-238zM406 682h192q152 0 223.5 60.5t71.5 183.5q0 127 -74 175t-221 48h-192v-467z" />
-<glyph unicode="Q" horiz-adv-x="1374" d="M92 676q0 162 43 290t121 216t186.5 135t239.5 47t239.5 -47t187.5 -135t122 -216t43 -290q0 -139 -32 -255t-91 -204t-142 -145.5t-186 -79.5q47 -80 130 -115t182 -35q45 0 80.5 6.5t64.5 16.5l43 -178q-35 -16 -90 -26.5t-125 -10.5q-201 0 -336 94t-201 242 q-109 18 -196.5 74.5t-151 144.5t-97.5 206.5t-34 264.5zM336 676q0 -113 24.5 -204t69.5 -155.5t108.5 -99.5t143.5 -35t143.5 35t108.5 99.5t69.5 155.5t24.5 204q0 225 -93 353t-253 128t-253 -128t-93 -353z" />
-<glyph unicode="R" horiz-adv-x="1220" d="M168 0v1339h450q104 0 194.5 -20.5t157 -66.5t104.5 -121.5t38 -188.5q0 -154 -72.5 -248t-195.5 -135l319 -559h-266l-289 524h-202v-524h-238zM406 713h188q139 0 211 57t72 172q0 117 -72 162t-211 45h-188v-436z" />
-<glyph unicode="S" horiz-adv-x="1110" d="M76 172l137 162q72 -68 164 -110t186 -42q113 0 173.5 47t60.5 125q0 41 -15.5 70t-43 50.5t-66.5 39.5t-84 37l-182 80q-49 20 -98.5 51t-87.5 74t-61.5 100t-23.5 131q0 80 34 148.5t93.5 120t141 80t180.5 28.5q119 0 227.5 -46t185.5 -124l-123 -152 q-63 53 -133.5 84t-156.5 31q-96 0 -152.5 -42t-56.5 -116q0 -39 17.5 -66.5t47 -49t68.5 -39t80 -33.5l180 -76q59 -25 109.5 -57.5t86 -75.5t55 -99.5t19.5 -129.5q0 -82 -32.5 -154t-95 -126t-151.5 -86t-202 -32q-135 0 -260 51.5t-221 145.5z" />
-<glyph unicode="T" horiz-adv-x="1112" d="M51 1139v200h1010v-200h-385v-1139h-238v1139h-387z" />
-<glyph unicode="U" horiz-adv-x="1335" d="M160 588v751h237v-770q0 -109 19.5 -183.5t55.5 -119.5t86 -64.5t112 -19.5q61 0 112.5 19.5t87 64.5t56 120t20.5 183v770h230v-751q0 -166 -36 -282t-101.5 -189.5t-159 -107.5t-209.5 -34q-117 0 -211 34t-161 107.5t-102.5 189.5t-35.5 282z" />
-<glyph unicode="V" horiz-adv-x="1091" d="M-10 1339h252l188 -673q33 -115 57.5 -217.5t59.5 -219.5h8q35 117 60.5 219.5t58.5 217.5l186 673h242l-414 -1339h-282z" />
-<glyph unicode="W" horiz-adv-x="1632" d="M33 1339h246l114 -675q16 -109 33.5 -215.5t34.5 -212.5h8q20 106 41.5 213.5t44.5 214.5l166 675h205l166 -675q23 -104 44 -212t44 -216h8q16 109 32.5 215t32.5 213l115 675h229l-258 -1339h-295l-165 705q-16 78 -30.5 154.5t-29.5 154.5h-8q-14 -78 -28.5 -155 t-30.5 -154l-162 -705h-291z" />
-<glyph unicode="X" horiz-adv-x="1101" d="M25 0l378 690l-356 649h264l150 -297q23 -47 46 -96t54 -108h8q25 59 46.5 108t43.5 96l142 297h252l-357 -659l381 -680h-264l-164 315q-27 53 -52.5 105.5t-53.5 114.5h-8q-27 -61 -51.5 -113.5t-49.5 -106.5l-158 -315h-251z" />
-<glyph unicode="Y" horiz-adv-x="1019" d="M-12 1339h254l145 -342q29 -76 58.5 -146.5t60.5 -148.5h8q33 78 64.5 149t60.5 146l145 342h248l-403 -841v-498h-238v498z" />
-<glyph unicode="Z" horiz-adv-x="1099" d="M78 0v143l649 996h-588v200h881v-143l-647 -995h653v-201h-948z" />
-<glyph unicode="[" horiz-adv-x="663" d="M184 -311v1761h402v-131h-224v-1501h224v-129h-402z" />
-<glyph unicode="\" horiz-adv-x="704" d="M43 1454h160l479 -1782h-162z" />
-<glyph unicode="]" horiz-adv-x="663" d="M78 -182h223v1501h-223v131h401v-1761h-401v129z" />
-<glyph unicode="^" d="M113 571l313 801h197l315 -801h-199l-112 310l-99 276h-8l-96 -276l-113 -310h-198z" />
-<glyph unicode="_" horiz-adv-x="1024" d="M25 -131h974v-141h-974v141z" />
-<glyph unicode="`" horiz-adv-x="1124" d="M295 1473h233l185 -299h-177z" />
-<glyph unicode="a" horiz-adv-x="1071" d="M106 270q0 162 141.5 250t450.5 123q0 39 -10 75t-31.5 63.5t-55.5 43t-85 15.5q-76 0 -146.5 -29t-136.5 -70l-86 158q84 53 187.5 92t224.5 39q190 0 282.5 -111.5t92.5 -322.5v-596h-193l-18 111h-6q-68 -57 -144.5 -96.5t-166.5 -39.5q-133 0 -216.5 81t-83.5 214z M336 289q0 -68 40 -98.5t103 -30.5q61 0 112.5 28.5t106.5 81.5v226q-102 -12 -171.5 -33t-111.5 -46.5t-60.5 -58t-18.5 -69.5z" />
-<glyph unicode="b" horiz-adv-x="1155" d="M150 0v1446h235v-373l-6 -168q63 55 138 90t153 35q94 0 167.5 -36t125 -102.5t78 -160.5t26.5 -211q0 -129 -36 -230.5t-95 -171t-137 -106.5t-162 -37q-70 0 -140.5 33t-134.5 94h-6l-20 -102h-186zM385 254q53 -47 105.5 -65.5t97.5 -18.5q100 0 167.5 87t67.5 259 q0 152 -51 236t-166 84q-106 0 -221 -113v-469z" />
-<glyph unicode="c" horiz-adv-x="946" d="M84 502q0 125 41 223t110.5 165.5t160.5 103.5t192 36q98 0 170.5 -33.5t124.5 -83.5l-113 -149q-41 35 -82 54.5t-88 19.5q-123 0 -198.5 -91.5t-75.5 -244.5q0 -152 74.5 -243t193.5 -91q61 0 113.5 25.5t93.5 60.5l98 -150q-72 -63 -158 -96t-172 -33q-102 0 -191 35 t-154.5 102.5t-102.5 166t-37 223.5z" />
-<glyph unicode="d" horiz-adv-x="1155" d="M88 502q0 123 36 221t95.5 165.5t136 104.5t158.5 37q86 0 145.5 -29.5t118.5 -80.5l-8 161v365h236v-1446h-195l-16 109h-9q-55 -55 -128.5 -94.5t-155.5 -39.5q-190 0 -302 138.5t-112 388.5zM332 504q0 -164 58.5 -249t168.5 -85q113 0 211 113v469 q-53 47 -103.5 65.5t-101.5 18.5q-98 0 -165.5 -86t-67.5 -246z" />
-<glyph unicode="e" horiz-adv-x="1038" d="M84 502q0 123 39 221t103.5 165.5t148.5 104.5t172 37q102 0 180 -34.5t130 -98t79 -152t27 -192.5q0 -70 -11 -111h-639q16 -137 95 -210.5t202 -73.5q66 0 122 19.5t112 53.5l80 -147q-72 -47 -160 -78t-184 -31q-104 0 -194.5 36t-158 103.5t-105.5 165t-38 222.5z M311 592h447q0 121 -50.5 188.5t-154.5 67.5q-90 0 -157.5 -64.5t-84.5 -191.5z" />
-<glyph unicode="f" horiz-adv-x="649" d="M55 819v176l135 11v104q0 78 18.5 144.5t59.5 114.5t103.5 74.5t152.5 26.5q53 0 101.5 -10t83.5 -24l-45 -176q-53 24 -107 24h-4q-127 0 -127 -170v-108h197v-187h-197v-819h-236v819h-135z" />
-<glyph unicode="g" horiz-adv-x="1064" d="M82 -182q0 63 37 117.5t106 97.5v8q-39 25 -64.5 65.5t-25.5 102.5q0 59 34 107.5t77 78.5v8q-51 39 -91 108t-40 159q0 86 32.5 153.5t87 113.5t126 69.5t151.5 23.5q41 0 79 -7t68 -17h361v-175h-184q25 -29 41 -72.5t16 -96.5q0 -84 -29.5 -147.5t-81 -106.5t-121 -66 t-149.5 -23q-33 0 -67.5 6.5t-69.5 20.5q-23 -20 -36 -40.5t-13 -55.5q0 -43 35.5 -67.5t127.5 -24.5h179q182 0 275 -58.5t93 -189.5q0 -74 -37.5 -139.5t-107.5 -112.5t-169 -74.5t-222 -27.5q-90 0 -167 16t-132.5 49t-87 82t-31.5 115zM279 -147q0 -68 68.5 -106 t189.5 -38q123 0 197.5 48t74.5 114q0 59 -46 79.5t-132 20.5h-137q-82 0 -138 15q-77 -59 -77 -133zM336 670q0 -98 51 -150.5t125 -52.5q72 0 123 52t51 151q0 94 -50 146t-124 52t-125 -51t-51 -147z" />
-<glyph unicode="h" horiz-adv-x="1142" d="M150 0v1446h235v-373l-8 -194q63 59 140 105t181 46q162 0 236 -103.5t74 -295.5v-631h-236v600q0 125 -37 176t-121 51q-66 0 -115.5 -31.5t-113.5 -93.5v-702h-235z" />
-<glyph unicode="i" horiz-adv-x="536" d="M123 1315q0 59 41 97t104 38t104.5 -38t41.5 -97t-41.5 -96t-104.5 -37t-104 36.5t-41 96.5zM150 0v1006h235v-1006h-235z" />
-<glyph unicode="j" horiz-adv-x="538" d="M-94 -395l45 176q20 -6 41.5 -11.5t44.5 -5.5q68 0 91.5 46.5t23.5 134.5v1061h237v-1057q0 -80 -16.5 -147.5t-54 -118t-99 -78t-149.5 -27.5q-55 0 -95.5 8t-68.5 19zM125 1315q0 59 42 97t103 38q63 0 105.5 -38t42.5 -97t-42.5 -96t-105.5 -37q-61 0 -103 36.5 t-42 96.5z" />
-<glyph unicode="k" horiz-adv-x="1069" d="M150 0v1446h231v-903h6l373 463h258l-344 -410l379 -596h-256l-258 436l-158 -180v-256h-231z" />
-<glyph unicode="l" horiz-adv-x="555" d="M150 258v1188h235v-1200q0 -43 16.5 -60.5t34.5 -17.5h15.5t21.5 4l31 -176q-47 -20 -125 -21q-127 0 -178 76t-51 207z" />
-<glyph unicode="m" horiz-adv-x="1726" d="M150 0v1006h194l16 -138h9q63 68 138 115t169 47q111 0 177.5 -47t100.5 -133q72 78 150 129t174 51q160 0 235.5 -103.5t75.5 -295.5v-631h-237v600q0 125 -38 176t-116 51q-94 0 -211 -125v-702h-235v600q0 125 -38 176t-118 51q-94 0 -211 -125v-702h-235z" />
-<glyph unicode="n" horiz-adv-x="1146" d="M150 0v1006h194l16 -136h9q68 66 146.5 113t182.5 47q162 0 236 -103.5t74 -295.5v-631h-236v600q0 125 -37 176t-121 51q-66 0 -115.5 -31.5t-113.5 -93.5v-702h-235z" />
-<glyph unicode="o" horiz-adv-x="1124" d="M84 502q0 125 39 223t105.5 165.5t152.5 103.5t180 36t181 -36t153 -103.5t105.5 -165.5t39.5 -223t-39.5 -223.5t-105.5 -166t-153 -102.5t-181 -35t-180 35t-152.5 102.5t-105.5 166t-39 223.5zM326 502q0 -152 62.5 -243t172.5 -91q111 0 174.5 91t63.5 243 q0 154 -63.5 245t-174.5 91t-173 -91t-62 -245z" />
-<glyph unicode="p" horiz-adv-x="1155" d="M150 -397v1403h194l16 -107h9q63 53 141 92t162 39q94 0 166.5 -36t124 -103.5t78 -161.5t26.5 -211q0 -129 -36 -230.5t-95 -170t-137 -105.5t-162 -37q-66 0 -131.5 29t-126.5 82l6 -168v-315h-235zM385 254q55 -47 106.5 -65.5t96.5 -18.5q100 0 167.5 87t67.5 259 q0 152 -51 236t-166 84q-106 0 -221 -113v-469z" />
-<glyph unicode="q" horiz-adv-x="1148" d="M88 502q0 123 36 221t95.5 165.5t136 104.5t158.5 37q86 0 150.5 -29.5t128.5 -91.5h6l20 97h187v-1403h-236v329l8 166q-55 -53 -126.5 -88t-149.5 -35q-190 0 -302 138.5t-112 388.5zM332 504q0 -164 58.5 -249t168.5 -85q113 0 211 113v469q-53 47 -103.5 65.5 t-101.5 18.5q-98 0 -165.5 -86t-67.5 -246z" />
-<glyph unicode="r" horiz-adv-x="763" d="M150 0v1006h194l16 -179h9q53 98 128.5 150.5t155.5 52.5q72 0 115 -20l-41 -205q-27 8 -49.5 12t-54.5 4q-59 0 -125 -46t-113 -161v-614h-235z" />
-<glyph unicode="s" horiz-adv-x="882" d="M49 115l111 151q68 -53 134 -82.5t144 -29.5q82 0 121 33.5t39 86.5q0 31 -18.5 54.5t-49 42t-69.5 34t-78 31.5q-49 18 -100.5 43t-91 59.5t-65.5 81t-26 109.5q0 133 98.5 217t268.5 84q104 0 188 -37t146 -84l-109 -143q-53 39 -107.5 62.5t-113.5 23.5 q-76 0 -111.5 -32t-35.5 -79q0 -29 17 -50t46 -38.5t67 -32t78 -28.5q51 -18 102.5 -42t93.5 -58.5t67.5 -85t25.5 -119.5q0 -66 -25.5 -122t-74.5 -98t-123 -67t-168 -25q-104 0 -205.5 40t-175.5 100z" />
-<glyph unicode="t" horiz-adv-x="739" d="M41 819v176l156 11l28 274h197v-274h256v-187h-256v-479q0 -176 141 -176q27 0 54.5 6t50.5 16l41 -174q-41 -14 -93.5 -25.5t-111.5 -11.5q-88 0 -148.5 27t-98.5 75t-55.5 114.5t-17.5 148.5v479h-143z" />
-<glyph unicode="u" horiz-adv-x="1138" d="M139 375v631h236v-600q0 -125 37 -176.5t118 -51.5q66 0 116 33t108 106v689h235v-1006h-192l-19 147h-6q-66 -78 -142.5 -125t-180.5 -47q-162 0 -236 103.5t-74 296.5z" />
-<glyph unicode="v" horiz-adv-x="1013" d="M25 1006h239l160 -523q20 -74 41.5 -149.5t42.5 -153.5h8q23 78 43.5 154t42.5 149l160 523h227l-342 -1006h-272z" />
-<glyph unicode="w" horiz-adv-x="1531" d="M49 1006h238l121 -523q16 -72 27 -143.5t26 -144.5h8q14 74 29.5 145.5t33.5 142.5l132 523h215l133 -523q18 -72 34.5 -143.5t32.5 -144.5h8q14 74 26.5 145.5t27.5 142.5l121 523h221l-256 -1006h-281l-117 469q-16 72 -30.5 142.5t-30.5 150.5h-8 q-14 -80 -28.5 -151.5t-31.5 -143.5l-114 -467h-271z" />
-<glyph unicode="x" horiz-adv-x="985" d="M29 0l319 524l-299 482h254l113 -191q23 -41 46 -85t46 -85h8q18 41 38.5 85t39.5 85l96 191h244l-297 -508l319 -498h-254l-122 199q-25 45 -50.5 90t-52.5 88h-8q-23 -43 -44.5 -87t-43.5 -91l-107 -199h-245z" />
-<glyph unicode="y" horiz-adv-x="1013" d="M25 1006h239l174 -494q23 -66 44.5 -138.5t43.5 -144.5h9q18 70 37.5 142.5t37.5 140.5l152 494h227l-364 -1051q-31 -86 -68 -153.5t-85 -115.5t-110.5 -74t-144.5 -26q-41 0 -71.5 5.5t-59.5 15.5l43 184q14 -4 33.5 -9t38.5 -5q80 0 128 48t72 124l19 63z" />
-<glyph unicode="z" horiz-adv-x="907" d="M70 0v127l475 692h-422v187h717v-125l-473 -693h489v-188h-786z" />
-<glyph unicode="{" horiz-adv-x="663" d="M66 498v143q51 0 84.5 14.5t54 36t29 48t8.5 55.5q0 96 -9.5 181t-9.5 191q0 162 60.5 222.5t189.5 60.5h113v-131h-49q-72 0 -97.5 -35t-25.5 -127q0 -86 5 -173t5 -179q0 -111 -33 -162t-104 -70v-8q72 -18 104.5 -70.5t32.5 -160.5q0 -98 -5 -181t-5 -171 q0 -92 25.5 -128t97.5 -36h49v-129h-113q-63 0 -110.5 13t-78 46t-46 87t-15.5 136q0 55 3 101.5t6.5 89.5t6.5 87t3 93q0 29 -8.5 56.5t-29 49t-54 36t-84.5 14.5z" />
-<glyph unicode="|" horiz-adv-x="522" d="M182 -512v2048h158v-2048h-158z" />
-<glyph unicode="}" horiz-adv-x="663" d="M78 -182h47q74 0 99.5 35.5t25.5 128.5q0 88 -5 171t-5 181q0 109 32.5 161t104.5 70v8q-72 18 -104.5 69.5t-32.5 162.5q0 92 5 179t5 173q0 92 -25.5 127t-99.5 35h-47v131h110q63 0 111.5 -14.5t79.5 -47t46 -87t15 -134.5q0 -106 -9 -191t-9 -181q0 -29 8 -55.5 t28.5 -48t54.5 -36t85 -14.5v-143q-51 0 -85 -14.5t-54.5 -36t-28.5 -49t-8 -56.5q0 -49 3 -93t6 -87t6 -89t3 -102q0 -82 -15 -136t-46 -87t-79 -46t-112 -13h-110v129z" />
-<glyph unicode="~" d="M66 645q66 106 138 152.5t144 46.5q61 0 109.5 -25.5t89.5 -56.5t79 -56.5t81 -25.5q86 0 151 121l125 -96q-66 -104 -137.5 -150.5t-143.5 -46.5q-61 0 -109 25.5t-89 56.5t-79 56.5t-81 25.5q-86 0 -151 -121z" />
-<glyph unicode="&#xa1;" horiz-adv-x="645" d="M170 872q0 68 44 113t110 45t108.5 -45t42.5 -113q0 -72 -43 -116.5t-108 -44.5q-66 0 -110 45t-44 116zM205 -367l6 234l33 698h157l33 -698l8 -234h-237z" />
-<glyph unicode="&#xa2;" d="M125 631q0 106 32.5 193t89 150.5t134.5 103.5t170 55v206h135v-200q86 -4 150.5 -37t111.5 -80l-110 -145q-72 63 -152 71v-631q53 4 98 29t82 55l99 -149q-59 -53 -132 -85t-147 -42v-201h-135v203q-193 25 -309.5 154t-116.5 350zM354 631q0 -115 51.5 -193 t145.5 -106v600q-94 -31 -145.5 -109t-51.5 -192z" />
-<glyph unicode="&#xa3;" d="M104 0v145q98 49 158 138.5t60 201.5q0 23 -2.5 42.5t-6.5 41.5h-204v142l137 10h24q-16 53 -29.5 105.5t-13.5 103.5q0 92 30 165.5t84 125t130 79t166 27.5q113 0 193.5 -43t142.5 -117l-131 -129q-39 45 -82 71t-103 26q-96 0 -149 -56.5t-53 -160.5q0 -51 10 -99.5 t24 -97.5h316v-152h-281q6 -43 6 -86q0 -92 -26.5 -153.5t-81.5 -120.5v-8h553v-201h-871z" />
-<glyph unicode="&#xa4;" d="M47 313l127 129q-35 47 -53.5 105.5t-18.5 126.5q0 70 18.5 128t53.5 105l-127 129l121 123l139 -143q98 63 217 63t217 -63l142 143l121 -123l-130 -129q35 -47 53.5 -105.5t18.5 -127.5q0 -68 -18.5 -126.5t-53.5 -105.5l130 -129l-121 -123l-142 144 q-47 -33 -103 -48.5t-114 -15.5q-57 0 -112.5 15.5t-102.5 48.5l-141 -144zM315 674q0 -106 61.5 -171t147.5 -65q88 0 148.5 64.5t60.5 171.5q0 109 -60.5 173t-148.5 64q-86 0 -147.5 -64t-61.5 -173z" />
-<glyph unicode="&#xa5;" d="M37 1303h244l131 -310q29 -68 55.5 -135t56.5 -137h8q29 70 56.5 137.5t56.5 134.5l131 310h238l-318 -627h271v-121h-324v-121h324v-123h-324v-311h-237v311h-322v123h322v121h-322v121h268z" />
-<glyph unicode="&#xa6;" horiz-adv-x="522" d="M182 428h158v-940h-158v940zM182 618v918h158v-918h-158z" />
-<glyph unicode="&#xa7;" d="M84 684q0 84 46 151.5t124 112.5q-61 68 -61 168q0 61 21.5 114.5t64.5 92.5t105 61.5t144 22.5q109 0 196 -39t148 -86l-110 -149q-47 41 -103.5 68.5t-117.5 27.5q-72 0 -103.5 -29t-31.5 -74q0 -47 41.5 -78.5t103 -61.5t135.5 -61.5t135.5 -76.5t103.5 -109.5 t42 -156.5q0 -94 -45 -158t-125 -111q25 -33 39 -72.5t14 -90.5q0 -66 -24.5 -120.5t-71.5 -95t-115 -63.5t-152 -23q-111 0 -211 41t-165 119l139 123q51 -51 108.5 -78.5t128.5 -27.5q72 0 110 32.5t38 81.5t-41 82t-102.5 61.5t-132 59.5t-132 75t-102.5 107.5t-41 159.5 zM287 700q0 -57 36.5 -95t93 -68.5t124 -58t129.5 -62.5q47 25 70.5 59.5t23.5 87.5q0 57 -36 97t-92 71t-124 57.5t-129 61.5q-47 -29 -71.5 -64t-24.5 -86z" />
-<glyph unicode="&#xa8;" horiz-adv-x="1124" d="M250 1309q0 51 33.5 86t87.5 35q53 0 87.5 -35t34.5 -86q0 -53 -34.5 -88t-87.5 -35t-87 34.5t-34 88.5zM629 1309q0 51 34.5 86t87.5 35t87 -35t34 -86q0 -53 -34 -88t-87 -35t-87.5 34.5t-34.5 88.5z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1529" d="M96 664q0 158 54.5 282.5t145.5 212.5t213 134t257 46t256 -46t212 -134t145.5 -213t54.5 -282q0 -158 -54.5 -284t-145.5 -215t-212 -137t-256 -48t-257 48t-213 137t-145.5 215t-54.5 284zM215 664q0 -129 43 -235.5t118 -182.5t175 -118t215 -42t215 42t174 118 t117 182.5t43 235.5t-43 234.5t-117 180t-174 115.5t-215 41t-215 -41t-175 -115.5t-118 -180t-43 -234.5zM401 662q0 90 32 162.5t86 122.5t124 78t145 28q92 0 154 -35t111 -84l-92 -103q-39 37 -76 56.5t-84 19.5q-104 0 -163.5 -69.5t-59.5 -175.5q0 -119 58 -189 t157 -70q59 0 102 23t84 57l80 -114q-57 -47 -122 -79t-151 -32q-82 0 -152.5 27.5t-121.5 80t-81 127.5t-30 169z" />
-<glyph unicode="&#xaa;" horiz-adv-x="720" d="M68 715q0 109 93 167t302 76q-4 55 -28.5 88t-86.5 33q-47 0 -97 -19.5t-97 -45.5l-62 112q59 37 132 64t153 27q256 0 256 -291v-394h-137l-17 72h-8q-41 -37 -90.5 -62.5t-108.5 -25.5q-94 0 -149 56.5t-55 142.5zM233 729q1 -82 95 -82q35 0 67.5 17.5t67.5 50.5v143 q-129 -14 -179.5 -48t-50.5 -81z" />
-<glyph unicode="&#xab;" horiz-adv-x="933" d="M96 430v172l277 305l94 -76l-236 -315l236 -317l-94 -74zM452 430v172l277 305l94 -76l-236 -315l236 -317l-94 -74z" />
-<glyph unicode="&#xac;" d="M70 590v172h911v-559h-178v387h-733z" />
-<glyph unicode="&#xad;" horiz-adv-x="659" d="M86 430v172h487v-172h-487z" />
-<glyph unicode="&#xae;" horiz-adv-x="907" d="M57 1053q0 90 31 165.5t85 130t126 84t154 29.5t153.5 -29.5t125.5 -84t85 -130t31 -165.5t-31 -165t-85 -129t-125.5 -84t-153.5 -30t-154 30t-126 84t-85 129t-31 165zM154 1053q0 -72 22.5 -130.5t62.5 -100.5t94 -65.5t120 -23.5q63 0 118.5 23.5t95.5 65.5 t62.5 100.5t22.5 130.5t-22.5 131t-62.5 102t-95.5 66.5t-118.5 23.5q-66 0 -120 -23.5t-94 -66.5t-62.5 -102.5t-22.5 -130.5zM295 854v408h170q68 0 116 -31t48 -103q0 -35 -19.5 -65.5t-56.5 -46.5l90 -162h-108l-68 133h-70v-133h-102zM397 1061h47q35 0 55.5 16.5 t20.5 44.5q0 27 -17.5 44.5t-56.5 17.5h-49v-123z" />
-<glyph unicode="&#xaf;" horiz-adv-x="1124" d="M295 1221v155h532v-155h-532z" />
-<glyph unicode="&#xb0;" horiz-adv-x="712" d="M82 1124q0 61 21.5 112.5t59.5 88.5t88 57.5t107 20.5t107.5 -20.5t88.5 -57.5t59.5 -88t21.5 -113q0 -61 -21.5 -112t-59.5 -88t-88.5 -57.5t-107.5 -20.5t-107 20.5t-88 57.5t-59.5 88t-21.5 112zM213 1124q0 -70 39.5 -113.5t105.5 -43.5t106 44t40 113q0 72 -40 116 t-106 44t-105.5 -44t-39.5 -116z" />
-<glyph unicode="&#xb1;" d="M70 0v170h911v-170h-911zM70 612v170h366v367h178v-367h367v-170h-367v-319h-178v319h-366z" />
-<glyph unicode="&#xb2;" horiz-adv-x="761" d="M68 1565q53 76 126.5 117.5t159.5 41.5q127 0 204 -67.5t77 -196.5q0 -53 -19.5 -102t-54.5 -99.5t-81 -101.5t-99 -106h289v-150h-572v98q172 147 268.5 247.5t96.5 184.5q0 68 -36 107t-99 39q-45 0 -84 -30t-74 -77z" />
-<glyph unicode="&#xb3;" horiz-adv-x="761" d="M63 1036l111 86q74 -109 186 -108q57 0 97.5 30.5t40.5 87.5q0 59 -56.5 91t-162.5 32v105q88 0 138 32.5t50 90.5q0 47 -33 75.5t-88 28.5q-41 0 -79 -24.5t-68 -63.5l-103 90q59 66 124 100.5t155 34.5q53 0 101 -15t85 -43t58.5 -69t21.5 -92q0 -68 -34 -114t-93 -76 q66 -23 112 -71t46 -124q0 -55 -23.5 -100t-64.5 -77t-95.5 -49.5t-113.5 -17.5q-102 0 -182 43t-130 117z" />
-<glyph unicode="&#xb4;" horiz-adv-x="1124" d="M409 1174l185 299h233l-241 -299h-177z" />
-<glyph unicode="&#xb5;" horiz-adv-x="1150" d="M150 -410v1416h235v-600q0 -125 38 -176.5t120 -51.5q66 0 115 33t108 106v689h235v-1006h-194l-16 147h-9q-47 -78 -111.5 -118.5t-142.5 -40.5q-49 0 -88 12t-67 53l12 -184v-279h-235z" />
-<glyph unicode="&#xb6;" horiz-adv-x="1226" d="M82 893q0 125 39 210t107.5 137t161.5 75.5t200 23.5h90v-905h-76q-111 0 -206 27.5t-165.5 85t-110.5 143.5t-40 203zM793 -164v1503h237v-1503h-237z" />
-<glyph unicode="&#xb7;" horiz-adv-x="563" d="M129 657q0 70 44 115t110 45t108.5 -45t42.5 -115t-43 -115t-108 -45q-66 0 -110 45t-44 115z" />
-<glyph unicode="&#xb8;" horiz-adv-x="1124" d="M376 -342q78 10 127.5 31.5t49.5 62.5q0 33 -30 55.5t-95 38.5l82 160h143l-47 -100q51 -18 86 -52t35 -98q0 -49 -27 -83.5t-73 -59.5t-105 -39t-125 -18z" />
-<glyph unicode="&#xb9;" horiz-adv-x="761" d="M168 1503v111q76 12 121 31.5t92 54.5h141v-799h-178v602h-176z" />
-<glyph unicode="&#xba;" horiz-adv-x="755" d="M55 864q0 84 25.5 149.5t71 110.5t102.5 69t123 24q63 0 121.5 -24t103.5 -69t70.5 -110.5t25.5 -149.5q0 -82 -25.5 -146.5t-70.5 -109.5t-103.5 -68.5t-121.5 -23.5q-66 0 -123 23.5t-102.5 68.5t-71 109.5t-25.5 146.5zM229 864q0 -94 38 -152.5t110 -58.5t109.5 58.5 t37.5 152.5q0 98 -37.5 156.5t-109.5 58.5t-110 -58t-38 -157z" />
-<glyph unicode="&#xbb;" horiz-adv-x="933" d="M111 199l233 317l-233 315l92 76l278 -305v-172l-278 -305zM467 199l233 317l-233 315l92 76l278 -305v-172l-278 -305z" />
-<glyph unicode="&#xbc;" horiz-adv-x="1628" d="M115 1143v111q76 12 121 31.5t92 54.5h141v-799h-178v602h-176zM375 -25l731 1389h143l-729 -1389h-145zM944 195v90l311 514h213v-484h119v-120h-119v-195h-158v195h-366zM1116 315h194v113l11 231h-9l-92 -161z" />
-<glyph unicode="&#xbd;" horiz-adv-x="1693" d="M115 1143v111q76 12 121 31.5t92 54.5h141v-799h-178v602h-176zM338 -25l731 1389h143l-729 -1389h-145zM1000 664q53 76 126.5 117.5t159.5 41.5q127 0 204 -67.5t77 -196.5q0 -53 -19.5 -102t-54.5 -99.5t-81 -101.5t-99 -106h289v-150h-572v98q172 147 268.5 247.5 t96.5 184.5q0 68 -36 107t-99 39q-45 0 -84 -30t-74 -77z" />
-<glyph unicode="&#xbe;" horiz-adv-x="1652" d="M61 676l111 86q74 -109 186 -108q57 0 97.5 30.5t40.5 87.5q0 59 -56.5 91t-162.5 32v105q88 0 138 32.5t50 90.5q0 47 -33 75.5t-88 28.5q-41 0 -79 -24.5t-68 -63.5l-103 90q59 66 124 100.5t155 34.5q53 0 101 -15t85 -43t58.5 -69t21.5 -92q0 -68 -34 -114t-93 -76 q66 -23 112 -71t46 -124q0 -55 -23.5 -100t-64.5 -77t-95.5 -49.5t-113.5 -17.5q-102 0 -182 43t-130 117zM434 -25l731 1389h143l-729 -1389h-145zM969 195v90l311 514h213v-484h119v-120h-119v-195h-158v195h-366zM1141 315h194v113l11 231h-9l-92 -161z" />
-<glyph unicode="&#xbf;" horiz-adv-x="909" d="M92 -51q0 66 23.5 118t58.5 99t74 90t70.5 90t50 100.5t12.5 118.5h209q10 -76 -6.5 -136t-46 -111.5t-67.5 -95.5t-71.5 -86t-56.5 -84t-23 -87q0 -72 44.5 -118t123.5 -46q61 0 112.5 30t96.5 77l133 -121q-68 -78 -157.5 -128t-200.5 -50q-84 0 -152.5 21.5t-120 64.5 t-79 106.5t-27.5 147.5zM332 872q0 68 43 113t108 45q66 0 109 -45t43 -113q0 -72 -43 -116.5t-109 -44.5t-108.5 45t-42.5 116z" />
-<glyph unicode="&#xc0;" horiz-adv-x="1136" d="M-8 0l438 1339h279l436 -1339h-252l-105 362h-448l-104 -362h-244zM262 1679h258l172 -237h-190zM393 549h342l-47 164q-31 106 -61.5 218.5t-59.5 223.5h-8q-29 -113 -57.5 -224.5t-61.5 -217.5z" />
-<glyph unicode="&#xc1;" horiz-adv-x="1136" d="M-8 0l438 1339h279l436 -1339h-252l-105 362h-448l-104 -362h-244zM393 549h342l-47 164q-31 106 -61.5 218.5t-59.5 223.5h-8q-29 -113 -57.5 -224.5t-61.5 -217.5zM434 1442l172 237h258l-240 -237h-190z" />
-<glyph unicode="&#xc2;" horiz-adv-x="1136" d="M-8 0l438 1339h279l436 -1339h-252l-105 362h-448l-104 -362h-244zM252 1442l196 237h230l196 -237h-184l-123 131h-8l-123 -131h-184zM393 549h342l-47 164q-31 106 -61.5 218.5t-59.5 223.5h-8q-29 -113 -57.5 -224.5t-61.5 -217.5z" />
-<glyph unicode="&#xc3;" horiz-adv-x="1136" d="M-8 0l438 1339h279l436 -1339h-252l-105 362h-448l-104 -362h-244zM239 1448q12 119 65.5 184.5t131.5 65.5q41 0 75 -15.5t63.5 -34t55 -34t52.5 -15.5q29 0 49 24t31 75h125q-12 -117 -65.5 -183.5t-131.5 -66.5q-41 0 -75 15.5t-63.5 35t-55 34.5t-52.5 15 q-29 0 -49 -24.5t-31 -75.5h-125zM393 549h342l-47 164q-31 106 -61.5 218.5t-59.5 223.5h-8q-29 -113 -57.5 -224.5t-61.5 -217.5z" />
-<glyph unicode="&#xc4;" horiz-adv-x="1136" d="M-8 0l438 1339h279l436 -1339h-252l-105 362h-448l-104 -362h-244zM252 1571q0 53 33.5 88t87.5 35q53 0 87.5 -35t34.5 -88t-34.5 -87t-87.5 -34t-87 34t-34 87zM393 549h342l-47 164q-31 106 -61.5 218.5t-59.5 223.5h-8q-29 -113 -57.5 -224.5t-61.5 -217.5zM631 1571 q0 53 34.5 88t87.5 35t87 -35t34 -88t-34 -87t-87 -34t-87.5 34t-34.5 87z" />
-<glyph unicode="&#xc5;" horiz-adv-x="1136" d="M-8 0l438 1339h279l436 -1339h-252l-105 362h-448l-104 -362h-244zM352 1620q0 86 58.5 138t152.5 52q92 0 151.5 -52t59.5 -138q0 -88 -59.5 -139t-151.5 -51q-94 0 -152.5 51t-58.5 139zM393 549h342l-47 164q-31 106 -61.5 218.5t-59.5 223.5h-8 q-29 -113 -57.5 -224.5t-61.5 -217.5zM473 1620q0 -47 25.5 -71.5t64.5 -24.5q37 0 63.5 24.5t26.5 71.5q0 45 -26.5 70.5t-63.5 25.5q-39 0 -64.5 -25.5t-25.5 -70.5z" />
-<glyph unicode="&#xc6;" horiz-adv-x="1701" d="M-8 0l667 1339h922v-200h-541v-342h453v-201h-453v-395h562v-201h-799v348h-395l-170 -348h-246zM498 535h305v622h-8q-47 -104 -96.5 -206.5t-96.5 -200.5z" />
-<glyph unicode="&#xc7;" horiz-adv-x="1173" d="M96 666q0 164 48.5 294t132 220t196.5 137t242 47q123 0 220 -51t161 -119l-131 -147q-53 51 -111.5 80.5t-136.5 29.5q-82 0 -151.5 -33.5t-120 -96t-78 -153t-27.5 -202.5q0 -229 100.5 -359.5t268.5 -130.5q90 0 157.5 35t124.5 98l131 -145q-82 -94 -185 -144.5 t-232 -50.5q-127 0 -239 45.5t-194 133.5t-129 217t-47 295zM512 -342q78 10 127.5 31.5t49.5 62.5q0 33 -30 55.5t-95 38.5l82 160h143l-47 -100q51 -18 86 -52t35 -98q0 -49 -27 -83.5t-73 -59.5t-105 -39t-125 -18z" />
-<glyph unicode="&#xc8;" horiz-adv-x="1093" d="M168 0v1339h805v-200h-567v-342h481v-201h-481v-395h587v-201h-825zM283 1679h258l172 -237h-190z" />
-<glyph unicode="&#xc9;" horiz-adv-x="1093" d="M168 0v1339h805v-200h-567v-342h481v-201h-481v-395h587v-201h-825zM455 1442l172 237h258l-240 -237h-190z" />
-<glyph unicode="&#xca;" horiz-adv-x="1093" d="M168 0v1339h805v-200h-567v-342h481v-201h-481v-395h587v-201h-825zM273 1442l196 237h230l196 -237h-184l-123 131h-8l-123 -131h-184z" />
-<glyph unicode="&#xcb;" horiz-adv-x="1093" d="M168 0v1339h805v-200h-567v-342h481v-201h-481v-395h587v-201h-825zM273 1571q0 53 33.5 88t87.5 35q53 0 87.5 -35t34.5 -88t-34.5 -87t-87.5 -34t-87 34t-34 87zM652 1571q0 53 34.5 88t87.5 35t87 -35t34 -88t-34 -87t-87 -34t-87.5 34t-34.5 87z" />
-<glyph unicode="&#xcc;" horiz-adv-x="571" d="M-16 1679h258l172 -237h-190zM168 0v1339h238v-1339h-238z" />
-<glyph unicode="&#xcd;" horiz-adv-x="571" d="M156 1442l172 237h258l-240 -237h-190zM168 0v1339h238v-1339h-238z" />
-<glyph unicode="&#xce;" horiz-adv-x="571" d="M-26 1442l196 237h230l196 -237h-184l-123 131h-8l-123 -131h-184zM168 0v1339h238v-1339h-238z" />
-<glyph unicode="&#xcf;" horiz-adv-x="571" d="M-26 1571q0 53 33.5 88t87.5 35q53 0 87.5 -35t34.5 -88t-34.5 -87t-87.5 -34t-87 34t-34 87zM168 0v1339h238v-1339h-238zM353 1571q0 53 34.5 88t87.5 35t87 -35t34 -88t-34 -87t-87 -34t-87.5 34t-34.5 87z" />
-<glyph unicode="&#xd0;" horiz-adv-x="1320" d="M57 637v113l156 8v581h356q307 0 480.5 -165.5t173.5 -497.5q0 -166 -44 -293t-127 -212t-202 -128t-268 -43h-369v637h-156zM451 193h102q205 0 315.5 117.5t110.5 365.5q0 246 -111.5 358.5t-314.5 112.5h-102v-389h282v-121h-282v-444z" />
-<glyph unicode="&#xd1;" horiz-adv-x="1337" d="M168 0v1339h244l415 -753l140 -285h8q-10 104 -20.5 224t-10.5 233v581h225v-1339h-243l-416 754l-139 284h-9q10 -106 20.5 -223t10.5 -229v-586h-225zM348 1448q12 119 65.5 184.5t131.5 65.5q41 0 75 -15.5t63.5 -34t55 -34t52.5 -15.5q29 0 49 24t31 75h125 q-12 -117 -65.5 -183.5t-131.5 -66.5q-41 0 -75 15.5t-63.5 35t-55 34.5t-52.5 15q-29 0 -49 -24.5t-31 -75.5h-125z" />
-<glyph unicode="&#xd2;" horiz-adv-x="1374" d="M96 676q0 162 43 290t122 216t187.5 135t239.5 47t239.5 -47t186.5 -135t121 -216t43 -290q0 -164 -43 -293t-121 -220t-186.5 -139.5t-239.5 -48.5t-239.5 48.5t-187.5 139.5t-122 220t-43 293zM340 676q0 -113 24.5 -204t70.5 -155.5t109.5 -99.5t143.5 -35 q78 0 142.5 35t109.5 99.5t69.5 155.5t24.5 204q0 225 -94 353t-252 128q-160 0 -254 -128t-94 -353zM385 1679h258l172 -237h-190z" />
-<glyph unicode="&#xd3;" horiz-adv-x="1374" d="M96 676q0 162 43 290t122 216t187.5 135t239.5 47t239.5 -47t186.5 -135t121 -216t43 -290q0 -164 -43 -293t-121 -220t-186.5 -139.5t-239.5 -48.5t-239.5 48.5t-187.5 139.5t-122 220t-43 293zM340 676q0 -113 24.5 -204t70.5 -155.5t109.5 -99.5t143.5 -35 q78 0 142.5 35t109.5 99.5t69.5 155.5t24.5 204q0 225 -94 353t-252 128q-160 0 -254 -128t-94 -353zM557 1442l172 237h258l-240 -237h-190z" />
-<glyph unicode="&#xd4;" horiz-adv-x="1374" d="M96 676q0 162 43 290t122 216t187.5 135t239.5 47t239.5 -47t186.5 -135t121 -216t43 -290q0 -164 -43 -293t-121 -220t-186.5 -139.5t-239.5 -48.5t-239.5 48.5t-187.5 139.5t-122 220t-43 293zM340 676q0 -113 24.5 -204t70.5 -155.5t109.5 -99.5t143.5 -35 q78 0 142.5 35t109.5 99.5t69.5 155.5t24.5 204q0 225 -94 353t-252 128q-160 0 -254 -128t-94 -353zM375 1442l196 237h230l196 -237h-184l-123 131h-8l-123 -131h-184z" />
-<glyph unicode="&#xd5;" horiz-adv-x="1374" d="M96 676q0 162 43 290t122 216t187.5 135t239.5 47t239.5 -47t186.5 -135t121 -216t43 -290q0 -164 -43 -293t-121 -220t-186.5 -139.5t-239.5 -48.5t-239.5 48.5t-187.5 139.5t-122 220t-43 293zM340 676q0 -113 24.5 -204t70.5 -155.5t109.5 -99.5t143.5 -35 q78 0 142.5 35t109.5 99.5t69.5 155.5t24.5 204q0 225 -94 353t-252 128q-160 0 -254 -128t-94 -353zM362 1448q12 119 65.5 184.5t131.5 65.5q41 0 75 -15.5t63.5 -34t55 -34t52.5 -15.5q29 0 49 24t31 75h125q-12 -117 -65.5 -183.5t-131.5 -66.5q-41 0 -75 15.5t-63.5 35 t-55 34.5t-52.5 15q-29 0 -49 -24.5t-31 -75.5h-125z" />
-<glyph unicode="&#xd6;" horiz-adv-x="1374" d="M96 676q0 162 43 290t122 216t187.5 135t239.5 47t239.5 -47t186.5 -135t121 -216t43 -290q0 -164 -43 -293t-121 -220t-186.5 -139.5t-239.5 -48.5t-239.5 48.5t-187.5 139.5t-122 220t-43 293zM340 676q0 -113 24.5 -204t70.5 -155.5t109.5 -99.5t143.5 -35 q78 0 142.5 35t109.5 99.5t69.5 155.5t24.5 204q0 225 -94 353t-252 128q-160 0 -254 -128t-94 -353zM375 1571q0 53 33.5 88t87.5 35q53 0 87.5 -35t34.5 -88t-34.5 -87t-87.5 -34t-87 34t-34 87zM754 1571q0 53 34.5 88t87.5 35t87 -35t34 -88t-34 -87t-87 -34t-87.5 34 t-34.5 87z" />
-<glyph unicode="&#xd7;" d="M100 367l303 307l-303 309l121 123l303 -311l305 311l121 -123l-305 -309l305 -307l-121 -123l-305 309l-303 -309z" />
-<glyph unicode="&#xd8;" horiz-adv-x="1374" d="M88 25l141 178q-63 90 -98 207.5t-35 265.5q0 162 43 290t122 216t187.5 135t239.5 47q213 0 361 -119l133 168l125 -98l-150 -191q59 -86 90 -197.5t31 -250.5q0 -164 -43 -293t-121 -220t-186.5 -139.5t-239.5 -48.5q-201 0 -346 111l-127 -160zM340 676 q0 -156 47 -273l520 662q-88 92 -219 92q-160 0 -254 -128t-94 -353zM481 264q86 -82 207 -82q78 0 142.5 35t109.5 99.5t69.5 155.5t24.5 204q0 137 -39 244z" />
-<glyph unicode="&#xd9;" horiz-adv-x="1335" d="M160 588v751h237v-770q0 -109 19.5 -183.5t55.5 -119.5t86 -64.5t112 -19.5q61 0 112.5 19.5t87 64.5t56 120t20.5 183v770h230v-751q0 -166 -36 -282t-101.5 -189.5t-159 -107.5t-209.5 -34q-117 0 -211 34t-161 107.5t-102.5 189.5t-35.5 282zM367 1679h258l172 -237 h-190z" />
-<glyph unicode="&#xda;" horiz-adv-x="1335" d="M160 588v751h237v-770q0 -109 19.5 -183.5t55.5 -119.5t86 -64.5t112 -19.5q61 0 112.5 19.5t87 64.5t56 120t20.5 183v770h230v-751q0 -166 -36 -282t-101.5 -189.5t-159 -107.5t-209.5 -34q-117 0 -211 34t-161 107.5t-102.5 189.5t-35.5 282zM539 1442l172 237h258 l-240 -237h-190z" />
-<glyph unicode="&#xdb;" horiz-adv-x="1335" d="M160 588v751h237v-770q0 -109 19.5 -183.5t55.5 -119.5t86 -64.5t112 -19.5q61 0 112.5 19.5t87 64.5t56 120t20.5 183v770h230v-751q0 -166 -36 -282t-101.5 -189.5t-159 -107.5t-209.5 -34q-117 0 -211 34t-161 107.5t-102.5 189.5t-35.5 282zM357 1442l196 237h230 l196 -237h-184l-123 131h-8l-123 -131h-184z" />
-<glyph unicode="&#xdc;" horiz-adv-x="1335" d="M160 588v751h237v-770q0 -109 19.5 -183.5t55.5 -119.5t86 -64.5t112 -19.5q61 0 112.5 19.5t87 64.5t56 120t20.5 183v770h230v-751q0 -166 -36 -282t-101.5 -189.5t-159 -107.5t-209.5 -34q-117 0 -211 34t-161 107.5t-102.5 189.5t-35.5 282zM357 1571q0 53 33.5 88 t87.5 35q53 0 87.5 -35t34.5 -88t-34.5 -87t-87.5 -34t-87 34t-34 87zM736 1571q0 53 34.5 88t87.5 35t87 -35t34 -88t-34 -87t-87 -34t-87.5 34t-34.5 87z" />
-<glyph unicode="&#xdd;" horiz-adv-x="1019" d="M-12 1339h254l145 -342q29 -76 58.5 -146.5t60.5 -148.5h8q33 78 64.5 149t60.5 146l145 342h248l-403 -841v-498h-238v498zM381 1442l172 237h258l-240 -237h-190z" />
-<glyph unicode="&#xde;" horiz-adv-x="1232" d="M172 0v1339h238v-213h213q111 0 204 -21.5t160.5 -69.5t106.5 -127t39 -195q0 -113 -39 -195t-107.5 -135t-162 -78.5t-201.5 -25.5h-213v-279h-238zM410 469h192q152 0 223.5 60.5t71.5 183.5q0 125 -73.5 174t-221.5 49h-192v-467z" />
-<glyph unicode="&#xdf;" horiz-adv-x="1236" d="M150 0v1026q0 98 28.5 179t83.5 139.5t138 90t194 31.5q92 0 162.5 -26.5t119 -70.5t72 -101.5t23.5 -120.5q0 -76 -26.5 -128t-59.5 -94t-59.5 -81t-26.5 -84q0 -41 28.5 -69.5t70.5 -53.5t92 -50.5t92 -63.5t71 -93t29 -135q0 -68 -23.5 -126t-69 -101t-112 -68 t-150.5 -25q-86 0 -157.5 26t-141.5 71l86 161q104 -80 207 -79q68 0 105 38.5t37 92.5q0 49 -29 81.5t-71 59.5t-91 51.5t-91 58t-70.5 80t-28.5 115.5q0 63 25.5 109.5t55 88.5t55 86t25.5 105q0 70 -37.5 115t-111.5 45q-102 0 -156.5 -73.5t-54.5 -215.5v-991h-233z" />
-<glyph unicode="&#xe0;" horiz-adv-x="1071" d="M106 270q0 162 141.5 250t450.5 123q0 39 -10 75t-31.5 63.5t-55.5 43t-85 15.5q-76 0 -146.5 -29t-136.5 -70l-86 158q84 53 187.5 92t224.5 39q190 0 282.5 -111.5t92.5 -322.5v-596h-193l-18 111h-6q-68 -57 -144.5 -96.5t-166.5 -39.5q-133 0 -216.5 81t-83.5 214z M297 1473h233l185 -299h-177zM336 289q0 -68 40 -98.5t103 -30.5q61 0 112.5 28.5t106.5 81.5v226q-102 -12 -171.5 -33t-111.5 -46.5t-60.5 -58t-18.5 -69.5z" />
-<glyph unicode="&#xe1;" horiz-adv-x="1071" d="M106 270q0 162 141.5 250t450.5 123q0 39 -10 75t-31.5 63.5t-55.5 43t-85 15.5q-76 0 -146.5 -29t-136.5 -70l-86 158q84 53 187.5 92t224.5 39q190 0 282.5 -111.5t92.5 -322.5v-596h-193l-18 111h-6q-68 -57 -144.5 -96.5t-166.5 -39.5q-133 0 -216.5 81t-83.5 214z M336 289q0 -68 40 -98.5t103 -30.5q61 0 112.5 28.5t106.5 81.5v226q-102 -12 -171.5 -33t-111.5 -46.5t-60.5 -58t-18.5 -69.5zM411 1174l185 299h233l-241 -299h-177z" />
-<glyph unicode="&#xe2;" horiz-adv-x="1071" d="M106 270q0 162 141.5 250t450.5 123q0 39 -10 75t-31.5 63.5t-55.5 43t-85 15.5q-76 0 -146.5 -29t-136.5 -70l-86 158q84 53 187.5 92t224.5 39q190 0 282.5 -111.5t92.5 -322.5v-596h-193l-18 111h-6q-68 -57 -144.5 -96.5t-166.5 -39.5q-133 0 -216.5 81t-83.5 214z M272 1174l197 299h188l197 -299h-164l-123 174h-8l-123 -174h-164zM336 289q0 -68 40 -98.5t103 -30.5q61 0 112.5 28.5t106.5 81.5v226q-102 -12 -171.5 -33t-111.5 -46.5t-60.5 -58t-18.5 -69.5z" />
-<glyph unicode="&#xe3;" horiz-adv-x="1071" d="M106 270q0 162 141.5 250t450.5 123q0 39 -10 75t-31.5 63.5t-55.5 43t-85 15.5q-76 0 -146.5 -29t-136.5 -70l-86 158q84 53 187.5 92t224.5 39q190 0 282.5 -111.5t92.5 -322.5v-596h-193l-18 111h-6q-68 -57 -144.5 -96.5t-166.5 -39.5q-133 0 -216.5 81t-83.5 214z M250 1182q12 117 62 182.5t128 65.5q39 0 73 -15.5t62.5 -34t53 -34t49.5 -15.5q53 0 73 99h125q-12 -117 -62 -182.5t-128 -65.5q-41 0 -74 15t-60.5 33.5t-53 34t-50.5 15.5q-53 0 -73 -98h-125zM336 289q0 -68 40 -98.5t103 -30.5q61 0 112.5 28.5t106.5 81.5v226 q-102 -12 -171.5 -33t-111.5 -46.5t-60.5 -58t-18.5 -69.5z" />
-<glyph unicode="&#xe4;" horiz-adv-x="1071" d="M106 270q0 162 141.5 250t450.5 123q0 39 -10 75t-31.5 63.5t-55.5 43t-85 15.5q-76 0 -146.5 -29t-136.5 -70l-86 158q84 53 187.5 92t224.5 39q190 0 282.5 -111.5t92.5 -322.5v-596h-193l-18 111h-6q-68 -57 -144.5 -96.5t-166.5 -39.5q-133 0 -216.5 81t-83.5 214z M252 1309q0 51 33.5 86t87.5 35q53 0 87.5 -35t34.5 -86q0 -53 -34.5 -88t-87.5 -35t-87 34.5t-34 88.5zM336 289q0 -68 40 -98.5t103 -30.5q61 0 112.5 28.5t106.5 81.5v226q-102 -12 -171.5 -33t-111.5 -46.5t-60.5 -58t-18.5 -69.5zM631 1309q0 51 34.5 86t87.5 35 t87 -35t34 -86q0 -53 -34 -88t-87 -35t-87.5 34.5t-34.5 88.5z" />
-<glyph unicode="&#xe5;" horiz-adv-x="1071" d="M106 270q0 162 141.5 250t450.5 123q0 39 -10 75t-31.5 63.5t-55.5 43t-85 15.5q-76 0 -146.5 -29t-136.5 -70l-86 158q84 53 187.5 92t224.5 39q190 0 282.5 -111.5t92.5 -322.5v-596h-193l-18 111h-6q-68 -57 -144.5 -96.5t-166.5 -39.5q-133 0 -216.5 81t-83.5 214z M336 289q0 -68 40 -98.5t103 -30.5q61 0 112.5 28.5t106.5 81.5v226q-102 -12 -171.5 -33t-111.5 -46.5t-60.5 -58t-18.5 -69.5zM352 1315q0 92 58.5 146.5t152.5 54.5t152.5 -54.5t58.5 -146.5q0 -90 -58.5 -144.5t-152.5 -54.5t-152.5 54.5t-58.5 144.5zM473 1315 q0 -47 25.5 -76t64.5 -29t64.5 29t25.5 76t-25.5 76.5t-64.5 29.5t-64.5 -29.5t-25.5 -76.5z" />
-<glyph unicode="&#xe6;" horiz-adv-x="1607" d="M106 270q0 162 140.5 251t445.5 122q-2 39 -11 75t-29.5 63.5t-54.5 43t-85 15.5q-72 0 -142.5 -29t-136.5 -70l-86 158q84 53 184.5 92t211.5 39q104 0 174.5 -48t109.5 -134q61 86 138 134t176 48q96 0 168.5 -36t122 -99.5t75 -152.5t25.5 -193q0 -70 -10 -111h-615 q12 -131 89 -202.5t188 -71.5q66 0 119 21.5t108 56.5l84 -158q-72 -47 -159 -78t-183 -31q-119 0 -205 50.5t-145 121.5q-104 -90 -201.5 -131t-195.5 -41q-133 0 -216.5 81t-83.5 214zM336 289q0 -68 40 -98.5t103 -30.5q59 0 125 31.5t121 87.5q-16 35 -23.5 79.5 t-9.5 90.5l-4 47q-193 -27 -272.5 -78t-79.5 -129zM907 588h422q0 123 -49 191.5t-147 68.5q-86 0 -148.5 -67.5t-77.5 -192.5z" />
-<glyph unicode="&#xe7;" horiz-adv-x="946" d="M84 502q0 125 41 223t110.5 165.5t160.5 103.5t192 36q98 0 170.5 -33.5t124.5 -83.5l-113 -149q-41 35 -82 54.5t-88 19.5q-123 0 -198.5 -91.5t-75.5 -244.5q0 -152 74.5 -243t193.5 -91q61 0 113.5 25.5t93.5 60.5l98 -150q-72 -63 -158 -96t-172 -33q-102 0 -191 35 t-154.5 102.5t-102.5 166t-37 223.5zM376 -342q78 10 127.5 31.5t49.5 62.5q0 33 -30 55.5t-95 38.5l82 160h143l-47 -100q51 -18 86 -52t35 -98q0 -49 -27 -83.5t-73 -59.5t-105 -39t-125 -18z" />
-<glyph unicode="&#xe8;" horiz-adv-x="1038" d="M84 502q0 123 39 221t103.5 165.5t148.5 104.5t172 37q102 0 180 -34.5t130 -98t79 -152t27 -192.5q0 -70 -11 -111h-639q16 -137 95 -210.5t202 -73.5q66 0 122 19.5t112 53.5l80 -147q-72 -47 -160 -78t-184 -31q-104 0 -194.5 36t-158 103.5t-105.5 165t-38 222.5z M281 1473h233l185 -299h-177zM311 592h447q0 121 -50.5 188.5t-154.5 67.5q-90 0 -157.5 -64.5t-84.5 -191.5z" />
-<glyph unicode="&#xe9;" horiz-adv-x="1038" d="M84 502q0 123 39 221t103.5 165.5t148.5 104.5t172 37q102 0 180 -34.5t130 -98t79 -152t27 -192.5q0 -70 -11 -111h-639q16 -137 95 -210.5t202 -73.5q66 0 122 19.5t112 53.5l80 -147q-72 -47 -160 -78t-184 -31q-104 0 -194.5 36t-158 103.5t-105.5 165t-38 222.5z M311 592h447q0 121 -50.5 188.5t-154.5 67.5q-90 0 -157.5 -64.5t-84.5 -191.5zM395 1174l185 299h233l-241 -299h-177z" />
-<glyph unicode="&#xea;" horiz-adv-x="1038" d="M84 502q0 123 39 221t103.5 165.5t148.5 104.5t172 37q102 0 180 -34.5t130 -98t79 -152t27 -192.5q0 -70 -11 -111h-639q16 -137 95 -210.5t202 -73.5q66 0 122 19.5t112 53.5l80 -147q-72 -47 -160 -78t-184 -31q-104 0 -194.5 36t-158 103.5t-105.5 165t-38 222.5z M256 1174l197 299h188l197 -299h-164l-123 174h-8l-123 -174h-164zM311 592h447q0 121 -50.5 188.5t-154.5 67.5q-90 0 -157.5 -64.5t-84.5 -191.5z" />
-<glyph unicode="&#xeb;" horiz-adv-x="1038" d="M84 502q0 123 39 221t103.5 165.5t148.5 104.5t172 37q102 0 180 -34.5t130 -98t79 -152t27 -192.5q0 -70 -11 -111h-639q16 -137 95 -210.5t202 -73.5q66 0 122 19.5t112 53.5l80 -147q-72 -47 -160 -78t-184 -31q-104 0 -194.5 36t-158 103.5t-105.5 165t-38 222.5z M236 1309q0 51 33.5 86t87.5 35q53 0 87.5 -35t34.5 -86q0 -53 -34.5 -88t-87.5 -35t-87 34.5t-34 88.5zM311 592h447q0 121 -50.5 188.5t-154.5 67.5q-90 0 -157.5 -64.5t-84.5 -191.5zM615 1309q0 51 34.5 86t87.5 35t87 -35t34 -86q0 -53 -34 -88t-87 -35t-87.5 34.5 t-34.5 88.5z" />
-<glyph unicode="&#xec;" horiz-adv-x="536" d="M2 1473h233l185 -299h-177zM150 0v1006h235v-1006h-235z" />
-<glyph unicode="&#xed;" horiz-adv-x="536" d="M116 1174l185 299h233l-241 -299h-177zM150 0v1006h235v-1006h-235z" />
-<glyph unicode="&#xee;" horiz-adv-x="536" d="M-23 1174l197 299h188l197 -299h-164l-123 174h-8l-123 -174h-164zM150 0v1006h235v-1006h-235z" />
-<glyph unicode="&#xef;" horiz-adv-x="536" d="M-43 1309q0 51 33.5 86t87.5 35q53 0 87.5 -35t34.5 -86q0 -53 -34.5 -88t-87.5 -35t-87 34.5t-34 88.5zM150 0v1006h235v-1006h-235zM336 1309q0 51 34.5 86t87.5 35t87 -35t34 -86q0 -53 -34 -88t-87 -35t-87.5 34.5t-34.5 88.5z" />
-<glyph unicode="&#xf0;" horiz-adv-x="1130" d="M98 461q0 106 34 192t91.5 146.5t133 92.5t159.5 32q70 0 134.5 -26t111.5 -85q-29 104 -78 184t-119 148l-291 -148l-63 109l250 127q-47 35 -98.5 65.5t-108.5 61.5l104 145q74 -39 145.5 -83t137.5 -97l293 150l63 -111l-254 -129q121 -123 199 -293t78 -405 q0 -123 -33 -226.5t-93 -178.5t-146 -116t-193 -41q-92 0 -174 34t-145.5 96.5t-100.5 152.5t-37 203zM315 461q0 -68 19.5 -122t53.5 -92t79 -58.5t94 -20.5q113 0 174.5 93t61.5 263q0 27 -1 52.5t-3 50.5q-55 70 -113.5 94t-120.5 24q-113 0 -178.5 -75.5t-65.5 -208.5z " />
-<glyph unicode="&#xf1;" horiz-adv-x="1146" d="M150 0v1006h194l16 -136h9q68 66 146.5 113t182.5 47q162 0 236 -103.5t74 -295.5v-631h-236v600q0 125 -37 176t-121 51q-66 0 -115.5 -31.5t-113.5 -93.5v-702h-235zM301 1182q12 117 62 182.5t128 65.5q39 0 73 -15.5t62.5 -34t53 -34t49.5 -15.5q53 0 73 99h125 q-12 -117 -62 -182.5t-128 -65.5q-41 0 -74 15t-60.5 33.5t-53 34t-50.5 15.5q-53 0 -73 -98h-125z" />
-<glyph unicode="&#xf2;" horiz-adv-x="1124" d="M84 502q0 125 39 223t105.5 165.5t152.5 103.5t180 36t181 -36t153 -103.5t105.5 -165.5t39.5 -223t-39.5 -223.5t-105.5 -166t-153 -102.5t-181 -35t-180 35t-152.5 102.5t-105.5 166t-39 223.5zM295 1473h233l185 -299h-177zM326 502q0 -152 62.5 -243t172.5 -91 q111 0 174.5 91t63.5 243q0 154 -63.5 245t-174.5 91t-173 -91t-62 -245z" />
-<glyph unicode="&#xf3;" horiz-adv-x="1124" d="M84 502q0 125 39 223t105.5 165.5t152.5 103.5t180 36t181 -36t153 -103.5t105.5 -165.5t39.5 -223t-39.5 -223.5t-105.5 -166t-153 -102.5t-181 -35t-180 35t-152.5 102.5t-105.5 166t-39 223.5zM326 502q0 -152 62.5 -243t172.5 -91q111 0 174.5 91t63.5 243 q0 154 -63.5 245t-174.5 91t-173 -91t-62 -245zM409 1174l185 299h233l-241 -299h-177z" />
-<glyph unicode="&#xf4;" horiz-adv-x="1124" d="M84 502q0 125 39 223t105.5 165.5t152.5 103.5t180 36t181 -36t153 -103.5t105.5 -165.5t39.5 -223t-39.5 -223.5t-105.5 -166t-153 -102.5t-181 -35t-180 35t-152.5 102.5t-105.5 166t-39 223.5zM270 1174l197 299h188l197 -299h-164l-123 174h-8l-123 -174h-164z M326 502q0 -152 62.5 -243t172.5 -91q111 0 174.5 91t63.5 243q0 154 -63.5 245t-174.5 91t-173 -91t-62 -245z" />
-<glyph unicode="&#xf5;" horiz-adv-x="1124" d="M84 502q0 125 39 223t105.5 165.5t152.5 103.5t180 36t181 -36t153 -103.5t105.5 -165.5t39.5 -223t-39.5 -223.5t-105.5 -166t-153 -102.5t-181 -35t-180 35t-152.5 102.5t-105.5 166t-39 223.5zM248 1182q12 117 62 182.5t128 65.5q39 0 73 -15.5t62.5 -34t53 -34 t49.5 -15.5q53 0 73 99h125q-12 -117 -62 -182.5t-128 -65.5q-41 0 -74 15t-60.5 33.5t-53 34t-50.5 15.5q-53 0 -73 -98h-125zM326 502q0 -152 62.5 -243t172.5 -91q111 0 174.5 91t63.5 243q0 154 -63.5 245t-174.5 91t-173 -91t-62 -245z" />
-<glyph unicode="&#xf6;" horiz-adv-x="1124" d="M84 502q0 125 39 223t105.5 165.5t152.5 103.5t180 36t181 -36t153 -103.5t105.5 -165.5t39.5 -223t-39.5 -223.5t-105.5 -166t-153 -102.5t-181 -35t-180 35t-152.5 102.5t-105.5 166t-39 223.5zM250 1309q0 51 33.5 86t87.5 35q53 0 87.5 -35t34.5 -86q0 -53 -34.5 -88 t-87.5 -35t-87 34.5t-34 88.5zM326 502q0 -152 62.5 -243t172.5 -91q111 0 174.5 91t63.5 243q0 154 -63.5 245t-174.5 91t-173 -91t-62 -245zM629 1309q0 51 34.5 86t87.5 35t87 -35t34 -86q0 -53 -34 -88t-87 -35t-87.5 34.5t-34.5 88.5z" />
-<glyph unicode="&#xf7;" d="M70 590v172h911v-172h-911zM385 307q0 59 40 96t99 37t99.5 -36.5t40.5 -96.5q0 -59 -40 -97t-100 -38q-59 0 -99 38t-40 97zM385 1044q0 59 40 96.5t99 37.5t99.5 -37t40.5 -97q0 -59 -40.5 -97t-99.5 -38t-99 38t-40 97z" />
-<glyph unicode="&#xf8;" horiz-adv-x="1124" d="M84 502q0 125 39 223t105.5 165.5t152.5 103.5t180 36q158 0 279 -90l96 117l94 -74l-102 -127q53 -66 82.5 -155t29.5 -199q0 -125 -39.5 -223.5t-105.5 -166t-153 -102.5t-181 -35q-76 0 -147.5 22.5t-130.5 68.5l-95 -115l-94 74l103 125q-53 66 -83 153.5t-30 198.5z M313 514q0 -106 29 -186l373 458q-63 59 -154 60q-111 0 -179.5 -92t-68.5 -240zM408 221q61 -61 153 -61q111 0 180.5 91t69.5 238q0 109 -29 189z" />
-<glyph unicode="&#xf9;" horiz-adv-x="1138" d="M139 375v631h236v-600q0 -125 37 -176.5t118 -51.5q66 0 116 33t108 106v689h235v-1006h-192l-19 147h-6q-66 -78 -142.5 -125t-180.5 -47q-162 0 -236 103.5t-74 296.5zM305 1473h233l185 -299h-177z" />
-<glyph unicode="&#xfa;" horiz-adv-x="1138" d="M139 375v631h236v-600q0 -125 37 -176.5t118 -51.5q66 0 116 33t108 106v689h235v-1006h-192l-19 147h-6q-66 -78 -142.5 -125t-180.5 -47q-162 0 -236 103.5t-74 296.5zM419 1174l185 299h233l-241 -299h-177z" />
-<glyph unicode="&#xfb;" horiz-adv-x="1138" d="M139 375v631h236v-600q0 -125 37 -176.5t118 -51.5q66 0 116 33t108 106v689h235v-1006h-192l-19 147h-6q-66 -78 -142.5 -125t-180.5 -47q-162 0 -236 103.5t-74 296.5zM280 1174l197 299h188l197 -299h-164l-123 174h-8l-123 -174h-164z" />
-<glyph unicode="&#xfc;" horiz-adv-x="1138" d="M139 375v631h236v-600q0 -125 37 -176.5t118 -51.5q66 0 116 33t108 106v689h235v-1006h-192l-19 147h-6q-66 -78 -142.5 -125t-180.5 -47q-162 0 -236 103.5t-74 296.5zM260 1309q0 51 33.5 86t87.5 35q53 0 87.5 -35t34.5 -86q0 -53 -34.5 -88t-87.5 -35t-87 34.5 t-34 88.5zM639 1309q0 51 34.5 86t87.5 35t87 -35t34 -86q0 -53 -34 -88t-87 -35t-87.5 34.5t-34.5 88.5z" />
-<glyph unicode="&#xfd;" horiz-adv-x="1013" d="M25 1006h239l174 -494q23 -66 44.5 -138.5t43.5 -144.5h9q18 70 37.5 142.5t37.5 140.5l152 494h227l-364 -1051q-31 -86 -68 -153.5t-85 -115.5t-110.5 -74t-144.5 -26q-41 0 -71.5 5.5t-59.5 15.5l43 184q14 -4 33.5 -9t38.5 -5q80 0 128 48t72 124l19 63zM370 1174 l185 299h233l-241 -299h-177z" />
-<glyph unicode="&#xfe;" horiz-adv-x="1155" d="M150 -397v1843h235v-373l-4 -158q59 49 130 82t148 33q96 0 172 -36t128.5 -103.5t80 -161.5t27.5 -211q0 -129 -36 -230.5t-95 -170t-137 -105.5t-162 -37q-72 0 -134.5 27t-121.5 76l4 -160v-315h-235zM385 254q55 -47 106.5 -65.5t96.5 -18.5q100 0 167.5 87t67.5 259 q0 152 -51 236t-166 84q-106 0 -221 -113v-469z" />
-<glyph unicode="&#xff;" horiz-adv-x="1013" d="M25 1006h239l174 -494q23 -66 44.5 -138.5t43.5 -144.5h9q18 70 37.5 142.5t37.5 140.5l152 494h227l-364 -1051q-31 -86 -68 -153.5t-85 -115.5t-110.5 -74t-144.5 -26q-41 0 -71.5 5.5t-59.5 15.5l43 184q14 -4 33.5 -9t38.5 -5q80 0 128 48t72 124l19 63zM211 1309 q0 51 33.5 86t87.5 35q53 0 87.5 -35t34.5 -86q0 -53 -34.5 -88t-87.5 -35t-87 34.5t-34 88.5zM590 1309q0 51 34.5 86t87.5 35t87 -35t34 -86q0 -53 -34 -88t-87 -35t-87.5 34.5t-34.5 88.5z" />
-<glyph unicode="&#x152;" horiz-adv-x="1753" d="M96 676q0 166 48.5 290t136.5 206.5t211.5 124.5t275.5 42h864v-200h-538v-342h450v-201h-450v-395h559v-201h-897q-147 0 -269 43t-208 128t-134.5 212t-48.5 293zM340 676q0 -250 116.5 -366.5t327.5 -116.5h72v954h-72q-209 0 -326.5 -111.5t-117.5 -359.5z" />
-<glyph unicode="&#x153;" horiz-adv-x="1699" d="M84 502q0 125 38 223t101.5 165.5t147.5 103.5t178 36q111 0 200 -55t144 -158q59 100 147 156.5t189 56.5q96 0 171 -36t125 -99.5t75.5 -152.5t25.5 -193q0 -35 -3 -63.5t-7 -47.5h-621q12 -131 90 -202.5t189 -71.5q66 0 120 21.5t109 56.5l84 -158q-72 -47 -160 -78 t-186 -31q-104 0 -194.5 56.5t-149.5 156.5q-61 -104 -148 -158.5t-204 -54.5q-94 0 -178 35t-146.5 102.5t-99.5 166t-37 223.5zM324 502q0 -152 61 -243t164 -91q104 0 165.5 91t61.5 243q0 154 -61.5 245t-165.5 91q-102 0 -163.5 -91t-61.5 -245zM995 588h426 q0 123 -50 191.5t-148 68.5q-88 0 -150.5 -67.5t-77.5 -192.5z" />
-<glyph unicode="&#x178;" horiz-adv-x="1019" d="M-12 1339h254l145 -342q29 -76 58.5 -146.5t60.5 -148.5h8q33 78 64.5 149t60.5 146l145 342h248l-403 -841v-498h-238v498zM199 1571q0 53 33.5 88t87.5 35q53 0 87.5 -35t34.5 -88t-34.5 -87t-87.5 -34t-87 34t-34 87zM578 1571q0 53 34.5 88t87.5 35t87 -35t34 -88 t-34 -87t-87 -34t-87.5 34t-34.5 87z" />
-<glyph unicode="&#x2c6;" horiz-adv-x="1124" d="M270 1174l197 299h188l197 -299h-164l-123 174h-8l-123 -174h-164z" />
-<glyph unicode="&#x2dc;" horiz-adv-x="1124" d="M248 1182q12 117 62 182.5t128 65.5q39 0 73 -15.5t62.5 -34t53 -34t49.5 -15.5q53 0 73 99h125q-12 -117 -62 -182.5t-128 -65.5q-41 0 -74 15t-60.5 33.5t-53 34t-50.5 15.5q-53 0 -73 -98h-125z" />
-<glyph unicode="&#x2000;" horiz-adv-x="905" />
-<glyph unicode="&#x2001;" horiz-adv-x="1810" />
-<glyph unicode="&#x2002;" horiz-adv-x="905" />
-<glyph unicode="&#x2003;" horiz-adv-x="1810" />
-<glyph unicode="&#x2004;" horiz-adv-x="603" />
-<glyph unicode="&#x2005;" horiz-adv-x="452" />
-<glyph unicode="&#x2006;" horiz-adv-x="301" />
-<glyph unicode="&#x2007;" horiz-adv-x="301" />
-<glyph unicode="&#x2008;" horiz-adv-x="226" />
-<glyph unicode="&#x2009;" horiz-adv-x="362" />
-<glyph unicode="&#x200a;" horiz-adv-x="100" />
-<glyph unicode="&#x2010;" horiz-adv-x="659" d="M86 430v172h487v-172h-487z" />
-<glyph unicode="&#x2011;" horiz-adv-x="659" d="M86 430v172h487v-172h-487z" />
-<glyph unicode="&#x2012;" horiz-adv-x="659" d="M86 430v172h487v-172h-487z" />
-<glyph unicode="&#x2013;" horiz-adv-x="983" d="M86 438v156h811v-156h-811z" />
-<glyph unicode="&#x2014;" horiz-adv-x="1638" d="M86 438v156h1466v-156h-1466z" />
-<glyph unicode="&#x2018;" horiz-adv-x="563" d="M115 1010q0 268 254 401l57 -104q-86 -49 -128 -107.5t-42 -150.5q6 2 18 2q55 0 95.5 -34t40.5 -93q0 -66 -38 -104t-98 -38q-78 0 -118.5 59.5t-40.5 168.5z" />
-<glyph unicode="&#x2019;" horiz-adv-x="563" d="M137 905q86 49 128 107.5t42 150.5q-6 -2 -18 -2q-53 0 -93 34t-40 93q0 66 36.5 104t96.5 38q78 0 120 -59.5t42 -168.5q0 -268 -256 -401z" />
-<glyph unicode="&#x201a;" horiz-adv-x="563" d="M137 -215q86 49 128 107.5t42 150.5q-6 -2 -18 -2q-53 0 -93 34t-40 93q0 66 36.5 104t96.5 38q78 0 120 -59.5t42 -168.5q0 -268 -256 -401z" />
-<glyph unicode="&#x201c;" horiz-adv-x="987" d="M115 1010q0 268 254 401l57 -104q-86 -49 -128 -107.5t-42 -150.5q6 2 18 2q55 0 95.5 -34t40.5 -93q0 -66 -38 -104t-98 -38q-78 0 -118.5 59.5t-40.5 168.5zM539 1010q0 268 254 401l57 -104q-86 -49 -128 -107.5t-42 -150.5q6 2 18 2q55 0 95.5 -34t40.5 -93 q0 -66 -38 -104t-98 -38q-78 0 -118.5 59.5t-40.5 168.5z" />
-<glyph unicode="&#x201d;" horiz-adv-x="987" d="M137 905q86 49 128 107.5t42 150.5q-6 -2 -18 -2q-53 0 -93 34t-40 93q0 66 36.5 104t96.5 38q78 0 120 -59.5t42 -168.5q0 -268 -256 -401zM561 905q86 49 128 107.5t42 150.5q-6 -2 -18 -2q-53 0 -93 34t-40 93q0 66 36.5 104t96.5 38q78 0 120 -59.5t42 -168.5 q0 -268 -256 -401z" />
-<glyph unicode="&#x201e;" horiz-adv-x="987" d="M137 -215q86 49 128 107.5t42 150.5q-6 -2 -18 -2q-53 0 -93 34t-40 93q0 66 36.5 104t96.5 38q78 0 120 -59.5t42 -168.5q0 -268 -256 -401zM561 -215q86 49 128 107.5t42 150.5q-6 -2 -18 -2q-53 0 -93 34t-40 93q0 66 36.5 104t96.5 38q78 0 120 -59.5t42 -168.5 q0 -268 -256 -401z" />
-<glyph unicode="&#x2022;" horiz-adv-x="665" d="M82 539q0 57 19.5 106t53 84t80 55.5t97.5 20.5t97 -20.5t81 -55.5t54.5 -84t19.5 -106q0 -59 -19.5 -107.5t-54.5 -84.5t-81 -55.5t-97 -19.5t-97.5 19.5t-80 55.5t-53 84t-19.5 108z" />
-<glyph unicode="&#x2026;" horiz-adv-x="1972" d="M174 135q0 70 44 115t110 45t108.5 -45t42.5 -115t-43 -115t-108 -45q-66 0 -110 45t-44 115zM856 135q0 70 44 115t110 45t108.5 -45t42.5 -115t-43 -115t-108 -45q-66 0 -110 45t-44 115zM1538 135q0 70 44 115t110 45t108.5 -45t42.5 -115t-43 -115t-108 -45 q-66 0 -110 45t-44 115z" />
-<glyph unicode="&#x202f;" horiz-adv-x="362" />
-<glyph unicode="&#x2039;" horiz-adv-x="577" d="M96 430v172l277 305l94 -76l-236 -315l236 -317l-94 -74z" />
-<glyph unicode="&#x203a;" horiz-adv-x="577" d="M111 199l233 317l-233 315l92 76l278 -305v-172l-278 -305z" />
-<glyph unicode="&#x205f;" horiz-adv-x="452" />
-<glyph unicode="&#x20ac;" d="M45 461v114l117 9q-2 16 -2 31.5v31.5v30.5t2 29.5h-117v114l129 8q20 119 66.5 211.5t114 156t153.5 97t188 33.5q92 0 176 -43t144 -117l-133 -129q-41 47 -87 76t-106 29q-111 0 -182.5 -82t-95.5 -230h479v-124h-492q-2 -12 -2 -24.5v-27.5v-35.5t2 -33.5h410v-125 h-395q29 -143 98.5 -222t173.5 -79q66 0 117 32.5t98 96.5l133 -123q-72 -92 -161 -141.5t-201 -49.5q-188 0 -322.5 125t-175.5 361h-129z" />
-<glyph unicode="&#x2122;" horiz-adv-x="1351" d="M6 1239v145h543v-145h-193v-494h-159v494h-191zM641 745v639h190l87 -206l49 -150h8l49 150l84 206h190v-639h-155v238l18 225h-8l-127 -366h-113l-127 366h-8l19 -225v-238h-156z" />
-<glyph unicode="&#xe000;" horiz-adv-x="1003" d="M0 0v1004h1004v-1004h-1004z" />
-<glyph unicode="&#xfb01;" horiz-adv-x="1222" d="M55 819v176l135 11v104q0 78 18.5 144.5t59.5 114.5t103.5 74.5t152.5 26.5q53 0 101.5 -10t83.5 -24l-45 -176q-55 25 -111 24q-127 0 -127 -170v-108h197v-187h-197v-819h-236v819h-135zM809 1315q0 59 41 97t104 38t104.5 -38t41.5 -97t-41.5 -96t-104.5 -37 t-104 36.5t-41 96.5zM836 0v1006h235v-1006h-235z" />
-<glyph unicode="&#xfb02;" horiz-adv-x="1204" d="M55 819v176l135 11v104q0 78 18.5 144.5t59.5 114.5t103.5 74.5t152.5 26.5q53 0 101.5 -10t83.5 -24l-45 -176q-55 25 -111 24q-127 0 -127 -170v-108h197v-187h-197v-819h-236v819h-135zM799 258v1188h235v-1200q0 -43 16.5 -60.5t34.5 -17.5h15.5t21.5 4l31 -176 q-47 -20 -125 -21q-127 0 -178 76t-51 207z" />
-</font>
-</defs></svg> 
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.ttf b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.ttf
deleted file mode 100644
index 680103c671287a1a1feecc46cec6cc5295e7131c..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.ttf and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.woff b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.woff
deleted file mode 100644
index 56e335d010688e27340f16f8f78c343e848f6a0b..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-600-normal-webfont.woff and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.eot b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.eot
deleted file mode 100644
index d0743324939c117b1e014f7e4be16affd4032b83..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.eot and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.svg b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.svg
deleted file mode 100644
index fcd05c3683a41e972344c1fbf1daf0a47c7b1460..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.svg
+++ /dev/null
@@ -1,245 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="source_sans_probold" horiz-adv-x="1081" >
-<font-face units-per-em="2048" ascent="1536" descent="-512" />
-<missing-glyph horiz-adv-x="425" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="682" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode="&#xd;" horiz-adv-x="425" />
-<glyph unicode=" "  horiz-adv-x="425" />
-<glyph unicode="&#x09;" horiz-adv-x="425" />
-<glyph unicode="&#xa0;" horiz-adv-x="425" />
-<glyph unicode="!" horiz-adv-x="696" d="M166 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5zM197 1372h303l-11 -272l-43 -627h-196l-43 627z" />
-<glyph unicode="&#x22;" horiz-adv-x="1097" d="M156 1405h303l-10 -272l-60 -408h-164l-59 408zM639 1405h303l-10 -272l-60 -408h-164l-59 408z" />
-<glyph unicode="#" d="M70 383v192h174l28 226h-161v192h186l43 338h172l-41 -338h213l43 338h172l-41 -338h162v-192h-186l-27 -226h172v-192h-195l-47 -383h-174l45 383h-211l-47 -383h-174l45 383h-151zM420 575h211l28 226h-213z" />
-<glyph unicode="$" d="M80 135l131 203q78 -59 148.5 -89t144.5 -30q86 0 126 35t40 106q0 53 -40 90t-100.5 71t-130 68t-130 81t-100.5 110.5t-40 155.5q0 152 83 251t228 128v211h199v-207q98 -14 172 -59.5t133 -108.5l-151 -172q-55 51 -106.5 76.5t-117.5 25.5q-74 0 -112.5 -30.5 t-38.5 -100.5q0 -49 40 -82.5t100 -64.5t130 -63.5t130.5 -80t100 -114t39.5 -164.5q0 -147 -79.5 -252.5t-239.5 -140.5v-213h-199v205q-90 10 -189 50t-171 105z" />
-<glyph unicode="%" horiz-adv-x="1755" d="M53 938q0 100 24.5 178t68.5 132.5t105.5 83t133.5 28.5t133.5 -28.5t105.5 -83t69.5 -132t25.5 -178.5q0 -100 -25.5 -179t-69.5 -134t-105.5 -84t-133.5 -29t-133.5 29t-105.5 84t-68.5 134t-24.5 179zM262 938q0 -143 36 -200.5t87 -57.5t87 57.5t36 200.5t-36 198.5 t-87 55.5t-87 -55t-36 -199zM430 -25l721 1385h174l-721 -1385h-174zM1038 401q0 100 24.5 178t68.5 132.5t105.5 83t133.5 28.5t133.5 -28.5t105.5 -83t69.5 -132t25.5 -178.5q0 -100 -25.5 -179t-69.5 -134t-105.5 -84t-133.5 -29t-133.5 29t-105.5 84t-68.5 134 t-24.5 179zM1247 401q0 -143 36 -200.5t87 -57.5t87 57.5t36 200.5t-36 198.5t-87 55.5t-87 -55t-36 -199z" />
-<glyph unicode="&#x26;" horiz-adv-x="1366" d="M51 356q0 70 19.5 126.5t53.5 101.5t78 81.5t93 67.5q-39 72 -60.5 142.5t-21.5 134.5q0 72 25.5 135t72.5 111.5t114 76t150 27.5q152 0 240 -82t88 -221q0 -66 -23.5 -120t-63.5 -100t-90 -85t-101 -74q57 -66 125.5 -128.5t142.5 -115.5q51 66 90 145.5t64 174.5h274 q-37 -123 -91 -234.5t-132 -216.5q63 -33 121.5 -54.5t109.5 -29.5l-72 -244q-84 16 -170 51t-172 85q-86 -63 -189 -99.5t-230 -36.5q-109 0 -192 31t-139 83t-85 121t-29 146zM336 375q0 -76 54 -123t145 -47q82 0 170 53q-78 63 -149 133t-130 144q-41 -35 -65.5 -74 t-24.5 -86zM461 1012q0 -37 11 -78t32 -82q72 43 121 90t49 115q0 47 -22.5 75.5t-69.5 28.5q-51 0 -86 -39.5t-35 -109.5z" />
-<glyph unicode="'" horiz-adv-x="614" d="M156 1405h303l-10 -272l-60 -408h-164l-59 408z" />
-<glyph unicode="(" horiz-adv-x="704" d="M147 569q0 270 71 497.5t200 438.5l188 -78q-113 -201 -164 -420t-51 -438t51.5 -438t163.5 -420l-188 -78q-129 211 -200 438.5t-71 497.5z" />
-<glyph unicode=")" horiz-adv-x="704" d="M98 -289q115 201 166 420t51 438t-51 438.5t-166 419.5l189 78q129 -211 199.5 -438t70.5 -498q0 -270 -70.5 -497.5t-199.5 -438.5z" />
-<glyph unicode="*" horiz-adv-x="935" d="M78 1118l47 148l237 -49l27 241h158l26 -244l236 52l49 -148l-221 -100l121 -213l-125 -90l-164 182l-166 -182l-125 90l121 213z" />
-<glyph unicode="+" d="M70 569v213h360v377h221v-377h361v-213h-361v-376h-221v376h-360z" />
-<glyph unicode="," horiz-adv-x="614" d="M94 -238q113 41 172.5 106.5t59.5 143.5h-17q-72 0 -127 44t-55 126q0 78 55.5 125t132.5 47q102 0 155.5 -74.5t53.5 -209.5q0 -170 -94 -292t-274 -175z" />
-<glyph unicode="-" horiz-adv-x="679" d="M88 412v213h504v-213h-504z" />
-<glyph unicode="." horiz-adv-x="614" d="M125 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5z" />
-<glyph unicode="/" horiz-adv-x="694" d="M27 -328l411 1782h197l-412 -1782h-196z" />
-<glyph unicode="0" d="M76 655q0 166 33.5 291t94 210t146.5 127t191 42q104 0 190 -42t146.5 -127t94.5 -210t34 -291t-34 -292.5t-94.5 -213t-146.5 -130.5t-190 -44t-190.5 44t-147 130.5t-94 213t-33.5 292.5zM360 655q0 -133 14.5 -219t39 -137t57.5 -70.5t70 -19.5q39 0 71.5 19.5 t57 70.5t38 137t13.5 219t-13.5 218t-38 133.5t-57 67t-71.5 18.5q-37 0 -70 -18.5t-57.5 -67t-39 -133.5t-14.5 -218z" />
-<glyph unicode="1" d="M143 0v244h283v751h-244v187q106 20 180 49t144 69h221v-1056h244v-244h-828z" />
-<glyph unicode="2" d="M61 1118q96 102 196.5 154.5t240.5 52.5q96 0 175 -29.5t136 -84t88 -130t31 -170.5q0 -82 -35 -167t-93.5 -170t-133 -170t-154.5 -166q49 6 109.5 11t107.5 5h262v-254h-915v172q125 117 228.5 218.5t178 190.5t116.5 165.5t42 146.5q0 96 -49 146.5t-135 50.5 q-72 0 -127.5 -40t-104.5 -94z" />
-<glyph unicode="3" d="M45 160l139 190q59 -57 130 -94t155 -37q96 0 153.5 40t57.5 114q0 43 -15.5 77.5t-54.5 58t-106.5 37t-173.5 13.5v213q88 0 146.5 12.5t94 36t51 55t15.5 70.5q0 68 -41 106t-119 38q-70 0 -126 -31t-118 -84l-151 184q90 78 189.5 122t220.5 44q100 0 183 -23.5 t141 -69.5t91 -111.5t33 -151.5q0 -102 -56.5 -173t-160.5 -116v-8q113 -33 185.5 -112t72.5 -206q0 -90 -39 -160.5t-104.5 -118.5t-153.5 -74t-186 -26q-160 0 -270.5 50.5t-182.5 134.5z" />
-<glyph unicode="4" d="M39 311v207l475 782h369v-759h149v-230h-149v-311h-281v311h-563zM328 541h274v211q0 63 4 146t8 144h-8q-25 -53 -51.5 -108t-54.5 -111z" />
-<glyph unicode="5" d="M47 158l135 190q59 -53 128 -91t153 -38q100 0 159.5 51.5t59.5 151.5q0 98 -56.5 149.5t-148.5 51.5q-29 0 -51.5 -3.5t-44 -11.5t-45 -20.5t-51.5 -30.5l-135 86l36 657h738v-253h-478l-22 -244q37 16 70.5 23.5t74.5 7.5q84 0 159 -25t132.5 -74t90 -124.5 t32.5 -180.5q0 -109 -39 -192.5t-104.5 -142t-152.5 -89.5t-181 -31q-160 0 -270.5 52.5t-188.5 130.5z" />
-<glyph unicode="6" d="M84 621q0 182 44 315t116.5 219t168 128t197.5 42q129 0 223.5 -46t155.5 -110l-158 -180q-35 37 -90 64.5t-112 27.5q-53 0 -100.5 -20.5t-83 -68.5t-58 -126t-27.5 -190q25 33 58 58.5t67.5 43t69.5 26.5t66 9q84 0 154.5 -24.5t122.5 -73.5t81 -125t29 -178t-35 -182 t-93.5 -137.5t-137 -87.5t-167.5 -30q-94 0 -183 37t-157.5 115t-109.5 200t-41 294zM367 471q10 -78 30.5 -129t47 -83t58 -45t66.5 -13q68 0 116 50t48 161q0 104 -48 146t-122 42q-49 0 -100 -28.5t-96 -100.5z" />
-<glyph unicode="7" d="M90 1047v253h905v-184q-113 -137 -181.5 -257t-106 -248t-54 -274.5t-24.5 -336.5h-303q8 162 29.5 298t61.5 260t102.5 243t154.5 246h-584z" />
-<glyph unicode="8" d="M86 332q0 119 64.5 194.5t156.5 124.5v8q-76 57 -125 130t-49 178q0 82 31 148.5t86 113.5t132 71.5t167 24.5q88 0 161.5 -25.5t125 -71.5t80 -112.5t28.5 -146.5q0 -94 -51 -167t-119 -118v-8q94 -51 159.5 -131t65.5 -209q0 -78 -32.5 -143.5t-93 -113.5t-145.5 -76 t-189 -28q-98 0 -181.5 26t-143.5 73t-94 112.5t-34 145.5zM344 367q0 -86 59.5 -134.5t141.5 -48.5q76 0 125 40t49 122q0 43 -19.5 74t-56.5 56.5t-87 48t-112 48.5q-43 -41 -71.5 -94t-28.5 -112zM397 967q0 -80 62 -125t162 -84q80 92 79 190q0 76 -42 122t-115 46 q-59 0 -102.5 -37t-43.5 -112z" />
-<glyph unicode="9" d="M70 889q0 100 34.5 181t93 138.5t137.5 87t167 29.5q94 0 183 -37t157.5 -114.5t110.5 -199.5t42 -294q0 -182 -44 -315.5t-116.5 -219.5t-168 -128t-197.5 -42q-129 0 -224 47.5t-157 108.5l160 180q33 -37 88 -64.5t113 -27.5q55 0 102 20.5t83 68.5t57.5 125t25.5 192 q-25 -33 -57.5 -58.5t-67.5 -43t-70 -27t-65 -9.5q-84 0 -155 25t-122 74t-80.5 124.5t-29.5 178.5zM344 889q0 -104 49 -146.5t123 -42.5q49 0 100.5 29t94.5 100q-20 154 -76.5 212.5t-126.5 58.5q-66 0 -115 -50.5t-49 -160.5z" />
-<glyph unicode=":" horiz-adv-x="614" d="M125 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5zM125 828q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5z" />
-<glyph unicode=";" horiz-adv-x="614" d="M94 -238q113 41 172.5 106.5t59.5 143.5h-17q-72 0 -127 44t-55 126q0 78 55.5 125t132.5 47q102 0 155.5 -74.5t53.5 -209.5q0 -170 -94 -292t-274 -175zM125 828q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5z" />
-<glyph unicode="&#x3c;" d="M70 575v209l942 363v-248l-361 -119l-276 -96v-8l276 -96l361 -119v-248z" />
-<glyph unicode="=" d="M70 333v213h942v-213h-942zM70 807v213h942v-213h-942z" />
-<glyph unicode="&#x3e;" d="M70 213v248l360 119l277 96v8l-277 96l-360 119v248l942 -363v-209z" />
-<glyph unicode="?" horiz-adv-x="948" d="M84 1210q70 84 164 135.5t209 51.5q86 0 160.5 -20.5t129 -63.5t85 -109.5t30.5 -156.5q0 -63 -22.5 -113.5t-56 -93.5t-71.5 -83t-70 -83t-50.5 -91t-11.5 -110h-265q-10 70 5.5 127t44 106.5t64.5 90.5t68.5 78.5t54 73.5t21.5 75q0 63 -37.5 96t-99.5 33 q-57 0 -101 -26.5t-85 -67.5zM266 164q0 82 51.5 136t128.5 54q78 0 130.5 -54t52.5 -136q0 -80 -52.5 -134.5t-130.5 -54.5t-129 54.5t-51 134.5z" />
-<glyph unicode="@" horiz-adv-x="1849" d="M100 420q0 215 74 390t200 300t294 192.5t356 67.5q166 0 300 -53t228.5 -150.5t145.5 -231.5t51 -294q0 -141 -43 -246.5t-110.5 -176.5t-150.5 -105.5t-163 -34.5q-88 0 -153.5 41t-81.5 114h-5q-43 -59 -112.5 -97t-132.5 -38q-123 0 -197 83t-74 225q0 94 32 184 t87 160.5t131 113.5t164 43q51 0 90 -23.5t66 -78.5h4l28 86h187l-94 -451q-43 -176 94 -176q45 0 89 25.5t79 74t55.5 117t20.5 152.5q0 111 -31 211t-98.5 177t-174 122t-256.5 45q-131 0 -256 -54.5t-223 -153.5t-157.5 -239.5t-59.5 -312.5q0 -152 48 -264.5t131 -186 t190.5 -110.5t228.5 -37q80 0 163 22.5t148 57.5l66 -164q-94 -51 -192.5 -74.5t-208.5 -23.5q-154 0 -294.5 47t-248 143t-171 240.5t-63.5 341.5zM754 424q0 -137 106 -137q33 0 64.5 20.5t70.5 71.5l49 276q-31 59 -94 60q-47 0 -83 -29t-61.5 -72t-38.5 -94t-13 -96z " />
-<glyph unicode="A" horiz-adv-x="1169" d="M-14 0l420 1335h360l420 -1335h-320l-82 317h-409l-82 -317h-307zM436 553h287l-33 123q-29 100 -54.5 212.5t-53.5 217.5h-9q-23 -106 -49 -218t-55 -212z" />
-<glyph unicode="B" horiz-adv-x="1236" d="M156 0v1335h456q104 0 194.5 -15t157 -54t104.5 -102.5t38 -159.5q0 -45 -13.5 -90.5t-41 -84t-70.5 -69.5t-100 -45v-8q143 -27 216.5 -103t73.5 -211q0 -102 -39.5 -176t-110.5 -122t-166 -71.5t-204 -23.5h-495zM459 233h168q250 0 250 183q0 88 -62.5 128t-187.5 40 h-168v-351zM459 797h139q111 0 162 44t51 120t-52 108.5t-157 32.5h-143v-305z" />
-<glyph unicode="C" horiz-adv-x="1187" d="M92 659q0 166 51.5 296t138.5 220.5t202.5 137.5t244.5 47q125 0 226.5 -52.5t168.5 -121.5l-166 -187q-51 47 -102 74t-123 27q-70 0 -130 -30t-105 -85t-71 -135t-26 -180q0 -207 88.5 -320.5t235.5 -113.5q84 0 144.5 32.5t109.5 85.5l166 -182q-84 -98 -191.5 -147.5 t-232.5 -49.5q-129 0 -244 44t-201 130.5t-135 214t-49 295.5z" />
-<glyph unicode="D" horiz-adv-x="1298" d="M156 0v1335h376q154 0 278 -39t212 -119.5t135 -205.5t47 -297t-47 -299t-133 -210t-206 -124t-267 -41h-395zM459 244h57q84 0 153.5 22.5t120 72.5t78 132t27.5 203q0 119 -27.5 199.5t-78 129t-120 69t-153.5 20.5h-57v-848z" />
-<glyph unicode="E" horiz-adv-x="1118" d="M156 0v1335h837v-254h-534v-268h454v-252h-454v-307h555v-254h-858z" />
-<glyph unicode="F" horiz-adv-x="1071" d="M156 0v1335h843v-254h-540v-309h461v-254h-461v-518h-303z" />
-<glyph unicode="G" horiz-adv-x="1302" d="M92 659q0 166 52.5 296t141.5 220.5t208.5 137.5t255.5 47q141 0 244.5 -53.5t170.5 -120.5l-166 -187q-51 47 -105 74t-140 27q-78 0 -142.5 -30t-110.5 -85t-73 -135t-27 -180q0 -207 93.5 -320.5t283.5 -113.5q41 0 79 10t63 30v230h-222v246h490v-615 q-37 -31 -85 -60.5t-105.5 -52t-123 -36t-135.5 -13.5q-135 0 -252.5 44t-205.5 130.5t-138.5 214t-50.5 295.5z" />
-<glyph unicode="H" horiz-adv-x="1376" d="M156 0v1335h303v-514h461v514h301v-1335h-301v557h-461v-557h-303z" />
-<glyph unicode="I" horiz-adv-x="614" d="M156 0v1335h303v-1335h-303z" />
-<glyph unicode="J" horiz-adv-x="1038" d="M31 217l205 152q39 -68 87 -100.5t99 -32.5q82 0 124 50t42 183v866h303v-891q0 -96 -25.5 -182t-78 -149.5t-133.5 -100.5t-191 -37q-154 0 -258.5 59.5t-173.5 182.5z" />
-<glyph unicode="K" horiz-adv-x="1255" d="M156 0v1335h303v-547h6l399 547h330l-403 -532l479 -803h-332l-324 563l-155 -205v-358h-303z" />
-<glyph unicode="L" horiz-adv-x="1056" d="M156 0v1335h303v-1081h526v-254h-829z" />
-<glyph unicode="M" horiz-adv-x="1558" d="M156 0v1335h319l223 -600l80 -233h8l80 233l217 600h320v-1335h-283v489q0 49 4 108.5t10.5 120t12.5 119t12 107.5h-8l-109 -309l-206 -518h-121l-205 518l-107 309h-8q6 -49 12.5 -107.5t12.5 -119t10 -119.5t4 -109v-489h-278z" />
-<glyph unicode="N" horiz-adv-x="1359" d="M156 0v1335h309l348 -663l133 -295h8q-10 106 -24.5 237t-14.5 250v471h287v-1335h-309l-348 666l-131 290h-8q10 -111 24 -237.5t14 -245.5v-473h-288z" />
-<glyph unicode="O" horiz-adv-x="1398" d="M92 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM401 674q0 -100 21.5 -181t59.5 -138.5t93 -88t123 -30.5q137 0 217 117.5 t80 320.5q0 201 -79.5 313.5t-217.5 112.5q-135 0 -216 -113t-81 -313z" />
-<glyph unicode="P" horiz-adv-x="1239" d="M156 0v1335h487q109 0 204 -21.5t165.5 -71.5t111.5 -133t41 -204q0 -117 -42 -203t-113.5 -141t-165.5 -81.5t-201 -26.5h-184v-453h-303zM459 692h166q245 0 245 211q0 106 -62.5 149.5t-182.5 43.5h-166v-404z" />
-<glyph unicode="Q" horiz-adv-x="1398" d="M86 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t191.5 -134t123.5 -216t44 -290q0 -270 -114.5 -444.5t-309.5 -229.5q47 -70 127 -97.5t166 -27.5q43 0 81 7t67 18l53 -222q-37 -18 -97.5 -30.5t-137.5 -12.5q-213 0 -359.5 98.5t-218.5 256.5 q-106 23 -193.5 79t-148.5 144t-94 203.5t-33 257.5zM395 674q0 -203 80 -320.5t217 -117.5t217 117.5t80 320.5q0 201 -80 313.5t-217 112.5t-217 -112.5t-80 -313.5z" />
-<glyph unicode="R" horiz-adv-x="1259" d="M156 0v1335h481q106 0 199.5 -20.5t164 -68.5t111.5 -128t41 -198q0 -147 -65.5 -242.5t-172.5 -142.5l302 -535h-338l-256 481h-164v-481h-303zM459 721h153q119 0 181.5 50t62.5 149q0 98 -62.5 137t-181.5 39h-153v-375z" />
-<glyph unicode="S" horiz-adv-x="1134" d="M70 168l174 207q72 -61 157.5 -100t169.5 -39q94 0 140.5 34.5t46.5 94.5q0 31 -13.5 53t-39 39.5t-61.5 33t-79 33.5l-172 74q-53 20 -101 53t-86 77t-60.5 102.5t-22.5 132.5q0 82 36 154.5t98 126.5t149.5 85t191.5 31q117 0 230.5 -45t199.5 -131l-151 -191 q-66 51 -132.5 79t-146.5 28q-78 0 -124 -32t-46 -89q0 -31 15.5 -52.5t43 -39t65.5 -32.5t81 -34l170 -69q123 -49 193.5 -135.5t70.5 -227.5q0 -84 -34 -158.5t-98.5 -131t-157.5 -90.5t-212 -34q-131 0 -261 48.5t-234 144.5z" />
-<glyph unicode="T" horiz-adv-x="1136" d="M49 1081v254h1036v-254h-366v-1081h-301v1081h-369z" />
-<glyph unicode="U" horiz-adv-x="1357" d="M150 618v717h301v-747q0 -197 59 -274.5t172 -77.5t175.5 77.5t62.5 274.5v747h290v-717q0 -336 -134 -489.5t-394 -153.5t-396 154t-136 489z" />
-<glyph unicode="V" horiz-adv-x="1136" d="M-16 1335h319l162 -622q29 -111 52.5 -214.5t53.5 -213.5h9q31 111 54 214t52 214l158 622h309l-403 -1335h-363z" />
-<glyph unicode="W" horiz-adv-x="1662" d="M27 1335h309l92 -624q14 -104 27.5 -210t27.5 -212h9q18 106 37.5 211.5t39.5 210.5l144 624h256l145 -624q20 -102 40 -208t40 -214h8q12 109 25.5 213t27.5 209l93 624h288l-237 -1335h-379l-131 606q-16 78 -29.5 157t-23.5 152h-9q-12 -74 -24 -152.5t-29 -156.5 l-127 -606h-373z" />
-<glyph unicode="X" horiz-adv-x="1159" d="M23 0l368 686l-348 649h338l115 -252q23 -47 46 -99t52 -116h8q23 63 43.5 115.5t40.5 99.5l107 252h321l-346 -663l369 -672h-336l-131 272q-27 53 -50.5 105.5t-50.5 114.5h-8q-25 -61 -47 -113.5t-45 -106.5l-125 -272h-321z" />
-<glyph unicode="Y" horiz-adv-x="1073" d="M-16 1335h321l121 -307q27 -76 53.5 -146.5t55.5 -148.5h8q29 78 56.5 148.5t55.5 146.5l119 307h316l-404 -860v-475h-301v475z" />
-<glyph unicode="Z" horiz-adv-x="1105" d="M72 0v182l590 899h-535v254h907v-182l-590 -899h594v-254h-966z" />
-<glyph unicode="[" horiz-adv-x="704" d="M178 -311v1761h432v-160h-207v-1442h207v-159h-432z" />
-<glyph unicode="\" horiz-adv-x="694" d="M57 1454h197l414 -1782h-199z" />
-<glyph unicode="]" horiz-adv-x="704" d="M94 -152h209v1442h-209v160h432v-1761h-432v159z" />
-<glyph unicode="^" d="M102 561l318 811h242l317 -811h-248l-94 262l-92 277h-8l-93 -277l-94 -262h-248z" />
-<glyph unicode="_" horiz-adv-x="1024" d="M25 -117h974v-170h-974v170z" />
-<glyph unicode="`" horiz-adv-x="1136" d="M264 1483h291l182 -307h-219z" />
-<glyph unicode="a" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102z" />
-<glyph unicode="b" horiz-adv-x="1173" d="M133 0v1436h301v-353l-8 -155q59 53 128 82.5t140 29.5q92 0 166 -36.5t126 -103t80 -162t28 -212.5q0 -131 -36 -233.5t-96.5 -173t-137 -107.5t-158.5 -37q-68 0 -136.5 33t-128.5 98h-8l-24 -106h-236zM434 287q41 -37 82 -51.5t80 -14.5q78 0 133 70.5t55 228.5 q0 274 -176 275q-90 0 -174 -93v-415z" />
-<glyph unicode="c" horiz-adv-x="956" d="M74 508q0 127 43 226.5t115.5 167t169 103t200.5 35.5q94 0 170 -31.5t127 -84.5l-137 -187q-72 59 -141 60q-111 0 -174.5 -78t-63.5 -211t64.5 -211t162.5 -78q55 0 100.5 22.5t82.5 51.5l120 -191q-74 -66 -164 -96.5t-174 -30.5q-106 0 -197 36t-158.5 103.5 t-106.5 167t-39 226.5z" />
-<glyph unicode="d" horiz-adv-x="1173" d="M80 508q0 125 36 223t94 167t135 105.5t157 36.5q86 0 141 -28.5t109 -77.5l-13 156v346h301v-1436h-245l-21 100h-8q-53 -53 -125 -89t-145 -36q-94 0 -171 37t-131.5 105.5t-84 167t-29.5 223.5zM389 512q0 -152 48 -221.5t136 -69.5q49 0 89 20.5t77 71.5v416 q-41 37 -84 51.5t-84 14.5q-72 0 -127 -69t-55 -214z" />
-<glyph unicode="e" horiz-adv-x="1060" d="M74 508q0 123 41 222t107.5 168t152.5 105.5t178 36.5q109 0 189.5 -36.5t135 -102t81 -155t26.5 -193.5q0 -41 -4 -75t-8 -52h-608q20 -117 90.5 -169t173.5 -52q109 0 219 67l100 -182q-78 -53 -173 -84t-187 -31q-109 0 -203 36t-163.5 104.5t-108.5 167t-39 225.5z M362 612h367q0 88 -39 143.5t-131 55.5q-72 0 -126 -48t-71 -151z" />
-<glyph unicode="f" horiz-adv-x="698" d="M49 780v224l135 10v55q0 80 19.5 151.5t64.5 125t117 84t174 30.5q63 0 115.5 -12t87.5 -25l-55 -221q-57 20 -105 21q-55 0 -86 -34t-31 -112v-61h183v-236h-183v-780h-301v780h-135z" />
-<glyph unicode="g" horiz-adv-x="1093" d="M70 -174q0 123 145 205v8q-41 27 -67.5 67.5t-26.5 104.5q0 55 32.5 105.5t82.5 84.5v9q-53 37 -95.5 105.5t-42.5 158.5q0 92 35 160.5t93.5 114.5t134 68.5t157.5 22.5q90 0 158 -24h371v-219h-162q14 -23 23.5 -57.5t9.5 -75.5q0 -88 -31 -153t-85 -107t-127 -62 t-157 -20q-59 0 -123 20q-20 -16 -28.5 -32.5t-8.5 -43.5q0 -39 34 -57.5t120 -18.5h164q188 0 287.5 -60t99.5 -198q0 -80 -40 -146.5t-113.5 -114.5t-178 -75.5t-235.5 -27.5q-90 0 -167 15.5t-135.5 46t-91 79.5t-32.5 117zM317 -127q0 -57 61.5 -87t164.5 -30 q102 0 167.5 36t65.5 89q0 47 -40 63.5t-115 16.5h-105q-53 0 -86 3t-57 9q-56 -49 -56 -100zM379 674q0 -86 40 -128t99 -42t99 42t40 128q0 80 -39.5 122t-99.5 42q-59 0 -99 -41t-40 -123z" />
-<glyph unicode="h" horiz-adv-x="1169" d="M133 0v1436h301v-353l-14 -182q57 51 133 95t180 44q166 0 241 -108.5t75 -300.5v-631h-301v592q0 111 -30 151.5t-95 40.5q-57 0 -98.5 -25.5t-90.5 -72.5v-686h-301z" />
-<glyph unicode="i" horiz-adv-x="565" d="M109 1323q0 70 49 113t125 43q78 0 126 -43t48 -113t-48 -114t-126 -44q-76 0 -125 44t-49 114zM133 0v1016h301v-1016h-301z" />
-<glyph unicode="j" horiz-adv-x="569" d="M-104 -373l53 221q20 -6 38.5 -10t41.5 -4q59 0 82.5 39t23.5 125v1018h301v-1010q0 -84 -17.5 -157.5t-59.5 -129t-111.5 -88t-173.5 -32.5q-63 0 -105.5 8t-72.5 20zM113 1323q0 70 49 113t125 43t125 -43t49 -113t-49 -114t-125 -44t-125 44t-49 114z" />
-<glyph unicode="k" horiz-adv-x="1122" d="M133 0v1436h293v-824h8l322 404h327l-356 -418l383 -598h-326l-229 395l-129 -145v-250h-293z" />
-<glyph unicode="l" horiz-adv-x="585" d="M133 315v1121h301v-1133q0 -47 17.5 -65.5t35.5 -18.5h17.5t19.5 4l37 -223q-25 -10 -62.5 -17.5t-88.5 -7.5q-78 0 -131.5 25t-85 69t-46 106.5t-14.5 139.5z" />
-<glyph unicode="m" horiz-adv-x="1755" d="M133 0v1016h246l20 -131h9q63 63 134.5 109t172.5 46q109 0 175 -44t105 -126q68 70 142.5 120t177.5 50q164 0 240.5 -109.5t76.5 -299.5v-631h-301v592q0 111 -29.5 151.5t-95.5 40.5q-76 0 -174 -98v-686h-301v592q0 111 -29.5 151.5t-95.5 40.5q-78 0 -172 -98v-686 h-301z" />
-<glyph unicode="n" horiz-adv-x="1171" d="M133 0v1016h246l20 -129h9q66 61 143.5 107t181.5 46q166 0 241 -108.5t75 -300.5v-631h-301v592q0 111 -30 151.5t-95 40.5q-57 0 -98.5 -25.5t-90.5 -72.5v-686h-301z" />
-<glyph unicode="o" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM383 508q0 -133 46 -211t140 -78q92 0 139.5 78t47.5 211t-47 211 t-140 78q-94 0 -140 -78t-46 -211z" />
-<glyph unicode="p" horiz-adv-x="1173" d="M133 -377v1393h246l20 -101h9q59 53 133.5 89t154.5 36q92 0 166 -36.5t125 -104.5t79 -163t28 -212q0 -131 -36 -232.5t-96.5 -172t-137 -107.5t-158.5 -37q-66 0 -127.5 28t-114.5 79l10 -162v-297h-301zM434 287q41 -37 82 -51.5t80 -14.5q78 0 133 70.5t55 228.5 q0 274 -176 275q-88 0 -174 -93v-415z" />
-<glyph unicode="q" horiz-adv-x="1171" d="M80 508q0 125 36 223t94 167t135 105.5t157 36.5q84 0 147.5 -29.5t122.5 -95.5h8l25 101h235v-1393h-301v309l13 156q-51 -49 -119 -81t-137 -32q-94 0 -171 37t-131.5 105.5t-84 167t-29.5 223.5zM389 512q0 -152 48 -221.5t136 -69.5q49 0 89 20.5t77 71.5v416 q-41 37 -84 51.5t-84 14.5q-72 0 -127 -69t-55 -214z" />
-<glyph unicode="r" horiz-adv-x="815" d="M133 0v1016h246l20 -178h9q55 104 132.5 153t155.5 49q43 0 71 -5t50 -15l-49 -260q-29 8 -53.5 12t-57.5 4q-57 0 -119.5 -41t-103.5 -145v-590h-301z" />
-<glyph unicode="s" horiz-adv-x="907" d="M43 117l135 188q70 -53 133.5 -79.5t128.5 -26.5q68 0 98.5 22.5t30.5 63.5q0 25 -17 44t-47 35.5t-67 30t-76 29.5q-47 18 -94 43t-86 60.5t-63.5 83.5t-24.5 112q0 70 28 129t79 100t122.5 64.5t159.5 23.5q117 0 205 -39.5t154 -89.5l-135 -180q-55 41 -108.5 63.5 t-106.5 22.5q-115 0 -115 -80q0 -25 16.5 -42t44 -31.5t63.5 -27.5t74 -28q49 -18 97.5 -41.5t88.5 -58.5t64.5 -85t24.5 -120t-26.5 -129t-80 -103t-131 -70t-180.5 -26q-100 0 -205.5 39t-183.5 103z" />
-<glyph unicode="t" horiz-adv-x="784" d="M35 780v224l155 12l35 270h250v-270h244v-236h-244v-407q0 -86 36 -124t95 -38q25 0 50.5 6t45.5 14l48 -219q-41 -12 -96.5 -24.5t-129.5 -12.5q-94 0 -160.5 29t-108.5 80t-61.5 124t-19.5 161v411h-139z" />
-<glyph unicode="u" horiz-adv-x="1163" d="M123 385v631h301v-592q0 -111 30.5 -152t96.5 -41q57 0 96 27t84 86v672h301v-1016h-246l-22 141h-6q-66 -78 -140.5 -122t-179.5 -44q-166 0 -240.5 109t-74.5 301z" />
-<glyph unicode="v" horiz-adv-x="1071" d="M25 1016h303l131 -479q20 -76 39.5 -155t40.5 -159h8q18 80 37.5 159t40.5 155l133 479h289l-332 -1016h-348z" />
-<glyph unicode="w" horiz-adv-x="1589" d="M49 1016h299l98 -471q12 -76 22.5 -149.5t23.5 -151.5h8q14 78 27.5 153.5t31.5 147.5l113 471h260l115 -471q18 -76 32.5 -149.5t30.5 -151.5h8q14 78 23.5 151.5t23.5 149.5l97 471h278l-244 -1016h-352l-92 406q-16 72 -28.5 143.5t-26.5 152.5h-9q-14 -82 -25 -153.5 t-26 -142.5l-90 -406h-344z" />
-<glyph unicode="x" horiz-adv-x="1052" d="M29 0l311 528l-293 488h324l90 -164q20 -43 41.5 -87t44.5 -87h8q16 43 34.5 87t35.5 87l69 164h312l-295 -522l313 -494h-324l-98 168q-25 43 -48.5 88t-47.5 88h-8q-18 -43 -39 -87t-39 -89l-80 -168h-311z" />
-<glyph unicode="y" horiz-adv-x="1067" d="M25 1016h303l145 -436q23 -70 41 -141.5t39 -147.5h8q16 72 33.5 144.5t36.5 144.5l123 436h288l-352 -1026q-37 -96 -77 -169t-92 -121t-118.5 -72.5t-156.5 -24.5q-47 0 -80 5t-64 15l54 230q14 -4 32.5 -8.5t34.5 -4.5q76 0 117 37t61 96l15 54z" />
-<glyph unicode="z" horiz-adv-x="942" d="M78 0v162l426 618h-379v236h754v-160l-426 -620h440v-236h-815z" />
-<glyph unicode="{" horiz-adv-x="704" d="M63 481v176q49 2 83 15.5t54.5 35t30 48t9.5 53.5q0 47 -3.5 88t-7.5 81t-7 84t-3 97q0 164 63.5 227.5t198.5 63.5h129v-160h-39q-63 0 -85.5 -29.5t-22.5 -113.5q0 -82 4 -162t4 -172q0 -117 -37 -169t-115 -71v-8q78 -18 115 -70.5t37 -168.5q0 -94 -4 -172t-4 -162 t22.5 -114t85.5 -30h39v-159h-129q-135 0 -198.5 62.5t-63.5 228.5q0 55 3 98t7 83t7.5 80t3.5 89q0 27 -9.5 53.5t-30 48t-54 34.5t-83.5 15z" />
-<glyph unicode="|" horiz-adv-x="548" d="M176 -512v2048h197v-2048h-197z" />
-<glyph unicode="}" horiz-adv-x="704" d="M94 -152h39q63 0 86 30t23 114t-4.5 161.5t-4.5 172.5q0 117 37 169t115 70v8q-78 18 -115 70.5t-37 169.5q0 92 4.5 172t4.5 162q0 84 -22.5 113.5t-86.5 29.5h-39v160h129q135 0 198.5 -63.5t63.5 -227.5q0 -53 -3 -97t-7 -84t-7 -81t-3 -88q0 -27 9 -53.5t29.5 -48 t54.5 -35t83 -15.5v-176q-49 -2 -83 -15t-54.5 -34.5t-29.5 -48.5t-9 -53q0 -49 3 -89t7 -80t7 -83t3 -98q0 -166 -63.5 -228.5t-198.5 -62.5h-129v159z" />
-<glyph unicode="~" d="M59 649q76 117 153 164t155 47q63 0 110 -24.5t87 -53t76 -53t79 -24.5t79 30.5t68 87.5l156 -121q-76 -117 -152.5 -163.5t-154.5 -46.5q-63 0 -110.5 24.5t-87.5 53t-75.5 53t-79.5 24.5q-41 0 -77.5 -30.5t-69.5 -88.5z" />
-<glyph unicode="&#xa1;" horiz-adv-x="696" d="M166 852q0 80 52 134t130 54t130 -54t52 -134q0 -82 -52 -136t-130 -54t-130 54t-52 136zM197 -356l10 272l43 627h196l43 -627l11 -272h-303z" />
-<glyph unicode="&#xa2;" d="M123 629q0 109 32.5 196.5t92 152t139.5 106.5t176 59v198h166v-190q80 -8 144.5 -38t109.5 -77l-137 -184q-61 49 -117 55v-557q43 8 80 27.5t68 44.5l120 -191q-59 -51 -128.5 -80.5t-139.5 -39.5v-195h-166v195q-100 12 -181 53t-138.5 107.5t-89 156.5t-31.5 201z M416 629q0 -92 38 -159t109 -97v512q-74 -33 -110.5 -98.5t-36.5 -157.5z" />
-<glyph unicode="&#xa3;" d="M98 0v186q92 41 154.5 122t62.5 192q0 14 -1 27.5t-3 27.5h-205v176l140 10h12q-14 41 -23.5 82t-9.5 82q0 96 33 174t91.5 132.5t138 84t176.5 29.5q115 0 199.5 -43t154.5 -123l-164 -164q-35 43 -74 64.5t-88 21.5q-82 0 -130 -47t-48 -145q0 -37 6 -74t17 -74h303 v-186h-265q2 -14 3.5 -28.5t1.5 -28.5q0 -74 -21.5 -127.5t-71.5 -108.5v-8h531v-254h-920z" />
-<glyph unicode="&#xa4;" d="M41 322l125 127q-70 94 -70 227q0 66 17.5 122t50.5 101l-123 127l149 152l142 -144q98 51 209 51q106 0 209 -51l141 144l149 -152l-125 -127q70 -92 70 -223q0 -68 -18.5 -124t-51.5 -103l125 -127l-149 -152l-143 145q-47 -25 -100.5 -37t-106.5 -12q-113 0 -207 49 l-144 -145zM365 676q0 -92 51 -146.5t125 -54.5t125 54.5t51 146.5t-51.5 146.5t-124.5 54.5q-74 0 -125 -54.5t-51 -146.5z" />
-<glyph unicode="&#xa5;" d="M25 1300h309l104 -272q25 -68 49.5 -135.5t53.5 -132.5h8q27 68 51.5 135.5t50.5 132.5l103 272h303l-301 -600h250v-143h-316v-113h316v-143h-316v-301h-301v301h-313v143h313v113h-313v143h250z" />
-<glyph unicode="&#xa6;" horiz-adv-x="548" d="M176 418h197v-930h-197v930zM176 639v897h197v-897h-197z" />
-<glyph unicode="&#xa7;" d="M76 668q0 78 44 146.5t120 115.5q-29 33 -44.5 75t-15.5 95q0 139 95.5 226t269.5 87q119 0 212 -42t156 -91l-137 -188q-47 41 -104.5 69.5t-110.5 28.5q-111 0 -110 -80q0 -37 40.5 -64.5t102 -55t134.5 -60.5t134.5 -79t102.5 -111.5t41 -157.5q0 -90 -44 -157 t-124 -116q23 -33 35 -71.5t12 -85.5q0 -70 -25.5 -129.5t-75 -102.5t-123 -67.5t-169.5 -24.5q-113 0 -220.5 42t-177.5 130l174 154q100 -104 224 -105q63 0 92.5 24.5t29.5 63.5t-39.5 67.5t-99 55.5t-130.5 57.5t-130 76.5t-99 111.5t-40 162.5zM330 690q0 -49 32.5 -83 t84 -61.5t114 -53t121.5 -56.5q70 43 70 121q0 49 -33 83t-83 61.5t-112.5 52t-122.5 55.5q-71 -47 -71 -119z" />
-<glyph unicode="&#xa8;" horiz-adv-x="1136" d="M223 1313q0 59 40 100t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM628 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1536" d="M92 666q0 160 54.5 284.5t147.5 211.5t216 133t258 46t258 -46t215 -133t146.5 -213t54.5 -283q0 -160 -54.5 -286t-146.5 -215t-215 -136t-258 -47t-258 47t-216 136t-147.5 215t-54.5 286zM231 666q0 -127 42 -229.5t114 -176.5t170 -114t211 -40t211 40t170 114 t114 176.5t42 229.5q0 125 -42 227t-114 175t-170 112t-211 39t-211 -39t-170 -112t-114 -175t-42 -227zM397 664q0 90 33 162.5t87 123.5t126 79t150 28q94 0 157.5 -36t112.5 -85l-113 -125q-33 35 -65.5 52.5t-73.5 17.5q-98 0 -148.5 -62.5t-50.5 -154.5 q0 -104 51.5 -166t137.5 -62q51 0 88 19.5t76 50.5l98 -139q-59 -47 -125 -77t-145 -30q-86 0 -159 28.5t-125 81t-82 127.5t-30 167z" />
-<glyph unicode="&#xaa;" horiz-adv-x="735" d="M59 721q0 109 90.5 167t292.5 79q-4 43 -27.5 65.5t-72.5 22.5q-41 0 -88 -16.5t-96 -45.5l-76 142q68 39 142.5 63.5t154.5 24.5q131 0 203.5 -75t72.5 -228v-388h-170l-20 68h-8q-37 -37 -84.5 -60.5t-106.5 -23.5q-96 0 -151.5 59.5t-55.5 145.5zM262 737 q0 -59 76 -59q31 0 54.5 13.5t49.5 37.5v115q-102 -12 -141 -41t-39 -66z" />
-<glyph unicode="&#xab;" horiz-adv-x="983" d="M100 410v213l275 295l112 -91l-227 -311l227 -311l-112 -90zM485 410v213l275 295l112 -91l-227 -311l227 -311l-112 -90z" />
-<glyph unicode="&#xac;" d="M70 569v213h942v-589h-221v376h-721z" />
-<glyph unicode="&#xad;" horiz-adv-x="679" d="M88 412v213h504v-213h-504z" />
-<glyph unicode="&#xae;" horiz-adv-x="946" d="M66 1051q0 90 31.5 165.5t87 131t130 86t158.5 30.5t158 -30.5t129 -86t87 -131t32 -165.5t-32 -166t-87 -131.5t-129 -86t-158 -30.5t-158.5 30.5t-130 86t-87 131.5t-31.5 166zM178 1051q0 -72 21.5 -129.5t61.5 -98.5t93 -63.5t119 -22.5q129 0 211 85t82 229 q0 143 -82 228t-211 85q-66 0 -119 -22.5t-93 -63.5t-61.5 -98.5t-21.5 -128.5zM307 852v403h182q72 0 119 -32.5t47 -102.5q0 -76 -71 -110l84 -158h-123l-62 123h-59v-123h-117zM424 1057h43q31 0 46 17.5t15 39.5q0 23 -15 38t-46 15h-43v-110z" />
-<glyph unicode="&#xaf;" horiz-adv-x="1136" d="M286 1212v191h566v-191h-566z" />
-<glyph unicode="&#xb0;" horiz-adv-x="747" d="M80 1110q0 63 22.5 117.5t62.5 94.5t94 61.5t116 21.5q61 0 115.5 -21.5t94.5 -61.5t63.5 -94t23.5 -118q0 -66 -23.5 -119t-63.5 -93t-94.5 -61.5t-115.5 -21.5t-115.5 21.5t-94.5 61.5t-62.5 93t-22.5 119zM238 1110q0 -68 39 -110t98 -42q61 0 99 42t38 110 q0 66 -38 108t-99 42q-59 0 -98 -42t-39 -108z" />
-<glyph unicode="&#xb1;" d="M70 0v213h942v-213h-942zM70 602v213h360v344h221v-344h361v-213h-361v-278h-221v278h-360z" />
-<glyph unicode="&#xb2;" horiz-adv-x="770" d="M55 1560q123 164 305 164q133 0 214 -70.5t81 -199.5q0 -49 -17 -95t-47 -91t-68 -90.5t-81 -92.5h242v-184h-592v119q154 127 252 224t98 173q0 59 -30.5 92t-85.5 33q-41 0 -76 -25.5t-70 -70.5z" />
-<glyph unicode="&#xb3;" horiz-adv-x="770" d="M55 1038l133 105q72 -98 170 -99q47 0 81 25t34 72q0 104 -190 104v127q74 0 117.5 23.5t43.5 74.5q0 41 -26.5 63.5t-73.5 22.5q-39 0 -70.5 -22.5t-60.5 -57.5l-125 111q66 72 133.5 104.5t161.5 32.5q55 0 105.5 -15t89 -44t61.5 -71t23 -93q0 -63 -31 -107t-86 -77 q61 -25 103 -73t42 -120q0 -55 -25.5 -101t-67.5 -78t-98.5 -50.5t-117.5 -18.5q-104 0 -188 42t-138 120z" />
-<glyph unicode="&#xb4;" horiz-adv-x="1136" d="M401 1176l182 307h291l-254 -307h-219z" />
-<glyph unicode="&#xb5;" horiz-adv-x="1173" d="M133 -410v1426h301v-592q0 -111 30 -152t95 -41q57 0 97 27t85 86v672h301v-1016h-245l-23 141h-8q-39 -74 -97.5 -111.5t-125.5 -37.5q-37 0 -69 8t-58 37l18 -184v-263h-301z" />
-<glyph unicode="&#xb6;" horiz-adv-x="1302" d="M80 879q0 129 41 216t111.5 141t166 76.5t201.5 22.5h90v-932h-82q-109 0 -205 30t-167.5 90.5t-113.5 149.5t-42 206zM805 -164v1499h301v-1499h-301z" />
-<glyph unicode="&#xb7;" horiz-adv-x="614" d="M125 656q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5z" />
-<glyph unicode="&#xb8;" horiz-adv-x="1136" d="M360 -332q74 8 122 28.5t48 61.5q0 27 -25.5 48.5t-95.5 37.5l82 164h176l-41 -96q53 -16 86 -52t33 -100q0 -53 -29.5 -91t-79 -64.5t-115 -40t-138.5 -17.5z" />
-<glyph unicode="&#xb9;" horiz-adv-x="770" d="M156 1476v136q41 6 72.5 14t58 18.5t50 23.5t48.5 32h176v-799h-223v575h-182z" />
-<glyph unicode="&#xba;" horiz-adv-x="763" d="M49 868q0 84 27.5 149.5t74 112t105.5 70t125 23.5t125 -23.5t105 -70t74 -112t28 -149.5t-28 -148.5t-74 -110.5t-105 -69.5t-125 -23.5t-125 23.5t-105.5 69.5t-74 110.5t-27.5 148.5zM266 868q0 -84 28 -134t87 -50t88 50t29 134q0 86 -29 136.5t-88 50.5t-87 -50.5 t-28 -136.5z" />
-<glyph unicode="&#xbb;" horiz-adv-x="983" d="M111 205l227 311l-227 311l112 91l275 -295v-213l-275 -295zM496 205l227 311l-227 311l112 91l275 -295v-213l-275 -295z" />
-<glyph unicode="&#xbc;" horiz-adv-x="1656" d="M97 1112v136q41 6 72.5 14t58 18.5t50 23.5t48.5 32h176v-799h-223v575h-182zM379 -25l721 1385h174l-721 -1385h-174zM959 178v111l288 510h275v-477h119v-144h-119v-178h-197v178h-366zM1161 322h164v84l13 239h-9l-82 -158z" />
-<glyph unicode="&#xbd;" horiz-adv-x="1732" d="M97 1112v136q41 6 72.5 14t58 18.5t50 23.5t48.5 32h176v-799h-223v575h-182zM348 -25l721 1385h174l-721 -1385h-174zM1016 659q123 164 305 164q133 0 214 -70.5t81 -199.5q0 -49 -17 -95t-47 -91t-68 -90.5t-81 -92.5h242v-184h-592v119q154 127 252 224t98 173 q0 59 -30.5 92t-85.5 33q-41 0 -76 -25.5t-70 -70.5z" />
-<glyph unicode="&#xbe;" horiz-adv-x="1675" d="M51 674l133 105q72 -98 170 -99q47 0 81 25t34 72q0 104 -190 104v127q74 0 117.5 23.5t43.5 74.5q0 41 -26.5 63.5t-73.5 22.5q-39 0 -70.5 -22.5t-60.5 -57.5l-125 111q66 72 133.5 104.5t161.5 32.5q55 0 105.5 -15t89 -44t61.5 -71t23 -93q0 -63 -31 -107t-86 -77 q61 -25 103 -73t42 -120q0 -55 -25.5 -101t-67.5 -78t-98.5 -50.5t-117.5 -18.5q-104 0 -188 42t-138 120zM424 -25l721 1385h174l-721 -1385h-174zM975 178v111l288 510h275v-477h119v-144h-119v-178h-197v178h-366zM1177 322h164v84l13 239h-9l-82 -158z" />
-<glyph unicode="&#xbf;" horiz-adv-x="948" d="M86 -29q0 63 22.5 113.5t56.5 93.5t71.5 83t69.5 82t51.5 90t13.5 110h262q10 -70 -5.5 -127.5t-44 -106.5t-64.5 -90t-68.5 -79t-54 -73.5t-21.5 -74.5q0 -63 39 -96t98 -33q57 0 101 26.5t85 67.5l166 -152q-70 -84 -164 -135t-208 -51q-86 0 -161 20.5t-129.5 63.5 t-85 109.5t-30.5 158.5zM319 852q0 80 52.5 134t130.5 54t130 -54t52 -134q0 -82 -52 -136t-130 -54t-130.5 54t-52.5 136z" />
-<glyph unicode="&#xc0;" horiz-adv-x="1169" d="M-14 0l420 1335h360l420 -1335h-320l-82 317h-409l-82 -317h-307zM246 1683h320l166 -245h-240zM436 553h287l-33 123q-29 100 -54.5 212.5t-53.5 217.5h-9q-23 -106 -49 -218t-55 -212z" />
-<glyph unicode="&#xc1;" horiz-adv-x="1169" d="M-14 0l420 1335h360l420 -1335h-320l-82 317h-409l-82 -317h-307zM424 1438l166 245h320l-246 -245h-240zM436 553h287l-33 123q-29 100 -54.5 212.5t-53.5 217.5h-9q-23 -106 -49 -218t-55 -212z" />
-<glyph unicode="&#xc2;" horiz-adv-x="1169" d="M-14 0l420 1335h360l420 -1335h-320l-82 317h-409l-82 -317h-307zM234 1438l197 245h294l197 -245h-231l-109 125h-8l-109 -125h-231zM436 553h287l-33 123q-29 100 -54.5 212.5t-53.5 217.5h-9q-23 -106 -49 -218t-55 -212z" />
-<glyph unicode="&#xc3;" horiz-adv-x="1169" d="M-14 0l420 1335h360l420 -1335h-320l-82 317h-409l-82 -317h-307zM230 1440q16 141 77.5 209.5t141.5 68.5q41 0 76 -14t64.5 -31.5t55 -32t50.5 -14.5q27 0 47 20.5t31 71.5h153q-16 -141 -77.5 -209.5t-141.5 -68.5q-41 0 -76 14t-64.5 31.5t-55 32t-50.5 14.5 q-27 0 -47 -20.5t-31 -71.5h-153zM436 553h287l-33 123q-29 100 -54.5 212.5t-53.5 217.5h-9q-23 -106 -49 -218t-55 -212z" />
-<glyph unicode="&#xc4;" horiz-adv-x="1169" d="M-14 0l420 1335h360l420 -1335h-320l-82 317h-409l-82 -317h-307zM232 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41t-40 102zM436 553h287l-33 123q-29 100 -54.5 212.5t-53.5 217.5h-9q-23 -106 -49 -218t-55 -212zM637 1577 q0 61 40 102t104 41q63 0 103 -41t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" />
-<glyph unicode="&#xc5;" horiz-adv-x="1169" d="M-14 0l420 1335h360l420 -1335h-320l-82 317h-409l-82 -317h-307zM347 1628q0 92 63.5 146.5t167.5 54.5t167.5 -54.5t63.5 -146.5t-63.5 -146.5t-167.5 -54.5t-167.5 54.5t-63.5 146.5zM436 553h287l-33 123q-29 100 -54.5 212.5t-53.5 217.5h-9q-23 -106 -49 -218 t-55 -212zM494 1628q0 -41 24.5 -64.5t59.5 -23.5t58.5 23.5t23.5 64.5t-23.5 64.5t-58.5 23.5t-59.5 -23.5t-24.5 -64.5z" />
-<glyph unicode="&#xc6;" horiz-adv-x="1728" d="M-29 0l633 1335h998v-254h-510v-268h430v-252h-430v-307h530v-254h-834v305h-362l-139 -305h-316zM532 539h256v569h-8q-41 -98 -81 -194.5t-81 -184.5z" />
-<glyph unicode="&#xc7;" horiz-adv-x="1187" d="M92 659q0 166 51.5 296t138.5 220.5t202.5 137.5t244.5 47q125 0 226.5 -52.5t168.5 -121.5l-166 -187q-51 47 -102 74t-123 27q-70 0 -130 -30t-105 -85t-71 -135t-26 -180q0 -207 88.5 -320.5t235.5 -113.5q84 0 144.5 32.5t109.5 85.5l166 -182q-84 -98 -191.5 -147.5 t-232.5 -49.5q-129 0 -244 44t-201 130.5t-135 214t-49 295.5zM504 -332q74 8 122 28.5t48 61.5q0 27 -25.5 48.5t-95.5 37.5l82 164h176l-41 -96q53 -16 86 -52t33 -100q0 -53 -29.5 -91t-79 -64.5t-115 -40t-138.5 -17.5z" />
-<glyph unicode="&#xc8;" horiz-adv-x="1118" d="M156 0v1335h837v-254h-534v-268h454v-252h-454v-307h555v-254h-858zM256 1683h320l166 -245h-240z" />
-<glyph unicode="&#xc9;" horiz-adv-x="1118" d="M156 0v1335h837v-254h-534v-268h454v-252h-454v-307h555v-254h-858zM434 1438l166 245h320l-246 -245h-240z" />
-<glyph unicode="&#xca;" horiz-adv-x="1118" d="M156 0v1335h837v-254h-534v-268h454v-252h-454v-307h555v-254h-858zM244 1438l197 245h294l197 -245h-231l-109 125h-8l-109 -125h-231z" />
-<glyph unicode="&#xcb;" horiz-adv-x="1118" d="M156 0v1335h837v-254h-534v-268h454v-252h-454v-307h555v-254h-858zM242 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41t-40 102zM647 1577q0 61 40 102t104 41q63 0 103 -41t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" />
-<glyph unicode="&#xcc;" horiz-adv-x="614" d="M-25 1683h320l166 -245h-240zM156 0v1335h303v-1335h-303z" />
-<glyph unicode="&#xcd;" horiz-adv-x="614" d="M153 1438l166 245h320l-246 -245h-240zM156 0v1335h303v-1335h-303z" />
-<glyph unicode="&#xce;" horiz-adv-x="614" d="M-37 1438l197 245h294l197 -245h-231l-109 125h-8l-109 -125h-231zM156 0v1335h303v-1335h-303z" />
-<glyph unicode="&#xcf;" horiz-adv-x="614" d="M-39 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41t-40 102zM156 0v1335h303v-1335h-303zM366 1577q0 61 40 102t104 41q63 0 103 -41t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" />
-<glyph unicode="&#xd0;" horiz-adv-x="1347" d="M53 616v136l152 10v573h379q154 0 276.5 -39t210.5 -119.5t135 -205.5t47 -297t-47 -299t-133 -210t-205.5 -124t-267.5 -41h-395v616h-152zM508 244h57q84 0 153.5 22.5t120 72.5t78 132t27.5 203q0 119 -27.5 199.5t-78 129t-120 69t-153.5 20.5h-57v-330h258v-146 h-258v-372z" />
-<glyph unicode="&#xd1;" horiz-adv-x="1359" d="M156 0v1335h309l348 -663l133 -295h8q-10 106 -24.5 237t-14.5 250v471h287v-1335h-309l-348 666l-131 290h-8q10 -111 24 -237.5t14 -245.5v-473h-288zM334 1440q16 141 77.5 209.5t141.5 68.5q41 0 76 -14t64.5 -31.5t55 -32t50.5 -14.5q27 0 47 20.5t31 71.5h153 q-16 -141 -77.5 -209.5t-141.5 -68.5q-41 0 -76 14t-64.5 31.5t-55 32t-50.5 14.5q-27 0 -47 -20.5t-31 -71.5h-153z" />
-<glyph unicode="&#xd2;" horiz-adv-x="1398" d="M92 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM366 1683h320l166 -245h-240zM401 674q0 -100 21.5 -181t59.5 -138.5t93 -88 t123 -30.5q137 0 217 117.5t80 320.5q0 201 -79.5 313.5t-217.5 112.5q-135 0 -216 -113t-81 -313z" />
-<glyph unicode="&#xd3;" horiz-adv-x="1398" d="M92 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM401 674q0 -100 21.5 -181t59.5 -138.5t93 -88t123 -30.5q137 0 217 117.5 t80 320.5q0 201 -79.5 313.5t-217.5 112.5q-135 0 -216 -113t-81 -313zM544 1438l166 245h320l-246 -245h-240z" />
-<glyph unicode="&#xd4;" horiz-adv-x="1398" d="M92 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM354 1438l197 245h294l197 -245h-231l-109 125h-8l-109 -125h-231zM401 674 q0 -100 21.5 -181t59.5 -138.5t93 -88t123 -30.5q137 0 217 117.5t80 320.5q0 201 -79.5 313.5t-217.5 112.5q-135 0 -216 -113t-81 -313z" />
-<glyph unicode="&#xd5;" horiz-adv-x="1398" d="M92 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM350 1440q16 141 77.5 209.5t141.5 68.5q41 0 76 -14t64.5 -31.5t55 -32 t50.5 -14.5q27 0 47 20.5t31 71.5h153q-16 -141 -77.5 -209.5t-141.5 -68.5q-41 0 -76 14t-64.5 31.5t-55 32t-50.5 14.5q-27 0 -47 -20.5t-31 -71.5h-153zM401 674q0 -100 21.5 -181t59.5 -138.5t93 -88t123 -30.5q137 0 217 117.5t80 320.5q0 201 -79.5 313.5 t-217.5 112.5q-135 0 -216 -113t-81 -313z" />
-<glyph unicode="&#xd6;" horiz-adv-x="1398" d="M92 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM352 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41 t-40 102zM401 674q0 -100 21.5 -181t59.5 -138.5t93 -88t123 -30.5q137 0 217 117.5t80 320.5q0 201 -79.5 313.5t-217.5 112.5q-135 0 -216 -113t-81 -313zM757 1577q0 61 40 102t104 41q63 0 103 -41t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" />
-<glyph unicode="&#xd7;" d="M98 381l291 293l-291 295l150 151l293 -295l293 295l149 -151l-291 -295l291 -293l-149 -152l-293 295l-293 -295z" />
-<glyph unicode="&#xd8;" horiz-adv-x="1398" d="M80 35l141 176q-61 88 -95 203.5t-34 259.5q0 164 44 292t124 215t191.5 133t246.5 46q211 0 361 -109l135 168l156 -121l-156 -194q111 -170 111 -430q0 -164 -44 -293t-124 -219t-191.5 -138.5t-247.5 -48.5q-193 0 -336 97l-124 -156zM401 674q0 -59 7.5 -109.5 t19.5 -95.5l451 559q-72 72 -181 72q-135 0 -216 -113t-81 -313zM539 291q72 -55 159 -55q137 0 217 117.5t80 320.5q0 86 -16 164z" />
-<glyph unicode="&#xd9;" horiz-adv-x="1357" d="M150 618v717h301v-747q0 -197 59 -274.5t172 -77.5t175.5 77.5t62.5 274.5v747h290v-717q0 -336 -134 -489.5t-394 -153.5t-396 154t-136 489zM346 1683h320l166 -245h-240z" />
-<glyph unicode="&#xda;" horiz-adv-x="1357" d="M150 618v717h301v-747q0 -197 59 -274.5t172 -77.5t175.5 77.5t62.5 274.5v747h290v-717q0 -336 -134 -489.5t-394 -153.5t-396 154t-136 489zM524 1438l166 245h320l-246 -245h-240z" />
-<glyph unicode="&#xdb;" horiz-adv-x="1357" d="M150 618v717h301v-747q0 -197 59 -274.5t172 -77.5t175.5 77.5t62.5 274.5v747h290v-717q0 -336 -134 -489.5t-394 -153.5t-396 154t-136 489zM334 1438l197 245h294l197 -245h-231l-109 125h-8l-109 -125h-231z" />
-<glyph unicode="&#xdc;" horiz-adv-x="1357" d="M150 618v717h301v-747q0 -197 59 -274.5t172 -77.5t175.5 77.5t62.5 274.5v747h290v-717q0 -336 -134 -489.5t-394 -153.5t-396 154t-136 489zM332 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41t-40 102zM737 1577q0 61 40 102t104 41 q63 0 103 -41t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" />
-<glyph unicode="&#xdd;" horiz-adv-x="1073" d="M-16 1335h321l121 -307q27 -76 53.5 -146.5t55.5 -148.5h8q29 78 56.5 148.5t55.5 146.5l119 307h316l-404 -860v-475h-301v475zM383 1438l166 245h320l-246 -245h-240z" />
-<glyph unicode="&#xde;" horiz-adv-x="1269" d="M164 0v1335h301v-202h184q109 0 205 -21.5t167 -72t112 -132.5t41 -202q0 -119 -42 -204t-114 -140.5t-167 -82t-202 -26.5h-184v-252h-301zM465 492h168q244 0 244 213q0 104 -62.5 146t-181.5 42h-168v-401z" />
-<glyph unicode="&#xdf;" horiz-adv-x="1294" d="M133 0v997q0 98 30 182.5t89 145.5t151.5 96t214.5 35q104 0 183.5 -28.5t131.5 -76.5t78.5 -109.5t26.5 -127.5q0 -74 -24.5 -124t-55 -90t-55 -73.5t-24.5 -72.5q0 -35 26.5 -58.5t66.5 -46t87 -49.5t87 -64.5t66.5 -92t26.5 -132.5q0 -70 -23.5 -131t-71.5 -106 t-119 -72t-163 -27t-163.5 25t-145.5 68l104 204q100 -74 195 -73q53 0 83 27.5t30 70.5q0 39 -27 66.5t-67 51t-87 49t-87 59.5t-66.5 80t-26.5 114q0 59 22.5 102t50.5 82t50.5 81t22.5 97q0 59 -34 99.5t-98 40.5q-94 0 -141 -69t-47 -187v-963h-297z" />
-<glyph unicode="&#xe0;" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M270 1483h291l182 -307h-219zM383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102z" />
-<glyph unicode="&#xe1;" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102zM407 1176l182 307h291l-254 -307h-219z" />
-<glyph unicode="&#xe2;" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M260 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202zM383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102z" />
-<glyph unicode="&#xe3;" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M235 1178q16 141 73.5 208.5t139.5 67.5q41 0 76 -14.5t63.5 -30.5t54 -30.5t48.5 -14.5q27 0 43 20.5t28 69.5h154q-16 -139 -73.5 -207.5t-139.5 -68.5q-41 0 -75 14t-63.5 31.5t-55 32t-48.5 14.5q-27 0 -43 -20.5t-28 -71.5h-154zM383 305q0 -49 31.5 -72.5t85.5 -23.5 q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102z" />
-<glyph unicode="&#xe4;" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M229 1313q0 59 40 100t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102zM634 1313q0 59 40 100t104 41q63 0 103 -41t40 -100 q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" />
-<glyph unicode="&#xe5;" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M344 1331q0 96 63.5 152.5t167.5 56.5t167.5 -56.5t63.5 -152.5t-63.5 -152.5t-167.5 -56.5t-167.5 56.5t-63.5 152.5zM383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102zM491 1331q0 -43 24.5 -69.5t59.5 -26.5t59.5 26.5 t24.5 69.5t-24.5 69.5t-59.5 26.5t-59.5 -26.5t-24.5 -69.5z" />
-<glyph unicode="&#xe6;" horiz-adv-x="1609" d="M96 281q0 162 133 253t433 121q-4 66 -38 106t-120 40q-61 0 -127 -24.5t-139 -67.5l-107 198q98 59 201.5 96t214.5 37q94 0 165.5 -41t116.5 -112q66 74 137.5 113.5t163.5 39.5q100 0 176 -37.5t126.5 -104.5t76 -157t25.5 -194q0 -41 -4 -75t-8 -52h-586 q16 -106 83.5 -157.5t160.5 -51.5q57 0 108 20.5t107 53.5l102 -195q-78 -53 -173 -84t-185 -31q-115 0 -200 43t-151 115q-109 -86 -198.5 -122t-192.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 119.5zM383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 101 22.5t89 63.5 q-23 63 -28 135l-3 43q-150 -23 -213 -66t-63 -102zM936 604h342q0 92 -37 149.5t-121 57.5q-72 0 -122 -50t-62 -157z" />
-<glyph unicode="&#xe7;" horiz-adv-x="956" d="M74 508q0 127 43 226.5t115.5 167t169 103t200.5 35.5q94 0 170 -31.5t127 -84.5l-137 -187q-72 59 -141 60q-111 0 -174.5 -78t-63.5 -211t64.5 -211t162.5 -78q55 0 100.5 22.5t82.5 51.5l120 -191q-74 -66 -164 -96.5t-174 -30.5q-106 0 -197 36t-158.5 103.5 t-106.5 167t-39 226.5zM367 -332q74 8 122 28.5t48 61.5q0 27 -25.5 48.5t-95.5 37.5l82 164h176l-41 -96q53 -16 86 -52t33 -100q0 -53 -29.5 -91t-79 -64.5t-115 -40t-138.5 -17.5z" />
-<glyph unicode="&#xe8;" horiz-adv-x="1060" d="M74 508q0 123 41 222t107.5 168t152.5 105.5t178 36.5q109 0 189.5 -36.5t135 -102t81 -155t26.5 -193.5q0 -41 -4 -75t-8 -52h-608q20 -117 90.5 -169t173.5 -52q109 0 219 67l100 -182q-78 -53 -173 -84t-187 -31q-109 0 -203 36t-163.5 104.5t-108.5 167t-39 225.5z M248 1483h291l182 -307h-219zM362 612h367q0 88 -39 143.5t-131 55.5q-72 0 -126 -48t-71 -151z" />
-<glyph unicode="&#xe9;" horiz-adv-x="1060" d="M74 508q0 123 41 222t107.5 168t152.5 105.5t178 36.5q109 0 189.5 -36.5t135 -102t81 -155t26.5 -193.5q0 -41 -4 -75t-8 -52h-608q20 -117 90.5 -169t173.5 -52q109 0 219 67l100 -182q-78 -53 -173 -84t-187 -31q-109 0 -203 36t-163.5 104.5t-108.5 167t-39 225.5z M362 612h367q0 88 -39 143.5t-131 55.5q-72 0 -126 -48t-71 -151zM385 1176l182 307h291l-254 -307h-219z" />
-<glyph unicode="&#xea;" horiz-adv-x="1060" d="M74 508q0 123 41 222t107.5 168t152.5 105.5t178 36.5q109 0 189.5 -36.5t135 -102t81 -155t26.5 -193.5q0 -41 -4 -75t-8 -52h-608q20 -117 90.5 -169t173.5 -52q109 0 219 67l100 -182q-78 -53 -173 -84t-187 -31q-109 0 -203 36t-163.5 104.5t-108.5 167t-39 225.5z M238 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202zM362 612h367q0 88 -39 143.5t-131 55.5q-72 0 -126 -48t-71 -151z" />
-<glyph unicode="&#xeb;" horiz-adv-x="1060" d="M74 508q0 123 41 222t107.5 168t152.5 105.5t178 36.5q109 0 189.5 -36.5t135 -102t81 -155t26.5 -193.5q0 -41 -4 -75t-8 -52h-608q20 -117 90.5 -169t173.5 -52q109 0 219 67l100 -182q-78 -53 -173 -84t-187 -31q-109 0 -203 36t-163.5 104.5t-108.5 167t-39 225.5z M207 1313q0 59 40 100t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM362 612h367q0 88 -39 143.5t-131 55.5q-72 0 -126 -48t-71 -151zM612 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41 t-40.5 103z" />
-<glyph unicode="&#xec;" horiz-adv-x="565" d="M-22 1483h291l182 -307h-219zM133 0v1016h301v-1016h-301z" />
-<glyph unicode="&#xed;" horiz-adv-x="565" d="M115 1176l182 307h291l-254 -307h-219zM133 0v1016h301v-1016h-301z" />
-<glyph unicode="&#xee;" horiz-adv-x="565" d="M-32 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202zM133 0v1016h301v-1016h-301z" />
-<glyph unicode="&#xef;" horiz-adv-x="565" d="M-63 1313q0 59 40 100t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM133 0v1016h301v-1016h-301zM342 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" />
-<glyph unicode="&#xf0;" horiz-adv-x="1146" d="M86 467q0 111 35 197t93 145t133 91t155 32q59 0 116.5 -19.5t100.5 -66.5q-53 158 -174 272l-291 -145l-78 133l238 119q-41 29 -87 55.5t-98 52.5l131 183q72 -37 143.5 -80t139.5 -95l293 148l78 -133l-246 -125q121 -123 198.5 -290t77.5 -396q0 -123 -33.5 -227.5 t-96 -180.5t-152.5 -119t-203 -43q-96 0 -181 35t-150.5 98.5t-103.5 154.5t-38 204zM360 467q0 -121 62.5 -184.5t146.5 -63.5q86 0 140.5 75t54.5 234v47.5t-2 45.5q-47 51 -96.5 69.5t-102.5 18.5q-90 0 -146.5 -59.5t-56.5 -182.5z" />
-<glyph unicode="&#xf1;" horiz-adv-x="1171" d="M133 0v1016h246l20 -129h9q66 61 143.5 107t181.5 46q166 0 241 -108.5t75 -300.5v-631h-301v592q0 111 -30 151.5t-95 40.5q-57 0 -98.5 -25.5t-90.5 -72.5v-686h-301zM291 1178q16 141 73.5 208.5t139.5 67.5q41 0 76 -14.5t63.5 -30.5t54 -30.5t48.5 -14.5 q27 0 43 20.5t28 69.5h154q-16 -139 -73.5 -207.5t-139.5 -68.5q-41 0 -75 14t-63.5 31.5t-55 32t-48.5 14.5q-27 0 -43 -20.5t-28 -71.5h-154z" />
-<glyph unicode="&#xf2;" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM262 1483h291l182 -307h-219zM383 508q0 -133 46 -211t140 -78 q92 0 139.5 78t47.5 211t-47 211t-140 78q-94 0 -140 -78t-46 -211z" />
-<glyph unicode="&#xf3;" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM383 508q0 -133 46 -211t140 -78q92 0 139.5 78t47.5 211t-47 211 t-140 78q-94 0 -140 -78t-46 -211zM399 1176l182 307h291l-254 -307h-219z" />
-<glyph unicode="&#xf4;" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM252 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202z M383 508q0 -133 46 -211t140 -78q92 0 139.5 78t47.5 211t-47 211t-140 78q-94 0 -140 -78t-46 -211z" />
-<glyph unicode="&#xf5;" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM227 1178q16 141 73.5 208.5t139.5 67.5q41 0 76 -14.5t63.5 -30.5 t54 -30.5t48.5 -14.5q27 0 43 20.5t28 69.5h154q-16 -139 -73.5 -207.5t-139.5 -68.5q-41 0 -75 14t-63.5 31.5t-55 32t-48.5 14.5q-27 0 -43 -20.5t-28 -71.5h-154zM383 508q0 -133 46 -211t140 -78q92 0 139.5 78t47.5 211t-47 211t-140 78q-94 0 -140 -78t-46 -211z" />
-<glyph unicode="&#xf6;" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM221 1313q0 59 40 100t103 41t103.5 -41t40.5 -100 q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM383 508q0 -133 46 -211t140 -78q92 0 139.5 78t47.5 211t-47 211t-140 78q-94 0 -140 -78t-46 -211zM626 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" />
-<glyph unicode="&#xf7;" d="M70 569v213h942v-213h-942zM375 307q0 70 47 114t119 44t119 -44t47 -114t-47.5 -113.5t-118.5 -43.5q-72 0 -119 43.5t-47 113.5zM375 1044q0 70 47 114t119 44t119 -44t47 -114t-47 -113.5t-119 -43.5t-119 44t-47 113z" />
-<glyph unicode="&#xf8;" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5q72 0 141.5 -20.5t129.5 -58.5l90 110l112 -88l-96 -119q53 -68 85 -157t32 -199q0 -127 -41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-152 0 -274 82l-88 -108l-113 86l96 119q-53 66 -84.5 154.5t-31.5 199.5z M365 524q0 -82 14 -137l305 381q-45 39 -115 39q-94 0 -149 -77t-55 -206zM451 250q47 -41 118 -41q92 0 147.5 76.5t55.5 206.5q0 84 -14 139z" />
-<glyph unicode="&#xf9;" horiz-adv-x="1163" d="M123 385v631h301v-592q0 -111 30.5 -152t96.5 -41q57 0 96 27t84 86v672h301v-1016h-246l-22 141h-6q-66 -78 -140.5 -122t-179.5 -44q-166 0 -240.5 109t-74.5 301zM279 1483h291l182 -307h-219z" />
-<glyph unicode="&#xfa;" horiz-adv-x="1163" d="M123 385v631h301v-592q0 -111 30.5 -152t96.5 -41q57 0 96 27t84 86v672h301v-1016h-246l-22 141h-6q-66 -78 -140.5 -122t-179.5 -44q-166 0 -240.5 109t-74.5 301zM416 1176l182 307h291l-254 -307h-219z" />
-<glyph unicode="&#xfb;" horiz-adv-x="1163" d="M123 385v631h301v-592q0 -111 30.5 -152t96.5 -41q57 0 96 27t84 86v672h301v-1016h-246l-22 141h-6q-66 -78 -140.5 -122t-179.5 -44q-166 0 -240.5 109t-74.5 301zM269 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202z" />
-<glyph unicode="&#xfc;" horiz-adv-x="1163" d="M123 385v631h301v-592q0 -111 30.5 -152t96.5 -41q57 0 96 27t84 86v672h301v-1016h-246l-22 141h-6q-66 -78 -140.5 -122t-179.5 -44q-166 0 -240.5 109t-74.5 301zM238 1313q0 59 40 100t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103z M643 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" />
-<glyph unicode="&#xfd;" horiz-adv-x="1067" d="M25 1016h303l145 -436q23 -70 41 -141.5t39 -147.5h8q16 72 33.5 144.5t36.5 144.5l123 436h288l-352 -1026q-37 -96 -77 -169t-92 -121t-118.5 -72.5t-156.5 -24.5q-47 0 -80 5t-64 15l54 230q14 -4 32.5 -8.5t34.5 -4.5q76 0 117 37t61 96l15 54zM377 1176l182 307h291 l-254 -307h-219z" />
-<glyph unicode="&#xfe;" horiz-adv-x="1173" d="M133 -377v1813h301v-353l-8 -143q53 47 118.5 73.5t135.5 26.5q96 0 173 -36.5t130 -104.5t82 -163t29 -212q0 -131 -36 -232.5t-96.5 -172t-137 -107.5t-158.5 -37q-74 0 -130.5 25t-109.5 72l8 -152v-297h-301zM434 287q41 -37 82 -51.5t80 -14.5q78 0 133 70.5 t55 228.5q0 274 -176 275q-88 0 -174 -93v-415z" />
-<glyph unicode="&#xff;" horiz-adv-x="1067" d="M25 1016h303l145 -436q23 -70 41 -141.5t39 -147.5h8q16 72 33.5 144.5t36.5 144.5l123 436h288l-352 -1026q-37 -96 -77 -169t-92 -121t-118.5 -72.5t-156.5 -24.5q-47 0 -80 5t-64 15l54 230q14 -4 32.5 -8.5t34.5 -4.5q76 0 117 37t61 96l15 54zM199 1313q0 59 40 100 t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM604 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" />
-<glyph unicode="&#x152;" horiz-adv-x="1779" d="M92 674q0 172 51.5 297t143.5 205.5t218 119.5t273 39h877v-254h-508v-268h428v-252h-428v-307h528v-254h-913q-141 0 -264 41t-213 124t-141.5 210t-51.5 299zM401 674q0 -121 29 -204t81 -133t125 -71.5t161 -21.5h49v848h-49q-88 0 -161 -20.5t-125 -69t-81 -128 t-29 -200.5z" />
-<glyph unicode="&#x153;" horiz-adv-x="1683" d="M74 508q0 127 39 226.5t104.5 167t152.5 103t183 35.5q109 0 189.5 -47t140.5 -131q61 86 145 132t176 46q100 0 176 -37.5t127.5 -104.5t77 -157t25.5 -194q0 -41 -4 -75t-9 -52h-587q16 -106 83.5 -157.5t159.5 -51.5q57 0 108.5 20.5t106.5 53.5l105 -195 q-78 -53 -174 -84t-187 -31q-92 0 -178 46.5t-149 132.5q-63 -88 -144.5 -133.5t-193.5 -45.5q-98 0 -184.5 36t-151 103.5t-101 167t-36.5 226.5zM379 508q0 -133 45 -211t129 -78t131 78t47 211t-47 211t-131 78t-129 -78t-45 -211zM1010 604h342q0 92 -37 149.5 t-121 57.5q-72 0 -122 -50t-62 -157z" />
-<glyph unicode="&#x178;" horiz-adv-x="1073" d="M-16 1335h321l121 -307q27 -76 53.5 -146.5t55.5 -148.5h8q29 78 56.5 148.5t55.5 146.5l119 307h316l-404 -860v-475h-301v475zM191 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41t-40 102zM596 1577q0 61 40 102t104 41q63 0 103 -41 t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" />
-<glyph unicode="&#x2c6;" horiz-adv-x="1136" d="M254 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202z" />
-<glyph unicode="&#x2dc;" horiz-adv-x="1136" d="M229 1178q16 141 73.5 208.5t139.5 67.5q41 0 76 -14.5t63.5 -30.5t54 -30.5t48.5 -14.5q27 0 43 20.5t28 69.5h154q-16 -139 -73.5 -207.5t-139.5 -68.5q-41 0 -75 14t-63.5 31.5t-55 32t-48.5 14.5q-27 0 -43 -20.5t-28 -71.5h-154z" />
-<glyph unicode="&#x2000;" horiz-adv-x="914" />
-<glyph unicode="&#x2001;" horiz-adv-x="1829" />
-<glyph unicode="&#x2002;" horiz-adv-x="914" />
-<glyph unicode="&#x2003;" horiz-adv-x="1829" />
-<glyph unicode="&#x2004;" horiz-adv-x="609" />
-<glyph unicode="&#x2005;" horiz-adv-x="457" />
-<glyph unicode="&#x2006;" horiz-adv-x="304" />
-<glyph unicode="&#x2007;" horiz-adv-x="304" />
-<glyph unicode="&#x2008;" horiz-adv-x="228" />
-<glyph unicode="&#x2009;" horiz-adv-x="365" />
-<glyph unicode="&#x200a;" horiz-adv-x="101" />
-<glyph unicode="&#x2010;" horiz-adv-x="679" d="M88 412v213h504v-213h-504z" />
-<glyph unicode="&#x2011;" horiz-adv-x="679" d="M88 412v213h504v-213h-504z" />
-<glyph unicode="&#x2012;" horiz-adv-x="679" d="M88 412v213h504v-213h-504z" />
-<glyph unicode="&#x2013;" horiz-adv-x="983" d="M88 422v192h807v-192h-807z" />
-<glyph unicode="&#x2014;" horiz-adv-x="1638" d="M88 422v192h1462v-192h-1462z" />
-<glyph unicode="&#x2018;" horiz-adv-x="614" d="M113 961q0 145 71.5 255.5t218.5 182.5l66 -131q-92 -47 -138 -107.5t-46 -152.5q6 2 20 2q66 0 112 -40t46 -110q0 -78 -45 -123t-113 -45q-96 0 -144 71t-48 198z" />
-<glyph unicode="&#x2019;" horiz-adv-x="614" d="M145 852q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5z" />
-<glyph unicode="&#x201a;" horiz-adv-x="614" d="M145 -213q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5z" />
-<glyph unicode="&#x201c;" horiz-adv-x="1097" d="M113 961q0 145 71.5 255.5t218.5 182.5l66 -131q-92 -47 -138 -107.5t-46 -152.5q6 2 20 2q66 0 112 -40t46 -110q0 -78 -45 -123t-113 -45q-96 0 -144 71t-48 198zM596 961q0 145 71.5 255.5t218.5 182.5l66 -131q-92 -47 -138 -107.5t-46 -152.5q6 2 20 2q66 0 112 -40 t46 -110q0 -78 -45 -123t-113 -45q-96 0 -144 71t-48 198z" />
-<glyph unicode="&#x201d;" horiz-adv-x="1097" d="M145 852q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5zM628 852q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5 t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5z" />
-<glyph unicode="&#x201e;" horiz-adv-x="1097" d="M145 -213q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5zM628 -213q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5 t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5z" />
-<glyph unicode="&#x2022;" horiz-adv-x="706" d="M82 537q0 61 20.5 113t57.5 90t86 59.5t106 21.5t107.5 -21.5t87.5 -59.5t57.5 -90t20.5 -113t-20.5 -112.5t-57.5 -90.5t-87.5 -60.5t-107.5 -21.5t-106 21.5t-86 60.5t-57.5 90t-20.5 113z" />
-<glyph unicode="&#x2026;" horiz-adv-x="2000" d="M156 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5zM834 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5zM1511 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5 t-130 -54.5t-130 54.5t-52 134.5z" />
-<glyph unicode="&#x202f;" horiz-adv-x="365" />
-<glyph unicode="&#x2039;" horiz-adv-x="598" d="M100 410v213l275 295l112 -91l-227 -311l227 -311l-112 -90z" />
-<glyph unicode="&#x203a;" horiz-adv-x="598" d="M111 205l227 311l-227 311l112 91l275 -295v-213l-275 -295z" />
-<glyph unicode="&#x205f;" horiz-adv-x="457" />
-<glyph unicode="&#x20ac;" d="M43 440v142l111 8q-2 14 -2 26.5v26.5v26.5t2 26.5h-111v140l127 10q25 115 74 204t119.5 150.5t158.5 93t191 31.5q92 0 180 -41t154 -119l-168 -161q-39 39 -81 63.5t-96 24.5q-88 0 -146 -63.5t-83 -180.5h438v-152h-456v-43v-30.5t2 -28.5h372v-154h-352 q29 -113 87.5 -172t144.5 -59q59 0 103 28.5t85 81.5l166 -155q-74 -92 -168 -140.5t-205 -48.5q-193 0 -333 118t-187 347h-127z" />
-<glyph unicode="&#x2122;" horiz-adv-x="1396" d="M8 1206v178h551v-178h-178v-465h-195v465h-178zM647 741v643h227l78 -184l41 -137h8l43 137l76 184h230v-643h-191v197l23 236h-8l-109 -338h-133l-109 338h-8l23 -236v-197h-191z" />
-<glyph unicode="&#xe000;" horiz-adv-x="1013" d="M0 0v1014h1014v-1014h-1014z" />
-<glyph unicode="&#xfb01;" horiz-adv-x="1300" d="M49 780v224l135 10v55q0 80 19.5 151.5t64.5 125t117 84t174 30.5q63 0 115.5 -12t87.5 -25l-55 -221q-57 20 -105 21q-55 0 -86 -34t-31 -112v-61h183v-236h-183v-780h-301v780h-135zM844 1323q0 70 49 113t125 43q78 0 126 -43t48 -113t-48 -114t-126 -44 q-76 0 -125 44t-49 114zM868 0v1016h301v-1016h-301z" />
-<glyph unicode="&#xfb02;" horiz-adv-x="1284" d="M49 780v224l135 10v55q0 80 19.5 151.5t64.5 125t117 84t174 30.5q63 0 115.5 -12t87.5 -25l-55 -221q-57 20 -105 21q-55 0 -86 -34t-31 -112v-61h183v-236h-183v-780h-301v780h-135zM831 315v1121h301v-1133q0 -47 17.5 -65.5t35.5 -18.5h17.5t19.5 4l37 -223 q-25 -10 -62.5 -17.5t-88.5 -7.5q-78 0 -131.5 25t-85 69t-46 106.5t-14.5 139.5z" />
-</font>
-</defs></svg> 
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.ttf b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.ttf
deleted file mode 100644
index bf5f60a6654b6728bd8804436562f331a770af8c..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.ttf and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.woff b/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.woff
deleted file mode 100644
index 42ca5dc005aabb888fac8dbc810c5c20f88e67b4..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/fonts/sourcesanspro/sourcesanspro-700-normal-webfont.woff and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/i18n/en_US.csv b/app/design/frontend/Magento/plushe/i18n/en_US.csv
deleted file mode 100644
index 062b8524da10b28d63820646c9af9896d7d6f3d0..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/i18n/en_US.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-"%1 items","%1"
-"1 item","1"
-"My Cart (1 item)","My Cart (1)"
-"My Cart (%1 items)","My Cart (%1)"
diff --git a/app/design/frontend/Magento/plushe/images/banner1.jpg b/app/design/frontend/Magento/plushe/images/banner1.jpg
deleted file mode 100644
index 5f91054dab522771221d545690835a01f72e33cc..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/banner1.jpg and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/banner2.jpg b/app/design/frontend/Magento/plushe/images/banner2.jpg
deleted file mode 100644
index 6d00c1a05d5b0267f165ae6a843135851f3eaff5..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/banner2.jpg and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/banner3.jpg b/app/design/frontend/Magento/plushe/images/banner3.jpg
deleted file mode 100644
index fff706df31cc47159c1560b272b3129c8967f04a..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/banner3.jpg and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/banner4.jpg b/app/design/frontend/Magento/plushe/images/banner4.jpg
deleted file mode 100644
index efc84cbe21a2e99a70b33fc11603586107c8e4ec..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/banner4.jpg and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/blog_bg.png b/app/design/frontend/Magento/plushe/images/blog_bg.png
deleted file mode 100644
index f20b394d5a21879e9743f3f98b64071e1ff88042..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/blog_bg.png and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/express-checkout-retina.png b/app/design/frontend/Magento/plushe/images/express-checkout-retina.png
deleted file mode 100644
index cb7603592ef8fc83e7511a5399e592bf52ecce22..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/express-checkout-retina.png and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/header-bg.jpg b/app/design/frontend/Magento/plushe/images/header-bg.jpg
deleted file mode 100644
index 994156d1a36a237b84481ede705c9598c5794ec9..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/header-bg.jpg and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/info_photo.jpg b/app/design/frontend/Magento/plushe/images/info_photo.jpg
deleted file mode 100644
index dc150e4367e783cba98100101beaf054957f3a4d..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/info_photo.jpg and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/loader.gif b/app/design/frontend/Magento/plushe/images/loader.gif
deleted file mode 100644
index 53b5ac653eb1e7f42844e5fc0afa59a62110b086..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/loader.gif and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/logo.gif b/app/design/frontend/Magento/plushe/images/logo.gif
deleted file mode 100644
index 7f1dc1ad3c939aba615ac5f95e5d01a254659c2d..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/logo.gif and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/logo_notext.gif b/app/design/frontend/Magento/plushe/images/logo_notext.gif
deleted file mode 100644
index 133a77524368fb060a9e47c72b05a7240e75d68c..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/logo_notext.gif and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/main_image1.jpg b/app/design/frontend/Magento/plushe/images/main_image1.jpg
deleted file mode 100644
index 728174638d03156b34d6c3eceec19492ecc0971e..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/main_image1.jpg and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/social-links.png b/app/design/frontend/Magento/plushe/images/social-links.png
deleted file mode 100644
index 66eb6c9083e3b1f170c19963bf849ffcbf69241e..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/social-links.png and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/images/texture.png b/app/design/frontend/Magento/plushe/images/texture.png
deleted file mode 100644
index 2b5301b01cd63825074a43b5878e339f7c212f1d..0000000000000000000000000000000000000000
Binary files a/app/design/frontend/Magento/plushe/images/texture.png and /dev/null differ
diff --git a/app/design/frontend/Magento/plushe/js/jquery.dropdowns.js b/app/design/frontend/Magento/plushe/js/jquery.dropdowns.js
deleted file mode 100644
index 168f52bb2216bb1160500ec0abbf54a40e7c3952..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/js/jquery.dropdowns.js
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright  Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-;(function($, document) {
-    'use strict';
-
-    $.fn.dropdown = function(options) {
-        var defaults = {
-            parent: null,
-            autoclose: true,
-            btnArrow: '.arrow',
-            menu: '[data-target="dropdown"]',
-            activeClass: 'active'
-        };
-
-        var options = $.extend(defaults, options);
-        var actionElem = $(this),
-            self = this;
-
-        this.openDropdown = function(elem) {
-            elem
-                .addClass(options.activeClass)
-                .parent()
-                    .addClass(options.activeClass);
-
-            $(options.btnArrow, elem).text('â–²');
-        };
-
-        this.closeDropdown = function(elem) {
-            elem
-                .removeClass(options.activeClass)
-                .parent()
-                    .removeClass(options.activeClass);
-
-            $(options.btnArrow, elem).text('â–¼');
-        };
-
-        /* Reset all dropdowns */
-        this.reset = function(params) {
-            var params = params || {},
-                dropdowns = params.elems || actionElem;
-
-            dropdowns.each(function(index, elem) {
-                self.closeDropdown($(elem));
-            });
-        };
-
-        /* document Event bindings */
-        if(options.autoclose === true) {
-            $(document).on('click.hideDropdown', this.reset);
-            $(document).on('keyup.hideDropdown', function(e) {
-                var ESC_CODE = '27';
-
-                if (e.keyCode == ESC_CODE) {
-                    self.reset();
-                }
-            });
-        };
-
-        if (options.events) {
-            $.each(options.events, function(index, event) {
-                $(document).on(event.name, event.selector, event.action);
-            });
-        }
-
-        return this.each(function() {
-            var elem = $(this),
-                parent = $(options.parent) || elem.parent(),
-                menu = $(options.menu, parent) || $('.dropdown-menu', parent);
-
-            elem.off('click.toggleDropdown');
-            menu.off('click.preventMenuClosing');
-            elem.on('click.toggleDropdown', function() {
-                if(options.autoclose === true) {
-                    self.reset({elems: actionElem.not(elem)});
-                };
-                self[elem.hasClass('active') ? 'closeDropdown' : 'openDropdown'](elem);
-
-                return false;
-            });
-
-            menu.on('click.preventMenuClosing', function(e) {
-                e.stopPropagation();
-            });
-        });
-    };
-
-    $(document).ready(function() {
-        $('[data-toggle="dropdown"]').dropdown();
-    });
-})(window.jQuery, document);
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/js/navigation-menu.js b/app/design/frontend/Magento/plushe/js/navigation-menu.js
deleted file mode 100644
index 7debbcdda225501459cf33ce4fe82b53a7dbd22d..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/js/navigation-menu.js
+++ /dev/null
@@ -1,557 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright  Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-/*jshint jquery:true*/
-
-(function($) {
-    'use strict';
-
-    $.widget('mage.navigationMenu', {
-        options: {
-            itemsContainer: '> ul',
-            topLevel: 'li.level0',
-            topLevelSubmenu: '> .submenu',
-            topLevelHoverClass: 'hover',
-            expandedTopLevel: '.more',
-            hoverInTimeout: 300,
-            hoverOutTimeout: 500,
-            submenuAnimationSpeed: 200,
-            collapsable: true,
-            collapsableDropdownTemplate:
-                '<script type="text/x-jquery-tmpl">' +
-                    '<li class="level0 level-top more parent">' +
-                        '<div class="submenu">' +
-                            '<ul>{{html elems}}</ul>' +
-                        '</div>' +
-                    '</li>' +
-                '</script>'
-        },
-
-        _create: function() {
-            this.itemsContainer = $(this.options.itemsContainer, this.element);
-            this.topLevel = $(this.options.topLevel, this.element);
-            this.topLevelSubmenu = $(this.options.topLevelSubmenu, this.topLevel);
-
-            this._bind();
-        },
-
-        _init: function() {
-            if (this.options.collapsable) {
-                setTimeout($.proxy(function() {
-                    this._checkToCollapseOrExpand();
-                }, this), 100);
-            }
-        },
-
-        _bind: function() {
-            this._on({
-                'mouseenter > ul > li.level0': function(e) {
-                    if (!this.entered) { // fix IE bug with 'mouseenter' event
-                        this.timeoutId && clearTimeout(this.timeoutId);
-                        this.timeoutId = setTimeout($.proxy(function() {
-                            this._openSubmenu(e);
-                        }, this), this.options.hoverInTimeout);
-                        this.entered = true;
-                    }
-                },
-                'mouseleave > ul > li.level0': function(e) {
-                    this.entered = null;
-
-                    this.timeoutId && clearTimeout(this.timeoutId);
-                    this.timeoutId = setTimeout($.proxy(function() {
-                        this._closeSubmenu(e.currentTarget);
-                    }, this), this.options.hoverOutTimeout);
-                },
-                'click': function(e) {
-                    e.stopPropagation();
-                }
-            });
-
-            $(document)
-                .on('click.hideMenu', $.proxy(function(e) {
-                    var isOpened = this.topLevel.filter(function() {
-                        return $(this).data('opened');
-                    });
-
-                    if (isOpened) {
-                        this._closeSubmenu(null, false);
-                    }
-                }, this));
-
-            $(window)
-                .on('resize', $.proxy(function() {
-                    this.timeoutOnResize && clearTimeout(this.timeoutOnResize);
-                    this.timeoutOnResize = setTimeout($.proxy(function() {
-                        if (this.options.collapsable) {
-                            if ($(this.options.expandedTopLevel, this.element).length) {
-                                this._expandMenu();
-                            }
-                            this._checkToCollapseOrExpand();
-                        }
-                    }, this), 300);
-                }, this));
-        },
-
-        _openSubmenu: function(e) {
-            var menuItem = e.currentTarget;
-
-            if (!$(menuItem).data('opened')) {
-                this._closeSubmenu(menuItem, true, true);
-
-                $(this.options.topLevelSubmenu, menuItem)
-                    .slideDown(this.options.submenuAnimationSpeed, $.proxy(function() {
-                        $(menuItem).addClass(this.options.topLevelHoverClass);
-                        $(menuItem).data('opened', true);
-                    }, this));
-            } else if ($(e.target).closest(this.options.topLevel)) {
-                $(e.target)
-                    .addClass(this.options.topLevelHoverClass)
-                    .siblings(this.options.topLevel)
-                        .removeClass(this.options.topLevelHoverClass);
-            }
-        },
-
-        _closeSubmenu: function(menuItem, excludeCurrent, fast) {
-            var topLevel = $(this.options.topLevel, this.element),
-                activeSubmenu = $(this.options.topLevelSubmenu, menuItem || null);
-
-            $(this.options.topLevelSubmenu, topLevel)
-                .filter(function() {
-                    return excludeCurrent ? $(this).not(activeSubmenu) : true;
-                })
-                .slideUp(fast ? 0 : this.options.submenuAnimationSpeed);
-
-            topLevel
-                .removeClass(this.options.topLevelHoverClass)
-                .data('opened', false);
-        },
-
-        _checkToCollapseOrExpand: function() {
-            if ($("html").hasClass("lt-640") || $("html").hasClass("w-640")) {
-                return;
-            }
-
-            var navWidth = this.itemsContainer.width(),
-                totalWidth = 0,
-                startCollapseIndex = 0;
-
-            $.each($(this.options.topLevel, this.element), function(index, item) {
-                totalWidth = totalWidth + $(item).outerWidth(true);
-
-                if (totalWidth > navWidth && !startCollapseIndex) {
-                    startCollapseIndex = index - 2;
-                }
-            });
-
-            this[startCollapseIndex ? '_collapseMenu' : '_expandMenu'](startCollapseIndex);
-        },
-
-        _collapseMenu: function(startCollapseIndex) {
-            this.elemsToCollapse = this.topLevel.filter(function(index) {
-                return index > startCollapseIndex;
-            });
-            this.elemsToCollapseClone = $('<div></div>').append(this.elemsToCollapse.clone()).html();
-
-            this.collapsableDropdown = $(this.options.collapsableDropdownTemplate).tmpl({elems: this.elemsToCollapseClone});
-
-            this.itemsContainer
-                .append(this.collapsableDropdown);
-
-            this.elemsToCollapse.detach();
-        },
-
-        _expandMenu: function() {
-            if ($.browser.version != 8.0) {
-                this.elemsToCollapse && this.elemsToCollapse.appendTo(this.itemsContainer);
-                this.collapsableDropdown && this.collapsableDropdown.remove();
-            } else {
-                setTimeout($.proxy(function() {
-                    var moreWrapper = $('.more', this.element);
-
-                    if (moreWrapper.length > 1) {
-                        moreWrapper.eq(moreWrapper.length - 1).remove();
-                    }
-                }, this), 1);
-            }
-        },
-
-        _destroy: function() {
-            this._expandMenu();
-        }
-    });
-
-    /*
-     * Provides "Continium" effect for submenu
-     * */
-    $.widget('mage.navigationMenu', $.mage.navigationMenu, {
-        options: {
-            parentLevel: '> ul > li.level0',
-            submenuAnimationSpeed: 150,
-            submenuContiniumEffect: false
-        },
-
-        _init: function() {
-            this._super();
-            this._applySubmenuStyles();
-        },
-
-        _applySubmenuStyles: function() {
-            $(this.options.topLevelSubmenu, $(this.options.topLevel, this.element))
-                .removeAttr('style');
-
-            $(this.options.topLevelSubmenu, $(this.options.parentLevel, this.element))
-                .css({
-                    display: 'block',
-                    height: 0,
-                    overflow: 'hidden'
-                });
-        },
-
-        _openSubmenu: function(e) {
-            var menuItem = e.currentTarget,
-                submenu = $(this.options.topLevelSubmenu, menuItem),
-                openedItems = $(this.options.topLevel, this.element).filter(function() {
-                    return $(this).data('opened');
-                });
-
-            if (submenu.length) {
-                this.heightToAnimate = $(this.options.itemsContainer, submenu).outerHeight(true);
-
-                if (openedItems.length) {
-                    this._closeSubmenu(menuItem, true, this.heightToAnimate, $.proxy(function() {
-                        submenu.css({
-                            height: 'auto'
-                        });
-                        $(menuItem)
-                            .addClass(this.options.topLevelHoverClass);
-                    }, this), e);
-                } else {
-                    submenu.animate({
-                        height: this.heightToAnimate
-                    }, this.options.submenuAnimationSpeed, $.proxy(function() {
-                        $(menuItem)
-                            .addClass(this.options.topLevelHoverClass);
-                    }, this));
-                }
-
-                $(menuItem)
-                    .data('opened', true);
-            } else {
-                this._closeSubmenu(menuItem);
-            }
-        },
-
-        _closeSubmenu: function(menuItem, excludeCurrent, heightToAnimate, callback, e) {
-            var topLevel = $(this.options.topLevel, this.itemsContainer),
-                expandedTopLevel = e && $(e.target).closest(this.options.expandedTopLevel);
-
-            if (!excludeCurrent) {
-                $(this.options.topLevelSubmenu, $(this.options.parentLevel, this.element))
-                    .animate({
-                        height: 0
-                    });
-
-                topLevel
-                    .data('opened', false)
-                    .removeClass(this.options.topLevelHoverClass);
-            } else {
-                var prevOpenedItem = topLevel.filter(function() {
-                        return $(this).data('opened');
-                    }),
-                    prevOpenedSubmenu = $(this.options.topLevelSubmenu, prevOpenedItem);
-
-                prevOpenedSubmenu.animate({
-                    height: heightToAnimate
-                }, this.options.submenuAnimationSpeed, 'linear', function() {
-                    $(this).css({
-                        height: 0
-                    });
-                    callback && callback();
-                });
-
-                prevOpenedItem
-                    .data('opened', false)
-                    .removeClass(this.options.topLevelHoverClass);
-            }
-        },
-
-        _collapseMenu: function() {
-            this._superApply(arguments);
-            this._applySubmenuStyles();
-        }
-    });
-
-    //  Responsive menu
-    $.widget('mage.navigationMenu', $.mage.navigationMenu, {
-        options: {
-            responsive: false,
-            origNavPlaceholder: '.page.header',
-            mainContainer: 'body',
-            pageWrapper: '.page.wrapper',
-            openedMenuClass: 'opened',
-            toggleActionPlaceholder: '.block.search',
-            itemWithSubmenu: 'li.parent',
-            titleWithSubmenu: 'li.parent > a',
-            submenu: 'li.parent > .submenu',
-            toggleActionTemplate:
-                '<script type="text/x-jquery-tmpl">' +
-                    '<span data-action="toggle-nav" class="action toggle nav">Toggle Nav</span>' +
-                '</script>',
-            submenuActionsTemplate:
-                '<script type="text/x-jquery-tmpl">' +
-                    '<li class="action back">' +
-                        '<a><span>${ category }</span></a>' +
-                    '</li>' +
-                    '<li class="action all">' +
-                        '<a href="${ categoryURL }">All ${ category }</a>' +
-                    '</li>' +
-                '</script>'
-        },
-
-        _init: function() {
-            this._super();
-
-            this.mainContainer = $(this.options.mainContainer);
-            this.pageWrapper = $(this.options.pageWrapper);
-            this.toggleAction = $(this.options.toggleActionTemplate).tmpl({});
-
-            if (this.options.responsive) {
-                mediaCheck({
-                    media: '(max-width: 640px)',
-                    entry: $.proxy(function() {
-                        this._toggleMobileMode();
-                    }, this),
-                    exit: $.proxy(function() {
-                        this._toggleDesktopMode();
-                    }, this)
-                });
-            }
-        },
-
-        _bind: function() {
-            this._super();
-            this._bindDocumentEvents();
-        },
-
-        _bindDocumentEvents: function() {
-            if (!this.eventsBound) {
-                $(document)
-                    .on('click.toggleMenu', '.action.toggle.nav', $.proxy(function(e) {
-                        if ($(this.element).data('opened')) {
-                            this._hideMenu();
-                        } else {
-                            this._showMenu();
-                        }
-                        e.stopPropagation();
-                        this.mobileNav.scrollTop(0);
-                        this._fixedBackLink();
-                    }, this))
-                    .on('click.hideMenu', this.options.pageWrapper, $.proxy(function() {
-                        if ($(this.element).data('opened')) {
-                            this._hideMenu();
-                            this.mobileNav.scrollTop(0);
-                            this._fixedBackLink();
-                        }
-                    }, this))
-                    .on('click.showSubmenu', this.options.titleWithSubmenu, $.proxy(function(e) {
-                        this._showSubmenu(e);
-
-                        e.preventDefault();
-                        this.mobileNav.scrollTop(0);
-                        this._fixedBackLink();
-                    }, this))
-                    .on('click.hideSubmenu', '.action.back', $.proxy(function(e) {
-                        this._hideSubmenu(e);
-                        this.mobileNav.scrollTop(0);
-                        this._fixedBackLink();
-                    }, this));
-
-                this.eventsBound = true;
-            }
-        },
-
-        _showMenu: function() {
-            $(this.element).data('opened', true);
-            this.mainContainer.add( "html" ).addClass(this.options.openedMenuClass);
-        },
-
-        _hideMenu: function() {
-            $(this.element).data('opened', false);
-            this.mainContainer.add( "html" ).removeClass(this.options.openedMenuClass);
-        },
-
-        _showSubmenu: function(e) {
-            var submenu = $(e.currentTarget).siblings('.submenu');
-
-            submenu
-                .addClass('opened')
-                .closest('.navigation > ul')
-                    .css({
-                        height: submenu.outerHeight(true)
-                    });
-        },
-
-        _hideSubmenu: function(e) {
-            var submenuSelector = '.submenu',
-                submenu = $(e.currentTarget).closest(submenuSelector);
-
-            submenu.removeClass('opened');
-
-            if (!$('.submenu.opened').length) {
-                submenu
-                    .closest('.navigation > ul')
-                        .removeAttr('style');
-            } else {
-                submenu
-                    .closest('.navigation > ul')
-                    .css({
-                        height: submenu.closest('.submenu.opened').outerHeight(true)
-                    });
-            }
-        },
-
-        _renderSubmenuActions: function() {
-            $.each($(this.options.itemWithSubmenu), $.proxy(function(index, item) {
-                var actions = $(this.options.submenuActionsTemplate).tmpl({
-                        category: $('> a > span', item).text(),
-                        categoryURL: $('> a', item).attr('href')
-                    }),
-                    submenu = $('> .submenu', item),
-                    items = $('> ul', submenu);
-
-                items.prepend(actions);
-
-//                submenu
-//                    .css({
-//                        height: $(window).outerHeight(true) - 1
-//                    });
-            }, this));
-        },
-
-        _toggleMobileMode: function() {
-            this._expandMenu();
-
-            $(this.options.topLevelSubmenu, $(this.options.topLevel, this.element))
-                .removeAttr('style');
-
-            this.toggleAction.insertBefore(this.options.toggleActionPlaceholder);
-            this.mobileNav = $(this.element).detach().clone();
-            this.mainContainer.prepend(this.mobileNav);
-            this.mobileNav.find('> ul').addClass('nav');
-            this._insertExtraItems();
-            this.mobileNav.scroll($.proxy(
-                function() {
-                    this._fixedBackLink();
-                }, this
-            ));
-
-            this._renderSubmenuActions();
-            this._bindDocumentEvents();
-        },
-
-        _toggleDesktopMode: function() {
-            this.mobileNav && this.mobileNav.remove();
-            this.toggleAction.detach();
-            $(this.element).insertAfter(this.options.origNavPlaceholder);
-
-            $(document)
-                .off('click.toggleMenu', '.action.toggle.nav')
-                .off('click.hideMenu', this.options.pageWrapper)
-                .off('click.showSubmenu', this.options.titleWithSubmenu)
-                .off('click.hideSubmenu', '.action.back');
-
-            this.eventsBound = false;
-
-            this._applySubmenuStyles();
-        },
-
-        _insertExtraItems: function() {
-            if ($('.header > .panel .switcher').length) {
-                var settings = $('.header > .panel')
-                    .clone()
-                    .addClass('settings');
-
-                this.mobileNav.prepend(settings);
-
-                settings.wrapInner('<div class="content"></div>');
-                settings.prepend('<div class="title">Settings</div>');
-
-                settings.find('> .title')
-                    .dropdown({
-                        autoclose: false,
-                        menu: '> .content'
-                    });
-
-                settings.find('.switcher.language .options > strong')
-                    .dropdown({
-                        autoclose: false,
-                        menu: '.switcher.language .options > ul'
-                    });
-
-                settings.find('.switcher.currency .options > strong')
-                    .dropdown({
-                        autoclose: false,
-                        menu: '.switcher.currency .options > ul'
-                    });
-            }
-
-            if ($('.header > .content > .links li').length) {
-                var account = $('.header > .content > .links')
-                    .clone()
-                    .addClass('account');
-
-                this.mobileNav.prepend(account);
-
-                account.find('.customer.welcome > .customer')
-                    .dropdown({
-                        autoclose: false,
-                        menu: '.customer.welcome > .menu'
-                    });
-            }
-        },
-
-        _fixedBackLink: function() {
-            var linksBack = this.mobileNav.find('.submenu .action.back');
-            var linkBack = this.mobileNav.find('.submenu.opened > ul > .action.back').last();
-
-            linksBack.removeClass('fixed');
-
-            if(linkBack.length) {
-                var subMenu = linkBack.parent(),
-                    navOffset = this.mobileNav.find('.nav').position().top,
-                    linkBackHeight = linkBack.height();
-
-                if (navOffset <= 0) {
-                    linkBack.addClass('fixed');
-                    subMenu.css({
-                        paddingTop: linkBackHeight
-                    })
-                } else {
-                    linkBack.removeClass('fixed');
-                    subMenu.css({
-                        paddingTop: 0
-                    })
-                }
-            }
-        }
-    });
-})(window.jQuery);
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/js/responsive.js b/app/design/frontend/Magento/plushe/js/responsive.js
deleted file mode 100644
index 2628c64764603cc6e39cda882f608fb0a731bca4..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/js/responsive.js
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright  Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-
-;
-(function($) {
-    'use strict';
-
-    $(document).ready(function(){
-        mediaCheck({
-            media: '(max-width: 640px)',
-
-            // Switch to Mobile Version
-            entry: function() {
-                // minicart
-                $('.action.showcart').addClass('is-disabled');
-
-                $('.action.showcart').on( "click", function() {
-                    if ($(this).hasClass('is-disabled')) {
-                        window.location = $(this).attr("href");
-                    }
-                });
-
-                $('.action.toggle.checkout.progress')
-                    .on('click.gotoCheckoutProgress', function(e){
-                        var myWrapper = '#checkout-progress-wrapper';
-                        scrollTo(myWrapper + ' .title');
-                        $(myWrapper + ' .title').addClass('active');
-                        $(myWrapper + ' .content').show();
-                    });
-
-                $('body')
-                    .on('click.checkoutProgress', '#checkout-progress-wrapper .title', function(e){
-                        $(this).toggleClass('active');
-                        $('#checkout-progress-wrapper .content').toggle();
-                    });
-
-                (function() {
-                    var productInfoMain = $('.product.info.main'),
-                        productInfoAdditional = $("#product-info-additional");
-
-                    if (!productInfoAdditional.length) {
-
-                        var productTitle = productInfoMain.find(".page.title.product").clone(),
-                            productStock = productInfoMain.find(".stock:not(.alert)").clone();
-
-                        productInfoAdditional = $("<div/>", {
-                            id: "product-info-additional",
-                            addClass: "product info additional"
-                        });
-
-                        $('.catalog-product-view .column.main')
-                            .prepend(productInfoAdditional);
-
-                        productInfoAdditional
-                            .append(productTitle)
-                            .append(productStock);
-
-                    } else {
-                        productInfoAdditional.removeClass("hidden");
-                    }
-
-                    productInfoMain.addClass("responsive");
-
-                })();
-                var galleryElement = $('[data-role=media-gallery]');
-                setTimeout(function(){
-                    if (galleryElement.length && galleryElement.data('zoom')) {
-                        galleryElement.zoom('disable');
-                    }
-                    if (galleryElement.length && galleryElement.data('gallery')) {
-                        galleryElement.gallery("option","disableLinks",false);
-                    }
-                    if (galleryElement.length && galleryElement.data('galleryFullScreen')) {
-                        galleryElement.galleryFullScreen('disable');
-                    }
-                }, 2000);
-
-            },
-
-            // Switch to Desktop Version
-            exit: function() {
-                // minicart
-                $('.action.showcart').removeClass('is-disabled');
-
-                (function() {
-
-                    var productInfoMain = $('.product.info.main'),
-                        productInfoAdditional = $("#product-info-additional");
-
-                    if(productInfoAdditional.length) {
-                        productInfoAdditional.addClass("hidden");
-                        productInfoMain.removeClass("responsive");
-                    }
-
-                })();
-
-                var galleryElement = $('[data-role=media-gallery]');
-                if (galleryElement.length && galleryElement.data('zoom')) {
-                    galleryElement.zoom('enable');
-                                    }
-                if (galleryElement.length && galleryElement.data('gallery')) {
-                    galleryElement.gallery("option","disableLinks",true);
-                }
-                if (galleryElement.length && galleryElement.data('galleryFullScreen')) {
-                    galleryElement.galleryFullScreen('enable');
-                }
-            }
-        });
-    });
-})(window.jQuery);
diff --git a/app/design/frontend/Magento/plushe/js/sticky.js b/app/design/frontend/Magento/plushe/js/sticky.js
deleted file mode 100644
index 64000be11e584f87765e09849300b8041f778630..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/js/sticky.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-/*jshint browser:true jquery:true*/
-(function($, window) {
-    $.widget('mage.sticky', {
-        options: {
-            container: ''
-        },
-
-        /**
-         * Bind handlers to scroll event
-         * @private
-         */
-        _create: function() {
-            $(window).on('scroll', $.proxy(this._setTop, this));
-        },
-
-        /**
-         * float Block on windowScroll
-         * @private
-         */
-        _setTop: function() {
-            if ((this.element).is(':visible')) {
-                var startOffset = this.element.parent().offset().top + parseInt(this.element.css("margin-top")),
-                    currentOffset = $(document).scrollTop(),
-                    parentHeight = $(this.options.container).height() - parseInt(this.element.css("margin-top")),
-                    discrepancyOffset = currentOffset - startOffset;
-
-                if (discrepancyOffset >= 0) {
-                    if (discrepancyOffset + this.element.innerHeight() < parentHeight) {
-                        this.element.css('top', discrepancyOffset);
-                    }
-                } else {
-                    this.element.css('top', 0);
-                }
-            }
-        }
-    });
-})(jQuery, window);
diff --git a/app/design/frontend/Magento/plushe/js/tabs.js b/app/design/frontend/Magento/plushe/js/tabs.js
deleted file mode 100644
index 4deecc66b1501a7fce409758280561788306e221..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/js/tabs.js
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright  Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-;
-(function($) {
-    'use strict';
-
-    $.fn.terms = function(args){
-
-        // default
-        var defaults = {
-            start:0,
-            wrapper:'',
-            showAnchor:'',
-            effects:'slide'
-        };
-
-        var options = $.extend(defaults, args);
-
-        this.each(function() {
-            var obj = $(this),
-                wrapper = (options.wrapper !== '') ? '> ' + options.wrapper : '',
-                switches = $(wrapper + '> [data-section="title"] > [data-toggle="switch"]',obj),
-                terms = $(wrapper + '> [data-section="content"]',obj),
-                t = switches.length,
-                marginTop = $(switches[0]).closest('[data-section="title"]').css('position') == 'absolute' ? 0 : null,
-                title,
-                current,
-
-            init = function() {
-                if (t > 0) {
-                    if($(switches[0]).closest('[data-section="title"]').css('display')=='table-cell') {
-                        obj.addClass('adjusted');
-                        var linksList;
-                        if (obj[0].tagName=='DL') {
-                            linksList = jQuery('<dd>');
-                        } else {
-                            linksList = jQuery('<div>');
-                        }
-                        linksList.addClass('sections-nav');
-                        obj.prepend(linksList);
-
-                        for (var i=0; i < t; i++) {
-                            title = $(switches[i]).html();
-                            var classes = $(switches[i]).closest('[data-section="title"]').attr('class');
-                            var dataSection = $(switches[i]).closest('[data-section="title"]').attr('data-section');
-                            var itemHref = $(switches[i]).attr('href');
-                            var itemClass = $(switches[i]).attr('class');
-                            $(switches[i]).parent('[data-section="title"]').hide();
-                            switches[i] = jQuery('<a/>',{
-                                href: itemHref,
-                                'class' : itemClass,
-                                html: title
-                            }).appendTo(linksList);
-                            $(switches[i]).wrap('<strong class="'+classes+'" data-section="'+dataSection+'" />');
-                        }
-                    }
-                    $(switches).each(function(ind,el){
-                        $(el).click(function(event){
-                            event.preventDefault();
-                            showItem(ind);
-                            });
-                        if (marginTop !== null) {
-                            $(el).closest('[data-section="title"]').css({'top' : marginTop + 'px'});
-                            marginTop = marginTop + $(el).closest('[data-section="title"]').outerHeight(true);
-                            obj.css({'min-height' : marginTop + 'px' });
-                        }
-                    });
-
-                    var fromUrl = false;
-                    if (window.location.hash.length > 0) {
-                        $(terms).each(function(ind,el) {
-                            if ( '#info-'+$(el).attr('id') == window.location.hash) {
-                                showItem(ind);
-                                $('html, body').animate({
-                                    scrollTop: $(switches[ind]).offset().top
-                                }, 700);
-                                fromUrl = true;
-                            }
-                        });
-                    }
-                    if (fromUrl === false) {
-                        if ( options.start % 1 === 0 ) {
-                            current = options.start + 1;
-                            showItem(options.start);
-                        } else {
-                            $(terms).each(function(ind,el) {
-                                if ( $(el).attr('id') == options.start) {
-                                    current = ind + 1;
-                                    showItem(ind);
-                                    $('html, body').animate({
-                                        scrollTop: $(switches[ind]).offset().top
-                                    }, 700);
-                                }
-                            });
-                        }
-                    }
-                }
-            },
-
-
-            showItem = function(item) {
-                if (item != current && !$(switches[item]).closest('[data-section="title"]').hasClass('disabled') ) {
-                    $(switches).closest('[data-section="title"]').removeClass('active');
-                    if (options.wrapper !== '') {
-                        $(switches).parent().parent().removeClass('active');
-                    }
-                    $(terms).removeClass('active');
-                    $(switches[item]).closest('[data-section="title"]').addClass('active');
-                    if (options.wrapper !== '') {
-                        $(switches[current]).parent().parent().addClass('active');
-                    }
-                    $(terms[item]).addClass('active');
-
-                    /*if ($(terms[item]).attr('id')) {
-                        scr = document.body.scrollTop;
-                        window.location.hash='#tab-' + $(terms[item]).attr('id');
-                        document.body.scrollTop = scr;
-                    }*/
-                    current = item;
-                } else if (
-                            // Check if this is accordion width as criteria for now
-                            (obj.attr('data-sections') == 'accordion'
-                                || $(switches[item]).closest('[data-section="title"]').css('width') == obj.css('width')
-                            )
-                            && item == current && !$(switches[item]).closest('[data-section="title"]').hasClass('disabled')
-                        ) {
-                    $(switches).closest('[data-section="title"]').removeClass('active');
-                    if (options.wrapper !== '') {
-                        $(switches).parent().parent().removeClass('active');
-                    }
-                    $(terms).removeClass('active');
-                    current = -1;
-                }
-            },
-
-            applyEffect = function(item, effect) {
-            };
-
-            init();
-        });
-    };
-    $(document).ready(function() {
-        $('[data-sections]').terms();
-    });
-
-})(window.jQuery);
-
-
-
diff --git a/app/design/frontend/Magento/plushe/js/theme.js b/app/design/frontend/Magento/plushe/js/theme.js
deleted file mode 100644
index a56c6586f05bd9386fd6912a6a3cee11f8a8c36e..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/js/theme.js
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright  Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-
-;
-(function($) {
-    'use strict';
-
-    function listScroll() {
-        var list = $('[data-action="scroll"]').addClass('carousel');
-        var listInner = $('> .minilist.items', list);
-        var items = $('.item', list);
-        var itemWidth = $(items).length ? $(items[0]).outerWidth() : null;
-        var perpage = (itemWidth !== null) ? Math.floor(list.outerWidth()/itemWidth) : null;
-        var pages = (perpage !== null) ? Math.floor(items.length/perpage) : null;
-        var page=0;
-        for (var i=0 ; i < perpage; i++) {
-            $(items[i + page*perpage]).addClass('shown');
-        };
-        for (var i=perpage; i < items.length; i++) {
-            $(items[i + page*perpage]).addClass('hidden');
-        };
-        if ( itemWidth*items.length > list.outerWidth() ) {
-                var next = $('<button class="action next" type="button"><span>Next</span></button>');
-                var previous = $('<button class="action previous" type="button"><span>Previous</span></button>').attr('disabled', 'disabled');
-                list.append(previous);
-                list.append(next);
-                listInner.wrap('<div class="items-wrapper" />');
-                $('.items-wrapper').css('width', itemWidth*perpage);
-                next.on('click.itemsScroll', function() {
-                            list.addClass('animation');
-                            items.removeClass('shown');
-                            items.removeClass('hidden');
-                            listInner.animate({
-                            left: '-=' + itemWidth*perpage,
-                        }, 400, 'easeInOutCubic', function() {
-                            // Animation complete.
-                            page = page + 1;
-                            for (var i=0 ; i < perpage; i++) {
-                                $(items[i + page*perpage]).addClass('shown');
-                            };
-                            for (var i=perpage; i < items.length; i++) {
-                                $(items[i + page*perpage]).addClass('hidden');
-                            };
-                            if (window.console) {
-                                console.log(i);
-                            }
-                            previous.removeAttr('disabled');
-                            if (page == pages) {
-                                next.attr('disabled', 'disabled');
-                            }
-                            list.removeClass('animation');
-                        });
-                    });
-                previous.on('click.itemsScroll', function() {
-                            list.addClass('animation');
-                            items.removeClass('shown');
-                            items.removeClass('hidden');
-                            listInner.animate({
-                            left: '+=' + itemWidth*perpage,
-                        }, 400, 'easeInOutCubic', function() {
-                            // Animation complete.
-                            page = page - 1;
-                            for (var i=0 ; i < perpage; i++) {
-                                $(items[i + page*perpage]).addClass('shown');
-                            };
-                            for (var i=perpage; i < items.length; i++) {
-                                $(items[i + page*perpage]).addClass('hidden');
-                            };
-                            next.removeAttr('disabled');
-                            if (page == 0) {
-                                previous.attr('disabled', 'disabled');
-                            }
-                            list.removeClass('animation');
-                        });
-                    });
-
-        }
-    }
-
-    $(document).ready(function() {
-        listScroll();
-
-        if ($('body').hasClass('checkout-cart-index')) {
-            $('.cart.summary > .block > .title').dropdown({autoclose:false, menu:'.title + .content'});
-            if ($('#co-shipping-method-form .fieldset.rates').length > 0 && $('#co-shipping-method-form .fieldset.rates :checked').length === 0 ) {
-                $('.block.shipping > .title').addClass('active');
-                $('.block.shipping').addClass('active');
-            }
-        }
-
-        if ($('[role="navigation"]').length) {
-            $('[role="navigation"]').navigationMenu({
-                responsive: true,
-                submenuContiniumEffect: true
-            });
-        } else {
-            $('<nav class="navigation" role="navigation"></nav>').navigationMenu({
-                responsive: true,
-                submenuContiniumEffect: true
-            });
-        }
-
-    });
-
-})(window.jQuery);
\ No newline at end of file
diff --git a/app/design/frontend/Magento/plushe/mage/gallery.css b/app/design/frontend/Magento/plushe/mage/gallery.css
deleted file mode 100644
index 225705dc644ede0b66476c6988d7964bdede270e..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/mage/gallery.css
+++ /dev/null
@@ -1,223 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @category    Mage
- * @package     js
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
-@font-face {
-  font-family: 'icons-blank-theme';
-  src: url('../fonts/Blank-Theme-Icons/Blank-Theme-Icons.eot');
-  src: url('../fonts/Blank-Theme-Icons/Blank-Theme-Icons.eot?#iefix') format('embedded-opentype'), url('../fonts/Blank-Theme-Icons/Blank-Theme-Icons.woff') format('woff'), url('../fonts/Blank-Theme-Icons/Blank-Theme-Icons.ttf') format('truetype'), url('../fonts/Blank-Theme-Icons/Blank-Theme-Icons.svg#icons-blank-theme') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-.loading-mask {
-  position: relative;
-  z-index: 9999;
-}
-.loading-mask:before {
-  content: '';
-  position: absolute;
-  left: 0;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  background-color: rgba(204, 204, 204, 0.5);
-  background-image: url('../images/loader-1.gif');
-  background-position: 50% 50%;
-  background-repeat: no-repeat;
-}
-.loading-mask .loader > p {
-  display: none;
-}
-.ui-widget-overlay {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  background: rgba(204, 204, 204, 0.5);
-}
-.zoom.lense {
-  position: absolute;
-  z-index: 9999;
-  overflow: hidden;
-  background: #ffffff;
-  outline: 1px solid #d1d1d1;
-}
-.zoom.lightbox {
-  position: fixed;
-  height: auto !important;
-  width: auto !important;
-  left: 20px !important;
-  top: 20px !important;
-  right: 20px;
-  bottom: 20px;
-  border: 1px solid #d1d1d1;
-  background-color: #ffffff;
-  -webkit-box-shadow: 0 5px 5px rgba(0, 0, 0, 0.2);
-  -moz-box-shadow: 0 5px 5px rgba(0, 0, 0, 0.2);
-  box-shadow: 0 5px 5px rgba(0, 0, 0, 0.2);
-}
-.zoom.lightbox .img.photo.container img {
-  position: absolute;
-  max-width: 100%;
-  max-height: 100%;
-  margin: auto;
-  left: 0 !important;
-  right: 0 !important;
-  top: 0 !important;
-  bottom: 0 !important;
-  display: block;
-}
-.zoom.lightbox .ui-dialog-titlebar-close:before {
-  background-image: url('../images/sprite-gallery.png');
-}
-.zoom.lightbox .ui-dialog-titlebar-close {
-  position: absolute;
-  line-height: 1;
-  top: 20px;
-  right: 20px;
-  display: inline-block;
-}
-.zoom.lightbox .ui-dialog-titlebar-close > span {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-}
-.zoom.lightbox .ui-dialog-titlebar-close:before {
-  content: '';
-  display: inline-block;
-  width: 13px;
-  height: 13px;
-  line-height: 13px;
-  vertical-align: middle;
-  background-image: url('../images/sprite-gallery.svg');
-  background-position: -60px 0;
-  background-repeat: no-repeat;
-  margin: 0;
-}
-.zoom.lightbox .gallery.control.prev:before,
-.zoom.lightbox .gallery.control.next:before {
-  background-image: url('../images/sprite-gallery.png');
-}
-.zoom.lightbox .gallery.control.prev,
-.zoom.lightbox .gallery.control.next {
-  position: absolute;
-  top: 50%;
-  margin-top: -57px;
-  display: inline-block;
-}
-.zoom.lightbox .gallery.control.prev:before,
-.zoom.lightbox .gallery.control.next:before {
-  content: '';
-  display: inline-block;
-  width: 29px;
-  height: 57px;
-  line-height: 57px;
-  vertical-align: middle;
-  background-image: url('../images/sprite-gallery.svg');
-  background-position: 0 0;
-  background-repeat: no-repeat;
-  margin: 0;
-}
-.zoom.lightbox .gallery.control.prev {
-  left: 20px;
-}
-.zoom.lightbox .gallery.control.next {
-  right: 20px;
-}
-.zoom.lightbox .gallery.control.next:before {
-  background-position: -30px 0px;
-}
-.zoom.lightbox .product.photo.main {
-  position: absolute;
-  top: 33px;
-  left: 49px;
-  right: 49px;
-  bottom: 130px;
-  margin: 0 20px 72px 20px;
-}
-.zoom.lightbox .product.photo.main:before {
-  content: "";
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-  z-index: 1;
-}
-.zoom.lense .zoom.inner > img {
-  position: absolute;
-}
-.zoom.lightbox .product.photo.thumbs {
-  width: 100%;
-  padding: 15px 15px 15px 15px;
-  background: #ffffff;
-  position: absolute;
-  bottom: 0;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.zoom.lightbox .product.photo.thumbs ul {
-  margin: 0;
-  padding: 0;
-  list-style-type: none;
-  list-style-image: none;
-  white-space: nowrap;
-  position: relative;
-  vertical-align: top;
-  overflow: auto;
-}
-.zoom.lightbox .product.photo.thumbs .item.thumb {
-  display: inline-block;
-  margin: 0 0 0 20px;
-  line-height: 1;
-}
-.zoom.lightbox .product.photo.thumbs li:first-child {
-  margin-left: 0;
-}
-.zoom.lightbox .product.photo.thumbs a {
-  border: 1px solid transparent;
-  display: block;
-  outline: none;
-}
-.zoom.lightbox .product.photo.thumbs .active {
-  border-color: #ff5f10;
-}
-.zoom.lightbox .product.photo.thumbs .item.thumb img {
-  border: none;
-  position: static;
-}
-.zoom.lightbox .gallery.control {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
diff --git a/app/design/frontend/Magento/plushe/media/preview.jpg b/app/design/frontend/Magento/plushe/media/preview.jpg
index c15840788eda96da49e92c32fe285a3130126ea0..9352afc4f89f9809871da30012d82deff873a126 100644
Binary files a/app/design/frontend/Magento/plushe/media/preview.jpg and b/app/design/frontend/Magento/plushe/media/preview.jpg differ
diff --git a/app/design/frontend/Magento/plushe/theme.xml b/app/design/frontend/Magento/plushe/theme.xml
index d4b9fe5dc8085baea1b24509916d05b37472e9a6..ed8f817e911f0d31bd3a696985a76da6c8a3a785 100644
--- a/app/design/frontend/Magento/plushe/theme.xml
+++ b/app/design/frontend/Magento/plushe/theme.xml
@@ -26,7 +26,8 @@
 -->
 <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/Magento/Framework/Config/etc/theme.xsd">
     <title>Magento Plushe</title>
-    <version>1.0.0.0</version>
+    <version>2.0.0.0</version>
+    <parent>Magento/blank</parent>
     <media>
         <preview_image>media/preview.jpg</preview_image>
     </media>
diff --git a/app/design/frontend/Magento/plushe/view.xml b/app/design/frontend/Magento/plushe/view.xml
deleted file mode 100644
index e890597439efcc7e7ee0a417aa7e0e6cedd03a25..0000000000000000000000000000000000000000
--- a/app/design/frontend/Magento/plushe/view.xml
+++ /dev/null
@@ -1,298 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Academic Free License (AFL 3.0)
- * that is bundled with this package in the file LICENSE_AFL.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/afl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @category    Magento
- * @package     Design
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
- */
--->
-<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/Magento/Framework/Config/etc/view.xsd">
-    <vars module="Magento_Catalog">
-        <var name="product_small_image_sidebar_size">100</var>  <!-- Override for small product image -->
-        <var name="product_base_image_size">275</var>           <!-- Override for base product image -->
-        <var name="product_base_image_icon_size">48</var>       <!-- Base product image icon size -->
-
-        <var name="product_list_image_size">166</var>           <!-- New Product image size used in product list -->
-        <var name="product_zoom_image_size">370</var>           <!-- New Product image size used for zooming -->
-
-        <var name="product_image_white_borders">0</var>
-
-        <var name="review_page_product_image:type">small_image</var>
-        <var name="review_page_product_image:width">285</var>
-        <var name="review_page_product_image:ratio">1</var>
-        <var name="review_page_product_image:height">285</var>
-
-        <var name="customer_account_product_review_page:type">image</var>
-        <var name="customer_account_product_review_page:width">285</var>
-        <var name="customer_account_product_review_page:ratio">1</var>
-        <var name="customer_account_product_review_page:height">285</var>
-
-        <var name="category_page_list:type">small_image</var>
-        <var name="category_page_list:width">180</var>
-        <var name="category_page_list:ratio">1</var>
-        <var name="category_page_list:height">230</var>
-
-        <var name="category_page_grid:type">small_image</var>
-        <var name="category_page_grid:width">180</var>
-        <var name="category_page_grid:ratio">1</var>
-        <var name="category_page_grid:height">230</var>
-
-        <var name="product_comparison_list:type">small_image</var>
-        <var name="product_comparison_list:width">140</var>
-        <var name="product_comparison_list:ratio">1</var>
-        <var name="product_comparison_list:height">140</var>
-
-        <var name="related_products_list:type">small_image</var>
-        <var name="related_products_list:width">140</var>
-        <var name="related_products_list:ratio">1</var>
-        <var name="related_products_list:height">140</var>
-
-        <var name="upsell_products_list:type">small_image</var>
-        <var name="upsell_products_list:width">140</var>
-        <var name="upsell_products_list:ratio">1</var>
-        <var name="upsell_products_list:height">140</var>
-
-        <var name="product_page_main_image:type">image</var>
-        <var name="product_page_main_image:width">400</var>
-        <var name="product_page_main_image:ratio">1</var>
-        <var name="product_page_main_image:height">495</var>
-
-        <var name="product_page_main_image_default:type">image</var>
-        <var name="product_page_main_image_default:width">400</var>
-        <var name="product_page_main_image_default:ratio">1</var>
-        <var name="product_page_main_image_default:height">495</var>
-
-        <var name="product_page_more_views:type">thumbnail</var>
-        <var name="product_page_more_views:width">90</var>
-        <var name="product_page_more_views:ratio">1</var>
-        <var name="product_page_more_views:height">90</var>
-
-        <var name="side_column_widget_product_thumbnail:type">thumbnail</var>
-        <var name="side_column_widget_product_thumbnail:width">50</var>
-        <var name="side_column_widget_product_thumbnail:ratio">1</var>
-        <var name="side_column_widget_product_thumbnail:height">50</var>
-
-        <var name="new_products_content_widget_list:type">small_image</var>
-        <var name="new_products_content_widget_list:width">166</var>
-        <var name="new_products_content_widget_list:ratio">1</var>
-        <var name="new_products_content_widget_list:height">166</var>
-
-        <var name="new_products_content_widget_grid:type">small_image</var>
-        <var name="new_products_content_widget_grid:width">166</var>
-        <var name="new_products_content_widget_grid:ratio">1</var>
-        <var name="new_products_content_widget_grid:height">166</var>
-
-        <var name="recently_compared_products_images_names_widget:type">thumbnail</var>
-        <var name="recently_compared_products_images_names_widget:width">50</var>
-        <var name="recently_compared_products_images_names_widget:ratio">1</var>
-        <var name="recently_compared_products_images_names_widget:height">50</var>
-
-        <var name="recently_viewed_products_images_names_widget:type">small_image</var>
-        <var name="recently_viewed_products_images_names_widget:width">50</var>
-        <var name="recently_viewed_products_images_names_widget:ratio">1</var>
-        <var name="recently_viewed_products_images_names_widget:height">50</var>
-
-        <var name="recently_compared_products_images_only_widget:type">thumbnail</var>
-        <var name="recently_compared_products_images_only_widget:width">76</var>
-        <var name="recently_compared_products_images_only_widget:ratio">1</var>
-        <var name="recently_compared_products_images_only_widget:height">76</var>
-
-        <var name="recently_viewed_products_images_only_widget:type">small_image</var>
-        <var name="recently_viewed_products_images_only_widget:width">76</var>
-        <var name="recently_viewed_products_images_only_widget:ratio">1</var>
-        <var name="recently_viewed_products_images_only_widget:height">76</var>
-
-        <var name="bundled_product_customization_page:type">thumbnail</var>
-        <var name="bundled_product_customization_page:width">140</var>
-        <var name="bundled_product_customization_page:ratio">1</var>
-        <var name="bundled_product_customization_page:height">140</var>
-
-        <var name="recently_compared_products_grid_content_widget:type">small_image</var>
-        <var name="recently_compared_products_grid_content_widget:width">135</var>
-        <var name="recently_compared_products_grid_content_widget:ratio">1</var>
-        <var name="recently_compared_products_grid_content_widget:height">135</var>
-
-        <var name="recently_compared_products_list_content_widget:type">small_image</var>
-        <var name="recently_compared_products_list_content_widget:width">166</var>
-        <var name="recently_compared_products_list_content_widget:ratio">1</var>
-        <var name="recently_compared_products_list_content_widget:height">166</var>
-
-        <var name="recently_viewed_products_grid_content_widget:type">small_image</var>
-        <var name="recently_viewed_products_grid_content_widget:width">135</var>
-        <var name="recently_viewed_products_grid_content_widget:ratio">1</var>
-        <var name="recently_viewed_products_grid_content_widget:height">135</var>
-
-        <var name="recently_viewed_products_list_content_widget:type">small_image</var>
-        <var name="recently_viewed_products_list_content_widget:width">166</var>
-        <var name="recently_viewed_products_list_content_widget:ratio">1</var>
-        <var name="recently_viewed_products_list_content_widget:height">166</var>
-
-        <var name="customer_shared_wishlist:type">small_image</var>
-        <var name="customer_shared_wishlist:width">113</var>
-        <var name="customer_shared_wishlist:ratio">1</var>
-        <var name="customer_shared_wishlist:height">113</var>
-
-        <var name="wishlist_thumbnail:type">small_image</var>
-        <var name="wishlist_thumbnail:width">113</var>
-        <var name="wishlist_thumbnail:ratio">1</var>
-        <var name="wishlist_thumbnail:height">113</var>
-
-        <var name="wishlist_sidebar_block:type">thumbnail</var>
-        <var name="wishlist_sidebar_block:width">50</var>
-        <var name="wishlist_sidebar_block:ratio">1</var>
-        <var name="wishlist_sidebar_block:height">50</var>
-
-        <var name="shared_wishlist_email:type">small_image</var>
-        <var name="shared_wishlist_email:width">135</var>
-        <var name="shared_wishlist_email:ratio">1</var>
-        <var name="shared_wishlist_email:height">135</var>
-
-        <var name="customer_account_my_tags_tag_view:type">small_image</var>
-        <var name="customer_account_my_tags_tag_view:width">100</var>
-        <var name="customer_account_my_tags_tag_view:ratio">1</var>
-        <var name="customer_account_my_tags_tag_view:height">100</var>
-
-        <var name="cart_cross_sell_products:type">thumbnail</var>
-        <var name="cart_cross_sell_products:width">140</var>
-        <var name="cart_cross_sell_products:ratio">1</var>
-        <var name="cart_cross_sell_products:height">140</var>
-
-        <var name="gift_messages_checkout_thumbnail:type">thumbnail</var>
-        <var name="gift_messages_checkout_thumbnail:width">75</var>
-        <var name="gift_messages_checkout_thumbnail:ratio">1</var>
-        <var name="gift_messages_checkout_thumbnail:height">75</var>
-
-        <var name="gift_messages_checkout_small_image:type">small_image</var>
-        <var name="gift_messages_checkout_small_image:width">75</var>
-        <var name="gift_messages_checkout_small_image:ratio">1</var>
-        <var name="gift_messages_checkout_small_image:height">75</var>
-
-        <var name="mini_cart_product_thumbnail:type">thumbnail</var>
-        <var name="mini_cart_product_thumbnail:width">78</var>
-        <var name="mini_cart_product_thumbnail:ratio">1</var>
-        <var name="mini_cart_product_thumbnail:height">78</var>
-
-        <var name="new_products_images_only_widget:type">small_image</var>
-        <var name="new_products_images_only_widget:width">78</var>
-        <var name="new_products_images_only_widget:ratio">1</var>
-        <var name="new_products_images_only_widget:height">78</var>
-
-        <var name="cart_page_product_thumbnail:type">thumbnail</var>
-        <var name="cart_page_product_thumbnail:width">80</var>
-        <var name="cart_page_product_thumbnail:ratio">1</var>
-        <var name="cart_page_product_thumbnail:height">80</var>
-
-        <var name="product_stock_alert_email_product_image:type">small_image</var>
-        <var name="product_stock_alert_email_product_image:width">76</var>
-        <var name="product_stock_alert_email_product_image:ratio">1</var>
-        <var name="product_stock_alert_email_product_image:height">76</var>
-    </vars>
-    <vars module="Magento_Bundle">
-        <var name="product_summary_image_size">58</var>         <!-- New Product image size used for summary block-->
-    </vars>
-    <vars module="Magento_DesignEditor">
-        <var name="store-name:font-picker">"marvel"</var>
-        <var name="store-name:color-picker">#837d75</var>
-        <var name="store-name:logo-uploader"></var>
-        <var name="header-background:color-picker">#d6d7d2</var>
-        <var name="header-background:image-uploader">header-bg.jpg</var>
-        <var name="header-background:tile">repeat</var>
-
-        <var name="menu-background">#f8f8f8</var>
-        <var name="menu-stroke">#c2c2c2</var>
-        <var name="menu-links">#675f55</var>
-        <var name="menu-links-hover">#f47a1f</var>
-
-        <var name="header-links">#837d75</var>
-        <var name="header-links-hover">#675f55</var>
-        <var name="header-scroll-bar-background">#ffffff</var>
-        <var name="header-scroll-bar-handle">#e5e5e5</var>
-        <var name="search-field">#ffffff</var>
-        <var name="search-field-text">#675f55</var>
-        <var name="search-field-stroke">#c2c2c2</var>
-
-        <var name="page-background:color-picker">#ffffff</var>
-        <var name="page-background:image-uploader"></var>
-        <var name="page-background:tile">no-repeat</var>
-
-        <var name="form-background">#f8f8f8</var>
-        <var name="form-stroke">#c2c2c2</var>
-        <var name="form2-background">#e5e5e5</var>
-        <var name="form2-stroke">#c2c2c2</var>
-
-        <var name="form-field-stroke">#c2c2c2</var>
-        <var name="form-field-stroke-clicked">#999999</var>
-        <var name="image-stroke-keylines">#e5e5e5</var>
-        <var name="scroll-bar-background">#f8f8f8</var>
-        <var name="scroll-bar-handle">#c2c2c2</var>
-
-        <var name="radio-checkbox-icon">#675f55</var>
-        <var name="radio-checkbox-background">#e5e5e5</var>
-        <var name="radio-checkbox-stroke">#999999</var>
-
-        <var name="button-background">#f47a1f</var>
-        <var name="button-text">#ffffff</var>
-        <var name="button-hover">#ff953b</var>
-        <var name="icons">#c2c2c2</var>
-        <var name="icons-hover">#999999</var>
-        <var name="icons2">#837d75</var>
-
-        <var name="accents">#55c2e6</var>
-        <var name="size-swatches">#f8f8f8</var>
-        <var name="size-swatches-unavailable">#e5e5e5</var>
-        <var name="size-swatches-hover">#675f55</var>
-
-        <var name="tooltip-text">#675f55</var>
-        <var name="tooltip-box">#ffffff</var>
-        <var name="tooltip-stroke">#c2c2c2</var>
-        <var name="tooltip2-text">#ffffff</var>
-        <var name="tooltip2-box">#000000</var>
-        <var name="tooltip2-stroke">#c2c2c2</var>
-
-        <var name="error-box">#ff3200</var>
-        <var name="error-icon">#ffffff</var>
-        <var name="success-box">#d3edd5</var>
-        <var name="success-icon">#ffffff</var>
-        <var name="notice-box">#ffedb8</var>
-        <var name="notice-icon">#ffffff</var>
-
-        <var name="banner-text:font-picker">"marvel", Arial, sans-serif</var>
-        <var name="banner-text:color-picker">#675f55</var>
-        <var name="page-headings:font-picker">"sourcesanspro", Arial, sans-serif</var>
-        <var name="page-headings:color-picker">#675f55</var>
-        <var name="menu:font-picker">"sourcesanspro", Arial, sans-serif</var>
-        <var name="menu:color-picker">#675f55</var>
-
-        <var name="body-text:font-picker">"sourcesanspro", Arial, sans-serif</var>
-        <var name="body-text:color-picker">#675f55</var>
-
-        <var name="buttons:font-picker">"sourcesanspro", Arial, sans-serif</var>
-        <var name="buttons:color-picker">#ffffff</var>
-
-        <var name="text-links">#675f55</var>
-        <var name="text-links-hover">#f47a1f</var>
-        <var name="text-links-active">#f47a1f</var>
-        <var name="text-links-product">#675f55</var>
-        <var name="small-links">#675f55</var>
-        <var name="small-links-hover">#c2c2c2</var>
-    </vars>
-</view>
diff --git a/dev/tests/integration/framework/Magento/TestFramework/Event/PhpUnit.php b/dev/tests/integration/framework/Magento/TestFramework/Event/PhpUnit.php
index c3522e3850ad405d741935df8f58459734984d58..847b399c018b1ca54fee95b7a480df6716f00f99 100644
--- a/dev/tests/integration/framework/Magento/TestFramework/Event/PhpUnit.php
+++ b/dev/tests/integration/framework/Magento/TestFramework/Event/PhpUnit.php
@@ -69,13 +69,7 @@ class PhpUnit implements \PHPUnit_Framework_TestListener
     }
 
     /**
-     * An error occurred.
-     * Method is required by implemented interface, but is not needed by the class.
-     *
-     * @param  \PHPUnit_Framework_Test $test
-     * @param  \Exception              $e
-     * @param  float                  $time
-     *
+     * {@inheritdoc}
      * @SuppressWarnings(PHPMD.ShortVariable)
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
@@ -84,13 +78,7 @@ class PhpUnit implements \PHPUnit_Framework_TestListener
     }
 
     /**
-     * A failure occurred.
-     * Method is required by implemented interface, but is not needed by the class.
-     *
-     * @param  \PHPUnit_Framework_Test                 $test
-     * @param  \PHPUnit_Framework_AssertionFailedError $e
-     * @param  float                                  $time
-     *
+     * {@inheritdoc}
      * @SuppressWarnings(PHPMD.ShortVariable)
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
@@ -99,13 +87,7 @@ class PhpUnit implements \PHPUnit_Framework_TestListener
     }
 
     /**
-     * Incomplete test.
-     * Method is required by implemented interface, but is not needed by the class.
-     *
-     * @param  \PHPUnit_Framework_Test $test
-     * @param  \Exception              $e
-     * @param  float                  $time
-     *
+     * {@inheritdoc}
      * @SuppressWarnings(PHPMD.ShortVariable)
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
@@ -114,14 +96,16 @@ class PhpUnit implements \PHPUnit_Framework_TestListener
     }
 
     /**
-     * Skipped test.
-     * Method is required by implemented interface, but is not needed by the class.
-     *
-     * @param  \PHPUnit_Framework_Test $test
-     * @param  \Exception              $e
-     * @param  float                  $time
-     * @since  Method available since Release 3.0.0
-     *
+     * {@inheritdoc}
+     * @SuppressWarnings(PHPMD.ShortVariable)
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     */
+    public function addRiskyTest(\PHPUnit_Framework_Test $test, \Exception $e, $time)
+    {
+    }
+
+    /**
+     * {@inheritdoc}
      * @SuppressWarnings(PHPMD.ShortVariable)
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
@@ -130,10 +114,7 @@ class PhpUnit implements \PHPUnit_Framework_TestListener
     }
 
     /**
-     * A test suite started.
-     *
-     * @param  \PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
+     * {@inheritdoc}
      */
     public function startTestSuite(\PHPUnit_Framework_TestSuite $suite)
     {
@@ -145,10 +126,7 @@ class PhpUnit implements \PHPUnit_Framework_TestListener
     }
 
     /**
-     * A test suite ended.
-     *
-     * @param  \PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
+     * {@inheritdoc}
      */
     public function endTestSuite(\PHPUnit_Framework_TestSuite $suite)
     {
@@ -159,9 +137,7 @@ class PhpUnit implements \PHPUnit_Framework_TestListener
     }
 
     /**
-     * A test started.
-     *
-     * @param  \PHPUnit_Framework_Test $test
+     * {@inheritdoc}
      */
     public function startTest(\PHPUnit_Framework_Test $test)
     {
@@ -172,12 +148,7 @@ class PhpUnit implements \PHPUnit_Framework_TestListener
     }
 
     /**
-     * A test ended.
-     * Method signature is implied by implemented interface, not all parameters are needed.
-     *
-     * @param  \PHPUnit_Framework_Test $test
-     * @param  float                  $time
-     *
+     * {@inheritdoc}
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function endTest(\PHPUnit_Framework_Test $test, $time)
diff --git a/dev/tests/integration/framework/bootstrap.php b/dev/tests/integration/framework/bootstrap.php
index 72ac131699434e2f275be737dafe9987cc1efdbe..a0f65e9f90b610f1bb122bafceb2ff1a0f3f1b4b 100644
--- a/dev/tests/integration/framework/bootstrap.php
+++ b/dev/tests/integration/framework/bootstrap.php
@@ -32,11 +32,8 @@ $testsBaseDir = dirname(__DIR__);
 $testsTmpDir = "{$testsBaseDir}/tmp";
 $magentoBaseDir = realpath("{$testsBaseDir}/../../../");
 
-\Magento\Framework\Autoload\IncludePath::addIncludePath(
-    array(
-        "{$testsBaseDir}/framework",
-        "{$testsBaseDir}/testsuite"
-    )
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(
+    array("{$testsBaseDir}/framework", "{$testsBaseDir}/testsuite")
 );
 
 function tool_autoloader($className)
diff --git a/dev/tests/integration/framework/tests/unit/framework/bootstrap.php b/dev/tests/integration/framework/tests/unit/framework/bootstrap.php
index 37dfbd9f1d367542231172082d9fb55653df847c..55ad628f84d4e1b7764f8fa32ff7521329e72877 100644
--- a/dev/tests/integration/framework/tests/unit/framework/bootstrap.php
+++ b/dev/tests/integration/framework/tests/unit/framework/bootstrap.php
@@ -27,4 +27,4 @@
 
 $rootDir = realpath(__DIR__ . '/../../../../../../../');
 require_once $rootDir . '/app/bootstrap.php';
-\Magento\Framework\Autoload\IncludePath::addIncludePath($rootDir . '/dev/tests/integration/framework');
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath($rootDir . '/dev/tests/integration/framework');
diff --git a/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/Workaround/Cleanup/TestCasePropertiesTest.php b/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/Workaround/Cleanup/TestCasePropertiesTest.php
index a75b9221cafa89d822fd321ab93f7c8f2ca9967b..5cda9ce522029fc837eec40ad74bf49514964e13 100644
--- a/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/Workaround/Cleanup/TestCasePropertiesTest.php
+++ b/dev/tests/integration/framework/tests/unit/testsuite/Magento/Test/Workaround/Cleanup/TestCasePropertiesTest.php
@@ -61,7 +61,7 @@ class TestCasePropertiesTest extends \PHPUnit_Framework_TestCase
         $testClass = $testSuite->testAt(0);
 
         $propertyObjectMock = $this->getMock('stdClass', array('__destruct'));
-        $propertyObjectMock->expects($this->once())->method('__destruct');
+        $propertyObjectMock->expects($this->atLeastOnce())->method('__destruct');
         $testClass->setPropertyObject($propertyObjectMock);
 
         foreach ($this->_fixtureProperties as $property) {
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/AbstractTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/AbstractTest.php
index 0dadb0ecb528827af8f1db57acf5820a05e32207..8b8fe5ed7ac657404942039516c88789946bbd43 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/AbstractTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/AbstractTest.php
@@ -130,14 +130,6 @@ class AbstractTest extends \PHPUnit_Framework_TestCase
         $this->assertGreaterThan(0, $this->_block->getMinimalQty($this->_product));
     }
 
-    public function testGetPriceHtml()
-    {
-        $this->_block->setLayout(
-            \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\View\LayoutInterface')
-        );
-        $this->assertContains('10', $this->_block->getPriceHtml($this->_product));
-    }
-
     public function testGetReviewsSummaryHtml()
     {
         $this->_block->setLayout(
@@ -153,40 +145,6 @@ class AbstractTest extends \PHPUnit_Framework_TestCase
         $this->assertSame($this->_product, $this->_block->getProduct());
     }
 
-    public function testGetTierPriceTemplate()
-    {
-        $this->assertEquals('product/view/tierprices.phtml', $this->_block->getTierPriceTemplate());
-        $this->_block->setData('tier_price_template', 'test.phtml');
-        $this->assertEquals('test.phtml', $this->_block->getTierPriceTemplate());
-    }
-
-    public function testGetTierPriceHtml()
-    {
-        $this->_block->setLayout(
-            \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\View\LayoutInterface')
-        );
-        $html = $this->_block->getTierPriceHtml();
-        $this->assertNotEmpty($html);
-        $this->assertContains('2', $html); /* Buy 2 */
-        $this->assertContains('8', $html); /* Price 8 */
-        $this->assertContains('5', $html); /* Buy 5 and price 5 */
-    }
-
-    public function testGetTierPrices()
-    {
-        $prices = $this->_block->getTierPrices();
-        $this->assertNotEmpty($prices);
-        $this->assertGreaterThanOrEqual(2, count($prices));
-        $this->assertArrayHasKey('price', $prices[0]);
-        $this->assertArrayHasKey('savePercent', $prices[0]);
-        $this->assertArrayHasKey('formated_price', $prices[0]);
-        $this->assertArrayHasKey('formated_price_incl_tax', $prices[0]);
-
-        $this->_product->setFinalPrice(7);
-        $prices = $this->_block->getTierPrices();
-        $this->assertEquals(1, count($prices));
-    }
-
     public function testGetImageLabel()
     {
         $this->assertEquals($this->_product->getName(), $this->_block->getImageLabel());
diff --git a/dev/tests/integration/testsuite/Magento/Cron/Model/ObserverTest.php b/dev/tests/integration/testsuite/Magento/Cron/Model/ObserverTest.php
index cad07426c6fb64bd923104bd4e2c0bdbbcae388f..f2d9a513bb3ddb3516a403a6c32fb387e4f035ab 100644
--- a/dev/tests/integration/testsuite/Magento/Cron/Model/ObserverTest.php
+++ b/dev/tests/integration/testsuite/Magento/Cron/Model/ObserverTest.php
@@ -40,6 +40,9 @@ class ObserverTest extends \PHPUnit_Framework_TestCase
         $this->_model->dispatch('this argument is not used');
     }
 
+    /**
+     * @magentoConfigFixture current_store crontab/default/jobs/catalog_product_alert/schedule/cron_expr 8 * * * *
+     */
     public function testDispatchScheduled()
     {
         $collection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
diff --git a/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/IndexTest.php b/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/IndexTest.php
index 52a2bae2113371167933f9109284d8e559a069bf..9252aeeda8434eae2a0adcd6fa2b03dcce77d4e9 100755
--- a/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/IndexTest.php
+++ b/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/IndexTest.php
@@ -1061,4 +1061,13 @@ class IndexTest extends \Magento\Backend\Utility\Controller
         );
         $this->assertRedirect($this->stringStartsWith($this->_baseControllerUrl . 'edit'));
     }
+
+    public function testIndexActionCorrectTabsQty()
+    {
+        $this->dispatch('backend/customer/index/new/');
+        $html = $this->getResponse()->getBody();
+        $this->assertSelectCount('.tab-item-link', 2, $html);
+        $this->assertSelectCount('[title="Account Information"]', 1, $html);
+        $this->assertSelectCount('[title="Addresses"]', 1, $html);
+    }
 }
diff --git a/dev/tests/integration/testsuite/Magento/Downloadable/Block/Catalog/Product/LinksTest.php b/dev/tests/integration/testsuite/Magento/Downloadable/Block/Catalog/Product/LinksTest.php
deleted file mode 100644
index 2059af715fdb5037b6ec4e90777d9c75f86e32d2..0000000000000000000000000000000000000000
--- a/dev/tests/integration/testsuite/Magento/Downloadable/Block/Catalog/Product/LinksTest.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
- */
-
-namespace Magento\Downloadable\Block\Catalog\Product;
-
-use Magento\Customer\Controller\RegistryConstants;
-
-/**
- * Tests Magento\Downloadable\Block\Catalog\Product\Links.php
- *
- */
-class LinksTest extends \PHPUnit_Framework_TestCase
-{
-    /** @var \Magento\TestFramework\ObjectManager */
-    private $objectManager;
-
-    /** @var \Magento\Tax\Model\Calculation */
-    private $taxCalculationModel;
-
-    /** @var \Magento\Framework\Registry */
-    private $registry;
-
-    /** @var \Magento\Downloadable\Block\Catalog\Product\Links */
-    private $linksBlock;
-
-    public function setUp()
-    {
-        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
-        $this->registry = $this->objectManager->get('Magento\Framework\Registry');
-        $this->taxCalculationModel = $this->objectManager->create('Magento\Tax\Model\Calculation');
-
-        $this->linksBlock = $this->objectManager->get('Magento\Framework\View\LayoutInterface')
-            ->createBlock('Magento\Downloadable\Block\Catalog\Product\Links');
-    }
-
-    public function tearDown()
-    {
-        $this->registry->unregister('product');
-        $this->registry->unregister(RegistryConstants::CURRENT_CUSTOMER_ID);
-        $this->registry->unregister('_fixture/Magento_Tax_Model_Calculation_Rule');
-        $this->registry->unregister('_fixture/Magento_Tax_Model_Calculation_Rate');
-    }
-
-    /**
-     * Test that has no customer registered.
-     *
-     * @magentoDataFixture Magento/Downloadable/_files/product_with_files.php
-     */
-    public function testGetFormattedLinkPriceNoCustomer()
-    {
-        $product = $this->objectManager->create('Magento\Catalog\Model\Product')->load(1);
-        $this->registry->register('product', $product);
-        $link = array_values($this->linksBlock->getLinks())[0];
-        $formattedLink = $this->linksBlock->getFormattedLinkPrice($link);
-        $this->assertEquals('<span class="price-notice">+<span class="price">$15.00</span></span>', $formattedLink);
-    }
-
-    /**
-     * Test that uses customer's billing address as tax calculation base.
-     *
-     * @magentoConfigFixture current_store tax/display/type 3
-     * @magentoConfigFixture current_store tax/calculation/based_on billing
-     * @magentoDataFixture Magento/Downloadable/_files/product_with_files.php
-     * @magentoDataFixture Magento/Customer/_files/customer.php
-     * @magentoDataFixture Magento/Customer/_files/customer_address.php
-     * @magentoDataFixture Magento/Customer/_files/customer_group.php
-     * @magentoDataFixture Magento/Tax/_files/tax_classes.php
-     */
-    public function testGetFormattedLinkPriceCustomerBasedTax()
-    {
-        /** set the product and tax classes from tax_class fixture */
-        $this->setUpTaxClasses();
-        $link = array_values($this->linksBlock->getLinks())[0];
-        $formattedLink = $this->linksBlock->getFormattedLinkPrice($link);
-        $this->assertEquals(
-            '<span class="price-notice">+<span class="price">$15.00</span>'.
-            ' (+<span class="price">$16.13</span> Incl. Tax)</span>',
-            $formattedLink
-        );
-    }
-
-    /**
-     * Test a customer outside of region.
-     *
-     * @magentoConfigFixture current_store tax/display/type 3
-     * @magentoConfigFixture current_store tax/calculation/based_on billing
-     * @magentoDataFixture Magento/Downloadable/_files/product_with_files.php
-     * @magentoDataFixture Magento/Customer/_files/customer.php
-     * @magentoDataFixture Magento/Customer/_files/customer_address.php
-     * @magentoDataFixture Magento/Customer/_files/customer_group.php
-     * @magentoDataFixture Magento/Tax/_files/tax_classes.php
-     */
-    public function testGetFormattedLinkPriceCustomerBasedTaxDiffRegion()
-    {
-        /** set the product and tax classes from tax_class fixture */
-        $this->setUpTaxClasses(13);
-        $link = array_values($this->linksBlock->getLinks())[0];
-        $formattedLink = $this->linksBlock->getFormattedLinkPrice($link);
-        $this->assertEquals('<span class="price-notice">+<span class="price">$15.00</span></span>', $formattedLink);
-    }
-
-    /**
-     * Test that has a customer but product based tax.
-     *
-     * @magentoConfigFixture current_store tax/display/type 3
-     * @magentoDataFixture Magento/Downloadable/_files/product_with_files.php
-     * @magentoDataFixture Magento/Customer/_files/customer.php
-     */
-    public function testGetFormattedLinkPriceCustomerProductTax()
-    {
-        $product = $this->objectManager->create('Magento\Catalog\Model\Product')->load(1);
-        $product->setTaxPercent(10);
-        $product->save();
-
-        $this->registry->register('product', $product);
-        $this->registry->register(RegistryConstants::CURRENT_CUSTOMER_ID, 1);
-
-        $link = array_values($this->linksBlock->getLinks())[0];
-        $formattedLink = $this->linksBlock->getFormattedLinkPrice($link);
-        $this->assertEquals(
-            '<span class="price-notice">+<span class="price">$15.00</span>'.
-            ' (+<span class="price">$16.50</span> Incl. Tax)</span>',
-            $formattedLink
-        );
-    }
-
-    /**
-     * Set the product and tax classes from tax_class fixture
-     *
-     * @param int $addressRegionId  Region to use for customer billing address.
-     *                Defaults to 12 which is the same as in tax rate fixture
-     */
-    private function setUpTaxClasses($addressRegionId = 12)
-    {
-        $taxRule = $this->registry->registry('_fixture/Magento_Tax_Model_Calculation_Rule');
-        $customerTaxClasses = $taxRule->getTaxCustomerClass();
-        $productTaxClasses = $taxRule->getTaxProductClass();
-
-        $customerGroup = $this->objectManager->create('Magento\Customer\Model\Group')->load(1);
-        $customerGroup->setTaxClassId($customerTaxClasses[0]);
-        $customerGroup->save();
-
-        $address = $this->objectManager->create('Magento\Customer\Model\Address')->load(1);
-        $address->setRegionId($addressRegionId);
-        $address->save();
-
-        $product = $this->objectManager->create('Magento\Catalog\Model\Product')->load(1);
-        $product->setTaxClassId($productTaxClasses[0]);
-        $product->save();
-
-        $this->registry->register('product', $product);
-        $this->registry->register(RegistryConstants::CURRENT_CUSTOMER_ID, 1);
-    }
-}
- 
\ No newline at end of file
diff --git a/dev/tests/integration/testsuite/Magento/Email/Controller/Adminhtml/Email/TemplateTest.php b/dev/tests/integration/testsuite/Magento/Email/Controller/Adminhtml/Email/TemplateTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..63d751517ac117d7399edd10b1be548286a5b30d
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Email/Controller/Adminhtml/Email/TemplateTest.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+namespace Magento\Email\Controller\Adminhtml\Email;
+
+/**
+ * @magentoAppArea adminhtml
+ */
+class TemplateTest extends \Magento\Backend\Utility\Controller
+{
+    public function testDefaultTemplateAction()
+    {
+        /** @var $formKey \Magento\Framework\Data\Form\FormKey */
+        $formKey = $this->_objectManager->get('Magento\Framework\Data\Form\FormKey');
+        $post = array(
+            'form_key' => $formKey->getFormKey(),
+            'code' => 'customer_password_forgot_email_template'
+        );
+        $this->getRequest()->setPost($post);
+        $this->dispatch('backend/admin/email_template/defaultTemplate/?isAjax=true');
+        $this->assertContains(
+            '"template_type":2,"template_subject":"Password Reset Confirmation for {{var customer.name}}"',
+            $this->getResponse()->getBody()
+        );
+    }
+}
diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php b/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php
index dd4e283c96ce27152aadaf7d9f453acccf113294..10b7c01f09462f1c210c9d57ec152c629ccfd6b3 100644
--- a/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php
+++ b/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php
@@ -55,6 +55,7 @@ class FilterTest extends \PHPUnit_Framework_TestCase
 
     /**
      * @magentoConfigFixture current_store web/unsecure/base_link_url http://example.com/
+     * @magentoConfigFixture admin_store web/unsecure/base_link_url http://example.com/
      */
     public function testStoreDirective()
     {
@@ -67,6 +68,12 @@ class FilterTest extends \PHPUnit_Framework_TestCase
             array('{{store url="translation/ajax/index"}}', 'store', ' url="translation/ajax/index"')
         );
         $this->assertStringMatchesFormat('http://example.com/%stranslation/ajax/index/', $url);
+
+        $this->_model->setStoreId(0);
+        $url = $this->_model->storeDirective(
+            array('{{store url="translation/ajax/index"}}', 'store', ' url="translation/ajax/index"')
+        );
+        $this->assertStringMatchesFormat('http://example.com/index.php/backend/translation/ajax/index/%A', $url);
     }
 
     public function testEscapehtmlDirective()
diff --git a/dev/tests/integration/testsuite/Magento/Framework/Code/GeneratorTest.php b/dev/tests/integration/testsuite/Magento/Framework/Code/GeneratorTest.php
index 992a1c3cda21b7046cfaee0b07623a16c7cc76b4..694d96ac0a9ed90fe45fdd758cddb977ab9ec415 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/Code/GeneratorTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/Code/GeneratorTest.php
@@ -73,7 +73,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
         );
         $generationDirectory = $this->varDirectory->getAbsolutePath('generation');
 
-        \Magento\Framework\Autoload\IncludePath::addIncludePath($generationDirectory);
+        (new \Magento\Framework\Autoload\IncludePath())->addIncludePath($generationDirectory);
 
         $this->_ioObject = new \Magento\Framework\Code\Generator\Io(
             new \Magento\Framework\Filesystem\Driver\File(),
diff --git a/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/CreateTest.php b/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/CreateTest.php
index ef6b3a4c4b28665d3f6e3e4077548ae37a36c3ef..4e9ac039a4cebd4d16ce1a175748dbbd5c080714 100644
--- a/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/CreateTest.php
+++ b/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/CreateTest.php
@@ -177,11 +177,13 @@ class CreateTest extends \Magento\Backend\Utility\Controller
         $this->assertContains('>Test Configurable</label>', $body);
         $this->assertContains('"code":"test_configurable","label":"Test Configurable"', $body);
         $this->assertContains(
-            '"label":"Option 1","price":"5","oldPrice":"5","inclTaxPrice":"5","exclTaxPrice":"5","products":[',
+            '"label":"Option 1","price":"5","oldPrice":"5",'.
+            '"inclTaxPrice":"5","exclTaxPrice":"5","products":[',
             $body
         );
         $this->assertContains(
-            '"label":"Option 2","price":"5","oldPrice":"5","inclTaxPrice":"5","exclTaxPrice":"5","products":[',
+            '"label":"Option 2","price":"5","oldPrice":"5",'.
+            '"inclTaxPrice":"5","exclTaxPrice":"5","products":[',
             $body
         );
         $this->assertContains('"basePrice":"100","oldPrice":"100","productId":"1","chooseText":"Choose an Option..."',
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewFilesTest.php
index 6e2f3816c5856651de31d4a48b6b93ab16a309ef..3fb1e77a6e11e24ec8319d51377670afd642973e 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewFilesTest.php
@@ -37,8 +37,10 @@ class ViewFilesTest extends \Magento\TestFramework\TestCase\AbstractIntegrity
          * @param string $file
          */
             function ($application, $file) {
-                \Magento\TestFramework\Helper\Bootstrap::getInstance()
-                    ->loadArea($application);
+                if ($application != 'base') {
+                    \Magento\TestFramework\Helper\Bootstrap::getInstance()
+                        ->loadArea($application);
+                }
                 \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
                     ->get('Magento\Framework\View\DesignInterface')
                     ->setDefaultDesignTheme();
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/TemplateFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/TemplateFilesTest.php
index c69a2f08034db81201c12c69c6f266392a20d13b..6d6aa9363c730178a0366db6c4fe53532f32c6c4 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/TemplateFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/TemplateFilesTest.php
@@ -132,7 +132,6 @@ class TemplateFilesTest extends \Magento\TestFramework\TestCase\AbstractIntegrit
                         $templates[] = array($module, (string)$template, $parent[0]->asXml());
                     }
                     break;
-                case 'addPriceBlockType':
                 case 'addInformationRenderer':
                 case 'addMergeSettingsBlockType':
                     $blockType = $action[0]->xpath('block');
diff --git a/dev/tests/integration/testsuite/Magento/Wishlist/Block/Customer/Wishlist/ItemsTest.php b/dev/tests/integration/testsuite/Magento/Wishlist/Block/Customer/Wishlist/ItemsTest.php
index 35aa967405182f23bad1df209ad665e71e0aaa93..4dfccfbb740cb11ed971658db2e0fcfba323d9cf 100644
--- a/dev/tests/integration/testsuite/Magento/Wishlist/Block/Customer/Wishlist/ItemsTest.php
+++ b/dev/tests/integration/testsuite/Magento/Wishlist/Block/Customer/Wishlist/ItemsTest.php
@@ -30,21 +30,25 @@ class ItemsTest extends \PHPUnit_Framework_TestCase
 {
     public function testGetColumns()
     {
-        $layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
+        $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+        $layout = $objectManager->get(
             'Magento\Framework\View\LayoutInterface'
         );
         $block = $layout->addBlock('Magento\Wishlist\Block\Customer\Wishlist\Items', 'test');
         $child = $this->getMock(
-            'Magento\Framework\View\Element\Text',
+            'Magento\Wishlist\Block\Customer\Wishlist\Item\Column',
             array('isEnabled'),
-            array(
-                \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
-                    'Magento\Framework\View\Element\Context'
-                )
-            )
+            array($objectManager->get('Magento\Framework\View\Element\Context')),
+            '',
+            false
         );
         $child->expects($this->any())->method('isEnabled')->will($this->returnValue(true));
         $layout->addBlock($child, 'child', 'test');
-        $this->assertSame(array($child), $block->getColumns());
+        $expected = $child->getType();
+        $columns = $block->getColumns();
+        $this->assertNotEmpty($columns);
+        foreach ($columns as $column) {
+            $this->assertSame($expected, $column->getType());
+        }
     }
 }
diff --git a/dev/tests/js/jsTestDriverOrder.php b/dev/tests/js/jsTestDriverOrder.php
index 74060e496446810c7da9a04e1713b52175ee2693..956bbe3ced9adaec944799c16f463a64e87806dd 100644
--- a/dev/tests/js/jsTestDriverOrder.php
+++ b/dev/tests/js/jsTestDriverOrder.php
@@ -32,7 +32,7 @@ return array(
     '/pub/lib/jquery/jquery-1.8.2.js',
     '/pub/lib/jquery/jquery-ui-1.9.2.js',
     '/pub/lib/jquery/jquery.cookie.js',
-    '/pub/lib/headjs/head.load.min.js',
+    '/pub/lib/headjs/head.min.js',
     '/pub/lib/mage/mage.js',
     '/pub/lib/mage/decorate.js',
     '/pub/lib/jquery/jquery.validate.js',
diff --git a/dev/tests/js/pj b/dev/tests/js/pj
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/dev/tests/js/run_js_tests.php b/dev/tests/js/run_js_tests.php
index f2b2fee92e987fd2e7e49c51f143056b0b9482fb..a3aa9d9c04699b52b9b80ea37c5840d31912cbe8 100644
--- a/dev/tests/js/run_js_tests.php
+++ b/dev/tests/js/run_js_tests.php
@@ -28,7 +28,7 @@
 
 define('RELATIVE_APP_ROOT', '../../..');
 require __DIR__ . '/../../../app/autoload.php';
-\Magento\Framework\Autoload\IncludePath::addIncludePath(realpath(RELATIVE_APP_ROOT . '/lib'));
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(realpath(RELATIVE_APP_ROOT . '/lib'));
 
 $userConfig = normalize('jsTestDriver.php');
 $defaultConfig = normalize('jsTestDriver.php.dist');
diff --git a/dev/tests/performance/framework/bootstrap.php b/dev/tests/performance/framework/bootstrap.php
index dcaaa6aed4e8524c983939134e194744ffe24f9a..17da9b3516764bf22fcae7296702db47d29e3e9d 100644
--- a/dev/tests/performance/framework/bootstrap.php
+++ b/dev/tests/performance/framework/bootstrap.php
@@ -30,7 +30,7 @@ $testsBaseDir = realpath(__DIR__ . '/..');
 $magentoBaseDir = realpath($testsBaseDir . '/../../../');
 
 require_once "{$magentoBaseDir}/app/bootstrap.php";
-\Magento\Framework\Autoload\IncludePath::addIncludePath("{$testsBaseDir}/framework");
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath("{$testsBaseDir}/framework");
 
 $bootstrap = new \Magento\TestFramework\Performance\Bootstrap($testsBaseDir, $magentoBaseDir);
 $bootstrap->cleanupReports();
diff --git a/dev/tests/performance/framework/tests/unit/framework/bootstrap.php b/dev/tests/performance/framework/tests/unit/framework/bootstrap.php
index 6ccf62ff29a6776c0988a2988b6d7fd64db5675e..1d2ca91d37ad57baf1620a99dd1dea42717bbea5 100644
--- a/dev/tests/performance/framework/tests/unit/framework/bootstrap.php
+++ b/dev/tests/performance/framework/tests/unit/framework/bootstrap.php
@@ -27,4 +27,4 @@
 $magentoBaseDir = realpath(__DIR__ . '/../../../../../../../');
 
 require_once "{$magentoBaseDir}/app/bootstrap.php";
-\Magento\Framework\Autoload\IncludePath::addIncludePath("{$magentoBaseDir}/dev/tests/performance/framework");
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath("{$magentoBaseDir}/dev/tests/performance/framework");
diff --git a/dev/tests/static/framework/Magento/TestFramework/CodingStandard/Tool/CodeSniffer.php b/dev/tests/static/framework/Magento/TestFramework/CodingStandard/Tool/CodeSniffer.php
index 7dee29cdf763c7db77836538c13afc78ba93dc45..8d2e932729d10b61853e3f6ba9049e30f2b84239 100644
--- a/dev/tests/static/framework/Magento/TestFramework/CodingStandard/Tool/CodeSniffer.php
+++ b/dev/tests/static/framework/Magento/TestFramework/CodingStandard/Tool/CodeSniffer.php
@@ -131,6 +131,7 @@ class CodeSniffer implements ToolInterface
         ob_start();
         $result = $this->wrapper->process();
         ob_end_clean();
+
         return $result;
     }
 
diff --git a/dev/tests/static/framework/Magento/TestFramework/Utility/AggregateInvoker.php b/dev/tests/static/framework/Magento/TestFramework/Utility/AggregateInvoker.php
index b7a4520be8d5ecc8c7ab99b213c3dd6a4c034712..20660aa1a9afc3b604241c112499d2069758fd0c 100644
--- a/dev/tests/static/framework/Magento/TestFramework/Utility/AggregateInvoker.php
+++ b/dev/tests/static/framework/Magento/TestFramework/Utility/AggregateInvoker.php
@@ -47,7 +47,7 @@ class AggregateInvoker
      * @param \PHPUnit_Framework_TestCase $testCase
      * @param array $options
      */
-    public function __construct(\PHPUnit_Framework_TestCase $testCase, array $options = array())
+    public function __construct($testCase, array $options = array())
     {
         $this->_testCase = $testCase;
         $this->_options = $options + $this->_options;
diff --git a/dev/tests/static/framework/Magento/TestFramework/Utility/Classes.php b/dev/tests/static/framework/Magento/TestFramework/Utility/Classes.php
index 8cb3b8d193c4c8b3b2430c0077becfc3a9523686..c58107e1939dade715ac52c87026c26d1aed6594 100644
--- a/dev/tests/static/framework/Magento/TestFramework/Utility/Classes.php
+++ b/dev/tests/static/framework/Magento/TestFramework/Utility/Classes.php
@@ -185,7 +185,7 @@ class Classes
             self::getXmlNodeValues(
                 $xml,
                 '/layout//action/attributeType | /layout//action[@method="addTab"]/content
-                | /layout//action[@method="addPriceBlockType" or @method="addMergeSettingsBlockType"
+                | /layout//action[@method="addMergeSettingsBlockType"
                     or @method="addInformationRenderer"
                     or @method="addDatabaseBlock"]/*[2]
                 | /layout//action[@method="setMassactionBlockName"]/name
diff --git a/dev/tests/static/framework/bootstrap.php b/dev/tests/static/framework/bootstrap.php
index 359d1b8ec6f736b5ac6e2c3c548094f159fbb70d..94d0a49d4775e2bb24fe3d1dec501781db72e696 100644
--- a/dev/tests/static/framework/bootstrap.php
+++ b/dev/tests/static/framework/bootstrap.php
@@ -27,7 +27,9 @@
 
 define('BP', realpath(__DIR__ . '/../../../../'));
 require BP . '/app/autoload.php';
-\Magento\Framework\Autoload\IncludePath::addIncludePath(array(__DIR__, dirname(__DIR__) . '/testsuite', BP . '/lib'));
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(
+    array(__DIR__, dirname(__DIR__) . '/testsuite', BP . '/lib')
+);
 \Magento\TestFramework\Utility\Files::setInstance(new \Magento\TestFramework\Utility\Files(BP));
 
 function tool_autoloader($className)
diff --git a/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/AggregateInvokerTest.php b/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/AggregateInvokerTest.php
index b656a314ec3fa5bd4312277996ace36c8ef2a6a1..45b18aadb3e7002aec2607694e1127234419dd53 100644
--- a/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/AggregateInvokerTest.php
+++ b/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/AggregateInvokerTest.php
@@ -37,7 +37,10 @@ class AggregateInvokerTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->_testCase = $this->getMock('PHPUnit_Framework_TestCase');
+        $this->_testCase = $this->getMock(
+            'PHPUnit_Framework_Test',
+            ['run', 'count', 'fail', 'markTestIncomplete', 'markTestSkipped']
+        );
         $this->_invoker = new AggregateInvoker($this->_testCase, array());
     }
 
@@ -90,7 +93,7 @@ class AggregateInvokerTest extends \PHPUnit_Framework_TestCase
             ),
             array(
                 'Passed: 0, Failed: 0, Incomplete: 0, Skipped: 1.',
-                'markTestCkipped',
+                'markTestSkipped',
                 'PHPUnit_Framework_SkippedTestError'
             )
         );
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/ClassesTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/ClassesTest.php
index 751593e15fee9d154f093617cd84732384ba2a28..0c58af64dbf563b298b949c5dcb4dc9b5f7468ed 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/ClassesTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/ClassesTest.php
@@ -463,6 +463,7 @@ class ClassesTest extends \PHPUnit_Framework_TestCase
                 '/downloader/lib/',
                 '/dev/tools/',
                 '/dev/tests/api-functional/framework/',
+                '/dev/tests/functional/',
                 '/dev/tests/integration/framework/',
                 '/dev/tests/integration/framework/tests/unit/testsuite/',
                 '/dev/tests/integration/testsuite/',
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Di/CompilerTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/Di/CompilerTest.php
index 053a7a76edd48b3f284c514c518da2b3723dd511..b5a6bb53af64afc19b644d2b051eaf8a4b4c109d 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/Di/CompilerTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Di/CompilerTest.php
@@ -82,7 +82,7 @@ class CompilerTest extends \PHPUnit_Framework_TestCase
         $this->_generationDir = $this->_tmpDir . '/generation';
         $this->_compilationDir = $this->_tmpDir . '/di';
 
-        \Magento\Framework\Autoload\IncludePath::addIncludePath(
+        (new \Magento\Framework\Autoload\IncludePath())->addIncludePath(
             array($basePath . '/app/code', $basePath . '/lib', $this->_generationDir)
         );
 
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Layout/HandlesTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/Layout/HandlesTest.php
index 1a9b579fb200b2fc66f0ff6381fc0b7e6e1d47ee..442cf404796941ee4623533df20c351c4da5c94f 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/Layout/HandlesTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Layout/HandlesTest.php
@@ -43,9 +43,9 @@ class HandlesTest extends \PHPUnit_Framework_TestCase
                 $issues = array();
                 $node = simplexml_load_file($layoutFile);
                 $label = $node['label'];
-                $design_abstraction = $node['design_abstraction'];
+                $designAbstraction = $node['design_abstraction'];
                 if (!$label) {
-                    if ($design_abstraction) {
+                    if ($designAbstraction) {
                         $issues[] = 'Attribute "design_abstraction" is defined, but "label" is not';
                     }
                 }
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/namespace.txt b/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/namespace.txt
index 490babd93d6884d2a728081035ff5c8a85e22507..a5472f82ecf55b6d3c7ddffe1f47eb273a3d4b3a 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/namespace.txt
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/namespace.txt
@@ -19,6 +19,9 @@ dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Code/Dictionary/_files/s
 dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Code/Dictionary/_files/source/app/code/Magento/SecondModule/Model/Model.php
 dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Code/Dictionary/_files/source/unused/Model.php
 dev/tests/integration/testsuite/Magento/Test/Tools/I18n/Code/Dictionary/_files/source/app/code/Magento/FirstModule/Helper/Helper.php
+dev/tests/static/framework/PHP/CodeSniffer/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php
+dev/tests/static/framework/PHP/CodeSniffer/Standards/Zend/Sniffs/Files/ClosingTagSniff.php
+dev/tests/static/framework/PHP/CodeSniffer/Standards/Zend/Sniffs/NamingConventions/ValidVariableNameSniff.php
 dev/tests/static/testsuite/Magento/Test/Php/Exemplar/CodeMessTest/phpmd/input/coupling.php
 dev/tests/static/testsuite/Magento/Test/Php/Exemplar/CodeMessTest/phpmd/input/cyclomatic_complexity.php
 dev/tests/static/testsuite/Magento/Test/Php/Exemplar/CodeMessTest/phpmd/input/descendant_count.php
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/reference.txt b/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/reference.txt
index 25f6a53b45afd3a2df4f9102986501f6804a8f61..4b71dd41ec0fc4ed92ac439537350b42cfa7314e 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/reference.txt
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/reference.txt
@@ -32,3 +32,4 @@ TestSuite
 DbTest
 Model1
 Model3
+\Magento\Framework\Error\Processor
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/LayoutTest.php b/dev/tests/static/testsuite/Magento/Test/Legacy/LayoutTest.php
index 2db32dc0ab6ae12ae2af8f4e2fe486f851f9635f..095c485b3ee8296c0b56c483b49088968d16f7a7 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/LayoutTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/LayoutTest.php
@@ -263,7 +263,6 @@ class LayoutTest extends \PHPUnit_Framework_TestCase
             'addDatabaseBlock',
             'addInputTypeTemplate',
             'addNotice',
-            'addPriceBlockType',
             'addReportTypeOption',
             'addTab',
             'addTabAfter',
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php
index 169d402d0afe666c5a4e307dd238556826c4f15c..0314b7739748e604af1cc4581a92632dd7b5c848 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php
@@ -2399,6 +2399,8 @@ return array(
     ['Magento\Backend\Model\Resource\Translate', 'Magento\Translation\Model\Resource\Translate'],
     ['Magento\Backend\Model\Resource\Translate\String', 'Magento\Translation\Model\Resource\String'],
     ['Magento\Core\Model\Layout', 'Magento\Framework\View\Layout'],
+    ['Magento\Catalog\Block\Product\Price\Template'],
+    ['Magento\Bundle\Block\Catalog\Product\View'],
     ['Magento\Backup\Archive\Tar', 'Magento\Framework\Backup\Archive\Tar'],
     ['Magento\Backup\Db\BackupDbInterface', 'Magento\Framework\Backup\Db\BackupDbInterface'],
     ['Magento\Backup\Db\BackupFactory', 'Magento\Framework\Backup\Db\BackupFactory'],
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php
index e3225da0afa98fbc14c7adff734f9a55687caf69..a794a000b55b232dcc5c4cf6cfacaa99446e00a0 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php
@@ -599,4 +599,14 @@ return array(
     array('CONFIG_KEY_LOCALE', 'Magento\Framework\Translate'),
     array('CONFIG_KEY_SCOPE', 'Magento\Framework\Translate'),
     array('CONFIG_KEY_DESIGN_THEME', 'Magento\Framework\Translate'),
+    array(
+        'XML_NODE_MAX_INDEX_COUNT',
+        'Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction',
+        'Magento\Catalog\Model\Indexer\Product\Flat\FlatTableBuilder'
+    ),
+    array(
+        'ATTRIBUTES_CHUNK_SIZE',
+        'Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction',
+        'Magento\Catalog\Model\Indexer\Product\Flat\Action\Indexer'
+    ),
 );
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php
index 919d33e33acef850c7a18dce7022cc7ed170c5b4..c90ca1dd917bfdb004eda393e16003e83a845290 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php
@@ -1665,4 +1665,22 @@ return array(
     ['setCustomer', 'Magento\Checkout\Model\Session', 'Magento\Checkout\Model\Session::setCustomerData'],
     ['getPersistentName', 'Magento\Persistent\Helper\Data'],
     ['getCustomerDataObject', 'Magento\Persistent\Helper\Session'],
+    ['getFlatTableName', 'Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction'],
+    ['deleteProductsFromStore', 'Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction'],
+    ['getPriceHtml', 'Magento\Rss\Block\Catalog\AbstractCatalog'],
+    ['_getPriceBlock', 'Magento\Rss\Block\Catalog\AbstractCatalog'],
+    ['_construct', 'Magento\Catalog\Block\Product\Widget\NewWidget'],
+    ['_getPriceBlock', 'Magento\Catalog\Block\Product\AbstractProduct'],
+    ['_getPriceBlockTemplate', 'Magento\Catalog\Block\Product\AbstractProduct'],
+    ['_preparePriceRenderer', 'Magento\Catalog\Block\Product\AbstractProduct'],
+    ['addPriceBlock', 'Magento\Catalog\Block\Product\AbstractProduct'],
+    ['getTierPriceHtml', 'Magento\Catalog\Block\Product\AbstractProduct'],
+    ['_prepareLayout', 'Magento\Catalog\Block\Product\AbstractProduct'],
+    ['getTierPriceHtml', 'Magento\GroupedProduct\Block\Product\View\Type\Grouped'],
+    ['_construct', 'Magento\Reports\Block\Product\Widget\Viewed\Item'],
+    ['addPriceBlockType', 'Magento\Rss\Block\Wishlist'],
+    ['getTierPriceTemplate', 'Magento\Catalog\Block\Product\AbstractProduct'],
+    ['getTierPrices', 'Magento\Catalog\Block\Product\AbstractProduct'],
+    ['getTierPrices', 'Magento\Catalog\Block\Product\Price'],
+    ['processTierPrices', 'Magento\Weee\Helper\Data'],
 );
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php
index 505951cccdf8747f2129d8f800560d6b90e88691..cfde7648766ff6d748ecd3cad967d1468860e635 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php
@@ -338,4 +338,6 @@ return array(
     ['_layout', 'Magento\Install\App\Action\Plugin\Design'],
     ['_layout', 'Magento\Framework\View\DesignLoader'],
     ['_area', 'Magento\Framework\View\Layout'],
+    ['_coreData', '\Magento\Rss\Block\Catalog\Special', 'priceCurrency'],
+    ['_tierPriceDefaultTemplate', 'Magento\Catalog\Block\Product\AbstractProduct'],
 );
diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/words_ce.xml b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/words_ce.xml
index 0a5d039febdc849233bd48c442beb75f685d3172..d9e414c4f0199681fcb20a81463cab70ae981c41 100644
--- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/words_ce.xml
+++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/words_ce.xml
@@ -43,6 +43,7 @@
         <word>secure_base_url}}js/</word>
         <word>secure_base_url}}skin/</word>
         <word>secure_base_url}}media/</word>
+        <word>head.js</word>
         <!-- typos -->
         <word>overriden</word>
         <word>retrive</word>
@@ -82,5 +83,37 @@
             <path>dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php</path>
             <word>overriden</word>
         </item>
+        <item>
+            <path>app/code/Magento/Paypal/view/frontend/express/shortcut.phtml</path>
+            <word>head.js</word>
+        </item>
+        <item>
+            <path>app/code/Magento/Bundle/view/adminhtml/product/edit/bundle.phtml</path>
+            <word>head.js</word>
+        </item>
+        <item>
+            <path>app/code/Magento/Webapi/view/adminhtml/integration/activate/permissions/tab/webapi.phtml</path>
+            <word>head.js</word>
+        </item>
+        <item>
+            <path>app/code/Magento/Install/view/install/</path>
+            <word>head.js</word>
+        </item>
+        <item>
+            <path>app/code/Magento/GiftCard/view/adminhtml/catalog/product/composite/fieldset/giftcard.phtml</path>
+            <word>head.js</word>
+        </item>
+        <item>
+            <path>app/code/Magento/GiftRegistry/view/adminhtml/edit/attributes.phtml</path>
+            <word>head.js</word>
+        </item>
+        <item>
+            <path>app/code/Magento/GiftRegistry/view/adminhtml/edit/type/select.phtml</path>
+            <word>head.js</word>
+        </item>
+        <item>
+            <path>pub/lib/mage/mage.js</path>
+            <word>head.js</word>
+        </item>
     </whitelist>
 </config>
diff --git a/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/whitelist/common.txt b/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/whitelist/common.txt
index 899db1d40995b37966795f0b45b220f372a50d20..7ec547860ac647cd29a66c6dcd1793d91880b58c 100644
--- a/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/whitelist/common.txt
+++ b/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcs/whitelist/common.txt
@@ -1,9 +1,10 @@
 # Files or directories that are included into php code sniffer analysis
 # Glob patterns are supported
 #
-app/
-dev/
+app
+dev
+downloader/app/Magento
+downloader/lib/Magento
 index.php
 lib/Magento
-downloader/lib/Magento
-downloader/app/Magento
+pub
diff --git a/dev/tests/unit/framework/Magento/TestFramework/Listener/GarbageCleanup.php b/dev/tests/unit/framework/Magento/TestFramework/Listener/GarbageCleanup.php
index 57ca7b524a7d5655d11c59bac927965620d0f2ab..53a5ad52df9a747170b7067c8d8c10979fc3e3a0 100644
--- a/dev/tests/unit/framework/Magento/TestFramework/Listener/GarbageCleanup.php
+++ b/dev/tests/unit/framework/Magento/TestFramework/Listener/GarbageCleanup.php
@@ -59,6 +59,15 @@ class GarbageCleanup implements \PHPUnit_Framework_TestListener
     {
     }
 
+    /**
+     * {@inheritdoc}
+     * @SuppressWarnings(PHPMD.ShortVariable)
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     */
+    public function addRiskyTest(\PHPUnit_Framework_Test $test, \Exception $e, $time)
+    {
+    }
+
     /**
      * {@inheritdoc}
      * @SuppressWarnings(PHPMD.ShortVariable)
diff --git a/dev/tests/unit/framework/bootstrap.php b/dev/tests/unit/framework/bootstrap.php
index 146844c585325b905a0f8241b3e0ac12281168a0..3cf244db157085d9ddc5680e8450099b6fbc8ab8 100644
--- a/dev/tests/unit/framework/bootstrap.php
+++ b/dev/tests/unit/framework/bootstrap.php
@@ -29,7 +29,7 @@ if (!defined('TESTS_TEMP_DIR')) {
 
 require BP . '/app/functions.php';
 require BP . '/app/autoload.php';
-\Magento\Framework\Autoload\IncludePath::addIncludePath(
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(
     array(
         __DIR__,
         realpath(__DIR__ . '/../testsuite'),
diff --git a/dev/tests/unit/framework/tests/unit/framework/bootstrap.php b/dev/tests/unit/framework/tests/unit/framework/bootstrap.php
index 4fbac1ae7414cca8c491036e455e1a8c075a72ec..5a8075bd3ea072813327f674bff5d754ebf80d39 100644
--- a/dev/tests/unit/framework/tests/unit/framework/bootstrap.php
+++ b/dev/tests/unit/framework/tests/unit/framework/bootstrap.php
@@ -27,6 +27,6 @@
 
 $rootDir = realpath(__DIR__ . '/../../../../../../..');
 require __DIR__ . '/../../../../../../../app/autoload.php';
-\Magento\Framework\Autoload\IncludePath::addIncludePath(
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(
     array($rootDir . '/lib/', $rootDir . '/dev/tests/unit/framework/', $rootDir . '/app/code/', $rootDir . '/app')
 );
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Block/Catalog/Product/View/Type/BundleTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Block/Catalog/Product/View/Type/BundleTest.php
index 07e1d0974e7b28f09847285835b0e89330c8b49d..863c33277bf9da1334bf2cf74ce82460d0d14545 100644
--- a/dev/tests/unit/testsuite/Magento/Bundle/Block/Catalog/Product/View/Type/BundleTest.php
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Block/Catalog/Product/View/Type/BundleTest.php
@@ -59,13 +59,12 @@ class BundleTest extends \PHPUnit_Framework_TestCase
 
         $optionBlock = $this->getMock(
             '\Magento\Bundle\Block\Catalog\Product\View\Type\Bundle\Option\Checkbox',
-            array('setOption', 'toHtml', 'getPriceBlockTypes'),
+            array('setOption', 'toHtml'),
             array(),
             '',
             false
         );
         $optionBlock->expects($this->any())->method('setOption')->will($this->returnValue($optionBlock));
-        $optionBlock->expects($this->any())->method('getPriceBlockTypes')->will($this->returnValue(array()));
         $optionBlock->expects($this->any())->method('toHtml')->will($this->returnValue('option html'));
         $layout = $this->getMock(
             'Magento\Framework\View\Layout',
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Adjustment/CalculatorTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Adjustment/CalculatorTest.php
index ac3c56e5dfed29b7f3db08b3a242837d44098b88..10a3b219d1637e2f1d62f4c77349aab70af029d4 100644
--- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Adjustment/CalculatorTest.php
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Adjustment/CalculatorTest.php
@@ -71,7 +71,10 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->saleableItem = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
+        $this->saleableItem = $this->getMockBuilder('Magento\Catalog\Model\Product')
+            ->setMethods(['getPriceInfo', 'getPriceType', '__wakeup'])
+            ->disableOriginalConstructor()
+            ->getMock();
         $priceInfo = $this->getMock('Magento\Framework\Pricing\PriceInfoInterface', [], [], '', true);
         $priceInfo->expects($this->any())->method('getPrice')->will($this->returnCallback(function ($type) {
             if (!isset($this->priceMocks[$type])) {
@@ -90,15 +93,15 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase
 
         $factoryCallback = $this->returnCallback(function () {
             list(, $selectionMock) = func_get_args();
-            $bundlePrice = $this->getMockBuilder('\Magento\Bundle\Pricing\Price\BundleSelectionPriceInterface')
+            $bundlePrice = $this->getMockBuilder('Magento\Bundle\Pricing\Price\BundleSelectionPrice')
                 ->setMethods(['getAmount'])
+                ->disableOriginalConstructor()
                 ->getMock();
             $bundlePrice->expects($this->any())->method('getAmount')
                 ->will($this->returnValue($selectionMock->getAmountMock()));
             return $bundlePrice;
         });
         $this->selectionFactory->expects($this->any())->method('create')->will($factoryCallback);
-
         $this->model = new Calculator($this->baseCalculator, $this->amountFactory, $this->selectionFactory);
     }
 
@@ -122,11 +125,11 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase
         }
         $price = $this->getMock('Magento\Bundle\Pricing\Price\BundleOptionPrice', [], [], '', false);
         $price->expects($this->atLeastOnce())->method('getOptions')->will($this->returnValue($options));
-        $this->priceMocks[Price\BundleOptionPriceInterface::PRICE_TYPE_BUNDLE_OPTION] = $price;
+        $this->priceMocks[Price\BundleOptionPrice::PRICE_CODE] = $price;
 
         // Price type of saleable items
         $this->saleableItem->expects($this->any())->method('getPriceType')->will($this->returnValue(
-            ProductPrice::PRICE_TYPE_FIXED
+            ProductPrice::PRICE_TYPE_DYNAMIC
         ));
 
         $this->amountFactory->expects($this->atLeastOnce())->method('create')
@@ -210,7 +213,10 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase
             'case with getting maximum amount' => $this->getCaseWithMaxAmount(),
 
             // third case without saleable items
-            'case without saleable items' => $this->getCaseWithoutSaleableItems()
+            'case without saleable items' => $this->getCaseWithoutSaleableItems(),
+
+            // fourth case without require options
+            'case without required options' => $this->getCaseMinAmountWithoutRequiredOptions(),
         ];
     }
 
@@ -390,4 +396,82 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase
             ]
         ];
     }
+
+    /**
+     * Array for data provider dataProviderForGetterAmount for case 'case without required options'
+     *
+     * @return array
+     */
+    protected function getCaseMinAmountWithoutRequiredOptions()
+    {
+        return [
+            'amountForBundle' => [
+                'adjustmentsAmounts' => [],
+                'amount' => null
+            ],
+            'optionList' => [
+                // first option
+                [
+                    'isMultiSelection' => false,
+                    'data' => [
+                        'title'         => 'test option 1',
+                        'default_title' => 'test option 1',
+                        'type'          => 'select',
+                        'option_id'     => '1',
+                        'position'      => '0',
+                        'required'      => '0',
+                    ],
+                    'selections' => [
+                        'first product selection'  => [
+                            'data'   => ['price' => 20.],
+                            'amount' => [
+                                'adjustmentsAmounts' => ['tax' => 8],
+                                'amount' => 8
+                            ]
+                        ],
+                        'second product selection'  => [
+                            'data'   => ['price' => 30.],
+                            'amount' => [
+                                'adjustmentsAmounts' => ['tax' => 10],
+                                'amount' => 12
+                            ]
+                        ],
+                    ]
+                ],
+                // second option
+                [
+                    'isMultiSelection' => false,
+                    'data' => [
+                        'title'         => 'test option 2',
+                        'default_title' => 'test option 2',
+                        'type'          => 'select',
+                        'option_id'     => '2',
+                        'position'      => '1',
+                        'required'      => '0',
+                    ],
+                    'selections' => [
+                        'first product selection'  => [
+                            'data'   => ['price' => 25.],
+                            'amount' => [
+                                'adjustmentsAmounts' => ['tax' => 8],
+                                'amount' => 9
+                            ]
+                        ],
+                        'second product selection'  => [
+                            'data'   => ['price' => 35.],
+                            'amount' => [
+                                'adjustmentsAmounts' => ['tax' => 10],
+                                'amount' => 10
+                            ]
+                        ],
+                    ]
+                ]
+            ],
+            'expectedResult' => [
+                'isMinAmount' => true,
+                'fullAmount'  => 8.,
+                'adjustments' => ['tax' => 8]
+            ]
+        ];
+    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BasePriceTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BasePriceTest.php
index 87fd8fc89377419ebd568e5b26eb72a7418995c6..e74eb2e392014f848f036ec19d162a70f405d816 100644
--- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BasePriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BasePriceTest.php
@@ -64,13 +64,13 @@ class BasePriceTest extends \PHPUnit_Framework_TestCase
 
         $objectHelper = new \Magento\TestFramework\Helper\ObjectManager($this);
         $this->model = $objectHelper->getObject('Magento\Bundle\Pricing\Price\BasePrice', [
-            'salableItem' => $this->saleable,
+            'saleableItem' => $this->saleable,
             'quantity' => $this->quantity
         ]);
     }
 
     /**
-     * @covers \Magento\Bundle\Pricing\Price\BasePrice::applyDiscount
+     * @covers \Magento\Bundle\Pricing\Price\BasePrice::calculateBaseValue
      * @covers \Magento\Bundle\Pricing\Price\BasePrice::getValue
      */
     public function testGetValue()
@@ -83,7 +83,7 @@ class BasePriceTest extends \PHPUnit_Framework_TestCase
 
         $pricesIncludedInBase = [];
         foreach ($priceValues as $priceValue) {
-            $price = $this->getMock('Magento\Framework\Pricing\Price\PriceInterface');
+            $price = $this->getMock('Magento\Catalog\Pricing\Price\RegularPrice', [], [], '', false);
             $price->expects($this->atLeastOnce())
                 ->method('getValue')
                 ->will($this->returnValue($priceValue));
@@ -91,7 +91,7 @@ class BasePriceTest extends \PHPUnit_Framework_TestCase
         }
 
         $this->priceInfo->expects($this->once())
-            ->method('getPricesIncludedInBase')
+            ->method('getPrices')
             ->will($this->returnValue($pricesIncludedInBase));
 
         $tearPrice = $this->getMock('Magento\Framework\Pricing\Price\PriceInterface');
@@ -112,9 +112,9 @@ class BasePriceTest extends \PHPUnit_Framework_TestCase
         $this->priceInfo->expects($this->any())
             ->method('getPrice')
             ->will($this->returnValueMap([
-                [CatalogPrice\TierPriceInterface::PRICE_TYPE_TIER, $this->quantity, $tearPrice],
-                [CatalogPrice\GroupPriceInterface::PRICE_TYPE_GROUP, $this->quantity, $groupPrice],
-                [CatalogPrice\SpecialPriceInterface::PRICE_TYPE_SPECIAL, $this->quantity, $specialPrice],
+                [CatalogPrice\TierPrice::PRICE_CODE, $this->quantity, $tearPrice],
+                [CatalogPrice\GroupPrice::PRICE_CODE, $this->quantity, $groupPrice],
+                [CatalogPrice\SpecialPrice::PRICE_CODE, $this->quantity, $specialPrice],
             ]));
 
         $this->assertEquals($result, $this->model->getValue());
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleOptionPriceTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleOptionPriceTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..b0c0d288b64b325253a9ab5a744547bf459a910e
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleOptionPriceTest.php
@@ -0,0 +1,400 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Bundle\Pricing\Price;
+
+use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper;
+
+class BundleOptionPriceTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Bundle\Pricing\Price\BundleOptionPrice
+     */
+    protected $bundleOptionPrice;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $baseCalculator;
+
+    /**
+     * @var ObjectManagerHelper
+     */
+    protected $objectManagerHelper;
+
+    /**
+     * @var \Magento\Framework\Pricing\Object\SaleableInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $saleableItemMock;
+
+    /**
+     * @var \Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $bundleCalculatorMock;
+
+    /**
+     * @var \Magento\Bundle\Pricing\Price\BundleSelectionFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $selectionFactoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $amountFactory;
+
+    /**
+     * @var \Magento\Framework\Pricing\PriceInfo\Base|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $priceInfoMock;
+
+    protected function setUp()
+    {
+        $this->priceInfoMock = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
+        $this->saleableItemMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
+        $this->saleableItemMock->expects($this->once())
+            ->method('getPriceInfo')
+            ->will($this->returnValue($this->priceInfoMock));
+
+        $this->saleableItemMock->expects($this->once())
+            ->method('setQty')
+            ->will($this->returnSelf());
+
+        $this->selectionFactoryMock = $this->getMockBuilder('Magento\Bundle\Pricing\Price\BundleSelectionFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->amountFactory = $this->getMock('Magento\Framework\Pricing\Amount\AmountFactory', [], [], '', false);
+        $factoryCallback = $this->returnCallback(
+            function ($fullAmount, $adjustments) {
+                return $this->createAmountMock(['amount' => $fullAmount, 'adjustmentAmounts' => $adjustments]);
+            }
+        );
+        $this->amountFactory->expects($this->any())->method('create')->will($factoryCallback);
+        $this->baseCalculator = $this->getMock('Magento\Framework\Pricing\Adjustment\Calculator', [], [], '', false);
+        $this->bundleCalculatorMock = $this->getMockBuilder('Magento\Bundle\Pricing\Adjustment\Calculator')
+            ->setConstructorArgs([$this->baseCalculator, $this->amountFactory, $this->selectionFactoryMock])
+            ->setMethods(['getOptionsAmount'])
+            ->getMock();
+        $this->objectManagerHelper = new ObjectManagerHelper($this);
+        $this->bundleOptionPrice = $this->objectManagerHelper->getObject(
+            'Magento\Bundle\Pricing\Price\BundleOptionPrice',
+            [
+                'saleableItem' => $this->saleableItemMock,
+                'quantity' => 1.,
+                'calculator' => $this->bundleCalculatorMock,
+                'bundleSelectionFactory' => $this->selectionFactoryMock
+            ]
+        );
+    }
+
+    /**
+     * @dataProvider getOptionsDataProvider
+     */
+    public function testGetOptions($selectionCollection)
+    {
+        $this->prepareOptionMocks($selectionCollection);
+        $this->assertSame($selectionCollection, $this->bundleOptionPrice->getOptions());
+        $this->assertSame($selectionCollection, $this->bundleOptionPrice->getOptions());
+    }
+
+    /**
+     * @param array $selectionCollection
+     * @return void
+     */
+    protected function prepareOptionMocks($selectionCollection)
+    {
+        $this->saleableItemMock->expects($this->atLeastOnce())
+            ->method('getStoreId')
+            ->will($this->returnValue(1));
+
+        $priceTypeMock = $this->getMock('Magento\Bundle\Model\Product\Type', [], [], '', false);
+        $priceTypeMock->expects($this->atLeastOnce())
+            ->method('setStoreFilter')
+            ->with($this->equalTo(1), $this->equalTo($this->saleableItemMock))
+            ->will($this->returnSelf());
+
+        $optionIds = ['41', '55'];
+        $priceTypeMock->expects($this->atLeastOnce())
+            ->method('getOptionsIds')
+            ->with($this->equalTo($this->saleableItemMock))
+            ->will($this->returnValue($optionIds));
+
+        $priceTypeMock->expects($this->atLeastOnce())
+            ->method('getSelectionsCollection')
+            ->with($this->equalTo($optionIds), $this->equalTo($this->saleableItemMock))
+            ->will($this->returnValue($selectionCollection));
+
+        $collection = $this->getMock('Magento\Bundle\Model\Resource\Option\Collection', [], [], '', false);
+        $collection->expects($this->atLeastOnce())
+            ->method('appendSelections')
+            ->with($this->equalTo($selectionCollection), $this->equalTo(false), $this->equalTo(false))
+            ->will($this->returnValue($selectionCollection));
+
+        $priceTypeMock->expects($this->atLeastOnce())
+            ->method('getOptionsCollection')
+            ->with($this->equalTo($this->saleableItemMock))
+            ->will($this->returnValue($collection));
+
+        $this->saleableItemMock->expects($this->atLeastOnce())
+            ->method('getTypeInstance')
+            ->will($this->returnValue($priceTypeMock));
+    }
+
+    public function getOptionsDataProvider()
+    {
+        return [
+            ['1', '2']
+        ];
+    }
+
+    /**
+     * @param float $selectionQty
+     * @param float|bool $selectionAmount
+     * @dataProvider selectionAmountDataProvider
+     */
+    public function testGetOptionSelectionAmount($selectionQty, $selectionAmount)
+    {
+        $selection = $this->getMock('Magento\Catalog\Model\Product', ['getSelectionQty', '__wakeup'], [], '', false);
+        $selection->expects($this->once())
+            ->method('getSelectionQty')
+            ->will($this->returnValue($selectionQty));
+        $priceMock = $this->getMock('Magento\Bundle\Pricing\Price\BundleSelectionPrice', [], [], '', false);
+        $priceMock->expects($this->once())
+            ->method('getAmount')
+            ->will($this->returnValue($selectionAmount));
+        $this->selectionFactoryMock->expects($this->once())
+            ->method('create')
+            ->with($this->equalTo($this->saleableItemMock), $this->equalTo($selection), $this->equalTo($selectionQty))
+            ->will($this->returnValue($priceMock));
+        $this->assertSame($selectionAmount, $this->bundleOptionPrice->getOptionSelectionAmount($selection));
+    }
+
+    /**
+     * @return array
+     */
+    public function selectionAmountDataProvider()
+    {
+        return [
+            [1., 50.5],
+            [2.2, false]
+        ];
+    }
+
+    public function testGetAmount()
+    {
+        $amountMock = $this->getMock('Magento\Framework\Pricing\Amount\AmountInterface');
+        $this->bundleCalculatorMock->expects($this->once())
+            ->method('getOptionsAmount')
+            ->with($this->equalTo($this->saleableItemMock))
+            ->will($this->returnValue($amountMock));
+        $this->assertSame($amountMock, $this->bundleOptionPrice->getAmount());
+    }
+
+    /**
+     * Create amount mock
+     *
+     * @param array $amountData
+     * @return \Magento\Framework\Pricing\Amount\Base|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected function createAmountMock($amountData)
+    {
+        /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Pricing\Amount\Base $amount */
+        $amount = $this->getMock('Magento\Framework\Pricing\Amount\Base', [], [], '', false);
+        $amount->expects($this->any())->method('getAdjustmentAmounts')->will(
+            $this->returnValue(isset($amountData['adjustmentAmounts']) ? $amountData['adjustmentAmounts'] : [])
+        );
+        $amount->expects($this->any())->method('getValue')->will($this->returnValue($amountData['amount']));
+        return $amount;
+    }
+
+    /**
+     * Create option mock
+     *
+     * @param array $optionData
+     * @return \Magento\Bundle\Model\Option|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected function createOptionMock($optionData)
+    {
+        /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Bundle\Model\Option $option */
+        $option = $this->getMock('Magento\Bundle\Model\Option', ['isMultiSelection', '__wakeup'], [], '', false);
+        $option->expects($this->any())->method('isMultiSelection')
+            ->will($this->returnValue($optionData['isMultiSelection']));
+        $selections = [];
+        foreach ($optionData['selections'] as $selectionData) {
+            $selections[] = $this->createSelectionMock($selectionData);
+        }
+        $option->setData($optionData['data']);
+        $option->setData('selections', $selections);
+        return $option;
+    }
+
+    /**
+     * Create selection product mock
+     *
+     * @param array $selectionData
+     * @return \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected function createSelectionMock($selectionData)
+    {
+        $selection = $this->getMockBuilder('Magento\Catalog\Model\Product')
+            ->setMethods(['isSalable', 'getAmount', 'getSelectionQty', '__wakeup'])
+            ->disableOriginalConstructor()
+            ->getMock();
+        // All items are saleable
+        $selection->expects($this->any())->method('isSalable')->will($this->returnValue(true));
+        $selection->setData($selectionData['data']);
+        $amountMock = $this->createAmountMock($selectionData['amount']);
+        $selection->expects($this->any())->method('getAmount')->will($this->returnValue($amountMock));
+        return $selection;
+    }
+
+    /**
+     * @dataProvider getTestDataForCalculation
+     */
+    public function testCalculation($optionList, $expected)
+    {
+        $storeId = 1;
+        $this->saleableItemMock->expects($this->any())->method('getStoreId')->will($this->returnValue($storeId));
+        $this->selectionFactoryMock->expects($this->any())->method('create')->will($this->returnArgument(1));
+
+        $this->baseCalculator->expects($this->atLeastOnce())->method('getAmount')
+            ->will($this->returnValue($this->createAmountMock(['amount' => 0.])));
+
+        $options = [];
+        foreach ($optionList as $optionData) {
+            $options[] = $this->createOptionMock($optionData);
+        }
+        /** @var \PHPUnit_Framework_MockObject_MockObject $optionsCollection */
+        $optionsCollection = $this->getMock('Magento\Bundle\Model\Resource\Option\Collection', [], [], '', false);
+        $optionsCollection->expects($this->atLeastOnce())->method('appendSelections')->will($this->returnSelf());
+        $optionsCollection->expects($this->atLeastOnce())->method('getIterator')
+            ->will($this->returnValue(new \ArrayIterator($options)));
+
+        /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Product\Type\AbstractType $typeMock */
+        $typeMock = $this->getMock('Magento\Bundle\Model\Product\Type', [], [], '', false);
+        $typeMock->expects($this->any())->method('setStoreFilter')->with($storeId, $this->saleableItemMock);
+        $typeMock->expects($this->any())->method('getOptionsCollection')->with($this->saleableItemMock)
+            ->will($this->returnValue($optionsCollection));
+        $this->saleableItemMock->expects($this->any())->method('getTypeInstance')->will($this->returnValue($typeMock));
+
+        $this->assertEquals($expected['min'], $this->bundleOptionPrice->getValue());
+        $this->assertEquals($expected['max'], $this->bundleOptionPrice->getMaxValue());
+    }
+
+    /**
+     * @return array
+     */
+    public function getTestDataForCalculation()
+    {
+        return [
+            'first case' => [
+                'optionList' => [
+                    // first option with single choice of product
+                    [
+                        'isMultiSelection' => false,
+                        'data' => [
+                            'title' => 'test option 1',
+                            'default_title' => 'test option 1',
+                            'type' => 'select',
+                            'option_id' => '1',
+                            'position' => '0',
+                            'required' => '1',
+                        ],
+                        'selections' => [
+                            [
+                                'data' => ['price' => 70.],
+                                'amount' => ['amount' => 70]
+                            ],
+                            [
+                                'data' => ['price' => 80.],
+                                'amount' => ['amount' => 80]
+                            ],
+                            [
+                                'data' => ['price' => 50.],
+                                'amount' => ['amount' => 50]
+                            ]
+                        ]
+                    ],
+                    // second not required option
+                    [
+                        'isMultiSelection' => false,
+                        'data' => [
+                            'title' => 'test option 2',
+                            'default_title' => 'test option 2',
+                            'type' => 'select',
+                            'option_id' => '2',
+                            'position' => '1',
+                            'required' => '0',
+                        ],
+                        'selections' => [
+                            [
+                                'data' => ['value' => 20.],
+                                'amount' => ['amount' => 20]
+                            ]
+                        ]
+                    ],
+                    // third with multi-selection
+                    [
+                        'isMultiSelection' => true,
+                        'data' => [
+                            'title' => 'test option 3',
+                            'default_title' => 'test option 3',
+                            'type' => 'select',
+                            'option_id' => '3',
+                            'position' => '2',
+                            'required' => '1',
+                        ],
+                        'selections' => [
+                            [
+                                'data' => ['price' => 40.],
+                                'amount' => ['amount' => 40]
+                            ],
+                            [
+                                'data' => ['price' => 20.],
+                                'amount' => ['amount' => 20]
+                            ],
+                            [
+                                'data' => ['price' => 60.],
+                                'amount' => ['amount' => 60]
+                            ],
+                        ]
+                    ],
+                    // fourth without selections
+                    [
+                        'isMultiSelection' => true,
+                        'data' => [
+                            'title' => 'test option 3',
+                            'default_title' => 'test option 3',
+                            'type' => 'select',
+                            'option_id' => '4',
+                            'position' => '3',
+                            'required' => '1',
+                        ],
+                        'selections' => []
+                    ],
+                ],
+                'expected' => ['min' => 70, 'max' => 220]
+            ]
+        ];
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleSelectionFactoryTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleSelectionFactoryTest.php
index e933d44975cefd8b7a710ff0c68e6468f27b74ee..ab6a66deb7a3756decd4308231e4092e6eb24d36 100644
--- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleSelectionFactoryTest.php
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleSelectionFactoryTest.php
@@ -45,8 +45,8 @@ class BundleSelectionFactoryTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->bundleMock = $this->getMock('Magento\Framework\Pricing\Object\SaleableInterface');
-        $this->selectionMock = $this->getMock('Magento\Framework\Pricing\Object\SaleableInterface');
+        $this->bundleMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
+        $this->selectionMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
 
         $this->objectManagerMock = $this->getMock('Magento\Framework\ObjectManager');
 
@@ -61,7 +61,7 @@ class BundleSelectionFactoryTest extends \PHPUnit_Framework_TestCase
 
     public function testCreate()
     {
-        $result = $this->getMock('Magento\Bundle\Pricing\Price\BundleSelectionPriceInterface');
+        $result = $this->getMock('Magento\Bundle\Pricing\Price\BundleSelectionPrice', [], [], '', false);
         $this->objectManagerMock->expects($this->once())
             ->method('create')
             ->with(
@@ -70,7 +70,7 @@ class BundleSelectionFactoryTest extends \PHPUnit_Framework_TestCase
                     [
                         'test' => 'some value',
                         'bundleProduct' => $this->bundleMock,
-                        'salableItem' => $this->selectionMock,
+                        'saleableItem' => $this->selectionMock,
                         'quantity' => 2.
                     ]
                 )
@@ -96,7 +96,7 @@ class BundleSelectionFactoryTest extends \PHPUnit_Framework_TestCase
                     [
                         'test' => 'some value',
                         'bundleProduct' => $this->bundleMock,
-                        'salableItem' => $this->selectionMock,
+                        'saleableItem' => $this->selectionMock,
                         'quantity' => 2.
                     ]
                 )
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleSelectionPriceTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleSelectionPriceTest.php
index 8bcf2ae9ea97040c63fe06a5f199bab4d4463ea9..c878000fdd252f55667ebe0340f4a200c2df0856 100644
--- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleSelectionPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/BundleSelectionPriceTest.php
@@ -126,14 +126,14 @@ class BundleSelectionPriceTest extends \PHPUnit_Framework_TestCase
     public function getPriceCallback($priceType)
     {
         switch ($priceType) {
-            case CatalogPrice\BasePrice::PRICE_TYPE_BASE_PRICE:
+            case CatalogPrice\BasePrice::PRICE_CODE:
                 $this->basePriceMock = $this->getMock('Magento\Bundle\Pricing\Price\BasePrice', [], [], '', false);
                 $this->basePriceMock->expects($this->once())
-                    ->method('applyDiscount')
+                    ->method('calculateBaseValue')
                     ->with($this->expectedResult)
                     ->will($this->returnArgument(0));
                 return $this->basePriceMock;
-            case CatalogPrice\FinalPriceInterface::PRICE_TYPE_FINAL:
+            case CatalogPrice\FinalPrice::PRICE_CODE:
                 $this->finalPriceMock = $this->getMock(
                     'Magento\Catalog\Pricing\Price\FinalPrice',
                     [],
@@ -145,7 +145,7 @@ class BundleSelectionPriceTest extends \PHPUnit_Framework_TestCase
                     ->method('getValue')
                     ->will($this->returnValue($this->finalPriceValue));
                 return $this->finalPriceMock;
-            case CatalogPrice\RegularPrice::PRICE_TYPE_PRICE_DEFAULT:
+            case CatalogPrice\RegularPrice::PRICE_CODE:
                 $this->regularPriceMock = $this->getMock(
                     'Magento\Catalog\Pricing\Price\RegularPrice',
                     [],
@@ -215,7 +215,7 @@ class BundleSelectionPriceTest extends \PHPUnit_Framework_TestCase
         $this->bundleSelectionPrice = $this->objectManagerHelper->getObject(
             'Magento\Bundle\Pricing\Price\BundleSelectionPrice',
             [
-                'salableItem' => $this->saleableInterfaceMock,
+                'saleableItem' => $this->saleableInterfaceMock,
                 'quantity' => $this->quantity,
                 'calculator' => $this->calculatorInterfaceMock,
                 'bundleProduct' => $this->productMock,
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/FinalPriceTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/FinalPriceTest.php
index 6eca9f3929cd750fc5a226f2c66276df2cb9e6ee..f1e4daf947cca653c3e00cee7015dbff1d21c04c 100644
--- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/FinalPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/FinalPriceTest.php
@@ -60,7 +60,7 @@ class FinalPriceTest extends \PHPUnit_Framework_TestCase
      */
     protected function prepareMock()
     {
-        $this->saleableInterfaceMock = $this->getMock('Magento\Framework\Pricing\Object\SaleableInterface');
+        $this->saleableInterfaceMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
         $this->bundleCalculatorMock = $this->getMock('Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface');
 
         $this->basePriceMock = $this->getMock('Magento\Bundle\Pricing\Price\BasePrice', [], [], '', false);
@@ -72,12 +72,13 @@ class FinalPriceTest extends \PHPUnit_Framework_TestCase
             ->disableOriginalConstructor()
             ->getMock();
 
-        $this->priceInfoMock = $this->getMock('\Magento\Framework\Pricing\PriceInfoInterface');
+        $this->priceInfoMock = $this->getMock('\Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
+
         $this->priceInfoMock->expects($this->atLeastOnce())
             ->method('getPrice')
             ->will($this->returnValueMap([
-                [\Magento\Catalog\Pricing\Price\BasePrice::PRICE_TYPE_BASE_PRICE, null, $this->basePriceMock],
-                [BundleOptionPriceInterface::PRICE_TYPE_BUNDLE_OPTION, $this->quantity, $this->bundleOptionMock]
+                [\Magento\Catalog\Pricing\Price\BasePrice::PRICE_CODE, $this->basePriceMock],
+                [BundleOptionPrice::PRICE_CODE, $this->quantity, $this->bundleOptionMock]
             ]));
 
         $this->saleableInterfaceMock->expects($this->once())
@@ -85,13 +86,10 @@ class FinalPriceTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($this->priceInfoMock));
 
         $this->objectManagerHelper = new ObjectManagerHelper($this);
-        $this->finalPrice = $this->objectManagerHelper->getObject(
-            'Magento\Bundle\Pricing\Price\FinalPrice',
-            [
-                'salableItem' => $this->saleableInterfaceMock,
-                'quantity' => $this->quantity,
-                'calculator' => $this->bundleCalculatorMock
-            ]
+        $this->finalPrice = new \Magento\Bundle\Pricing\Price\FinalPrice(
+            $this->saleableInterfaceMock,
+            $this->quantity,
+            $this->bundleCalculatorMock
         );
     }
 
@@ -107,7 +105,7 @@ class FinalPriceTest extends \PHPUnit_Framework_TestCase
             ->method('getValue')
             ->will($this->returnValue($optionsValue));
 
-        $this->basePriceMock->expects($this->once())->method('applyDiscount')
+        $this->basePriceMock->expects($this->once())->method('calculateBaseValue')
             ->with($this->equalTo($optionsValue))
             ->will($this->returnValue($discountValue));
 
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/GroupPriceTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/GroupPriceTest.php
index 08bbf7794567aa6dcf7a246b3b7b8386fa7169e3..ce72d34bea88a8a9543ea483d57a8a5a0af19586 100644
--- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/GroupPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/GroupPriceTest.php
@@ -58,7 +58,7 @@ class GroupPriceTest extends \PHPUnit_Framework_TestCase
 
         $objectHelper = new \Magento\TestFramework\Helper\ObjectManager($this);
         $this->model = $objectHelper->getObject('Magento\Bundle\Pricing\Price\GroupPrice', [
-            'salableItem' => $this->saleable
+            'saleableItem' => $this->saleable
         ]);
     }
 
@@ -85,7 +85,7 @@ class GroupPriceTest extends \PHPUnit_Framework_TestCase
             $price = $this->getMock('Magento\Framework\Pricing\Price\PriceInterface');
             $this->priceInfo->expects($this->once())
                 ->method('getPrice')
-                ->with(\Magento\Catalog\Pricing\Price\BasePrice::PRICE_TYPE_BASE_PRICE, null)
+                ->with(\Magento\Catalog\Pricing\Price\BasePrice::PRICE_CODE)
                 ->will($this->returnValue($price));
             $price->expects($this->once())
                 ->method('getValue')
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/SpecialPriceTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/SpecialPriceTest.php
index 7f701ca511553021a13642f8002c47b365c168cd..df83f0af3584b6c7459db2f5ef5d56de46bd7476 100644
--- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/SpecialPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/SpecialPriceTest.php
@@ -63,7 +63,7 @@ class SpecialPriceTest extends \PHPUnit_Framework_TestCase
 
         $objectHelper = new \Magento\TestFramework\Helper\ObjectManager($this);
         $this->model = $objectHelper->getObject('Magento\Bundle\Pricing\Price\SpecialPrice', [
-            'salableItem' => $this->saleable,
+            'saleableItem' => $this->saleable,
             'localeDate' => $this->localeDate
         ]);
     }
@@ -106,7 +106,7 @@ class SpecialPriceTest extends \PHPUnit_Framework_TestCase
             $price = $this->getMock('Magento\Framework\Pricing\Price\PriceInterface');
             $this->priceInfo->expects($this->once())
                 ->method('getPrice')
-                ->with(\Magento\Catalog\Pricing\Price\BasePrice::PRICE_TYPE_BASE_PRICE, null)
+                ->with(\Magento\Catalog\Pricing\Price\BasePrice::PRICE_CODE)
                 ->will($this->returnValue($price));
             $price->expects($this->once())
                 ->method('getValue')
@@ -123,9 +123,9 @@ class SpecialPriceTest extends \PHPUnit_Framework_TestCase
     public function getValueDataProvider()
     {
         return array(
-            ['basePrice' => 100, 'specialPrice' => 40, 'isScopeDateInInterval' => true, 'value' => 60],
-            ['basePrice' => 75, 'specialPrice' => 40, 'isScopeDateInInterval' => true, 'value' => 45],
-            ['basePrice' => 75, 'specialPrice' => 40, 'isScopeDateInInterval' => false, 'value' => false],
+            ['basePrice' => 100, 'specialPrice' => 40, 'isScopeDateInInterval' => true,  'value' => 60],
+            ['basePrice' => 75,  'specialPrice' => 40, 'isScopeDateInInterval' => true,  'value' => 45],
+            ['basePrice' => 75,  'specialPrice' => 40, 'isScopeDateInInterval' => false, 'value' => false],
         );
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/TierPriceTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/TierPriceTest.php
index 50261155e18aeac4734176698eac4bfccfa00d03..516dcc4679aa36bb4efc5c7e3392713b1cc5e97b 100644
--- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/TierPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Price/TierPriceTest.php
@@ -69,7 +69,7 @@ class TierPriceTest extends \PHPUnit_Framework_TestCase
 
         $objectHelper = new \Magento\TestFramework\Helper\ObjectManager($this);
         $this->model = $objectHelper->getObject('Magento\Bundle\Pricing\Price\TierPrice', [
-            'salableItem' => $this->product,
+            'saleableItem' => $this->product,
             'calculator' => $this->calculator
         ]);
     }
@@ -80,7 +80,7 @@ class TierPriceTest extends \PHPUnit_Framework_TestCase
      */
     public function testGetterTierPriceList($tierPrices, $basePrice, $expectedResult)
     {
-        $this->product->setData(TierPrice::PRICE_TYPE_TIER, $tierPrices);
+        $this->product->setData(TierPrice::PRICE_CODE, $tierPrices);
 
         $price = $this->getMock('Magento\Framework\Pricing\Price\PriceInterface');
         $price->expects($this->any())
diff --git a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Render/FinalPriceBoxTest.php b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Render/FinalPriceBoxTest.php
index 946774a100a4e5ead1685648532cf2cfa996adbb..8de3e597e9005e954562a6bea73c71554fe2ee3d 100644
--- a/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Render/FinalPriceBoxTest.php
+++ b/dev/tests/unit/testsuite/Magento/Bundle/Pricing/Render/FinalPriceBoxTest.php
@@ -66,7 +66,7 @@ class FinalPriceBoxTest extends \PHPUnit_Framework_TestCase
 
         $priceInfo->expects($this->atLeastOnce())
             ->method('getPrice')
-            ->with(Price\BundleOptionPriceInterface::PRICE_TYPE_BUNDLE_OPTION)
+            ->with(Price\BundleOptionPrice::PRICE_CODE)
             ->will($this->returnValue($optionPrice));
 
         $optionPrice->expects($this->once())
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/Action/EraserTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/Action/EraserTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..f21da8f4874c75110687d4493b89e7c0800457b3
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/Action/EraserTest.php
@@ -0,0 +1,109 @@
+<?php
+/**
+ *
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Catalog\Model\Indexer\Product\Flat\Action;
+
+
+class EraserTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $connection;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $indexerHelper;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $storeManager;
+
+    /**
+     * @var \Magento\Catalog\Model\Indexer\Product\Flat\Action\Eraser
+     */
+    protected $model;
+
+    protected function setUp()
+    {
+        $resource = $this->getMock('Magento\Framework\App\Resource', array(), array(), '', false);
+        $this->connection = $this->getMock('Magento\Framework\DB\Adapter\AdapterInterface');
+        $resource->expects($this->any())->method('getConnection')->will($this->returnValue($this->connection));
+        $this->indexerHelper = $this->getMock(
+            'Magento\Catalog\Helper\Product\Flat\Indexer',
+            array(),
+            array(), '', false
+        );
+        $this->indexerHelper->expects($this->any())->method('getTable')->will($this->returnArgument(0));
+        $this->indexerHelper->expects($this->any())->method('getFlatTableName')->will($this->returnValueMap(array(
+            array(1, 'store_1_flat'),
+            array(2, 'store_2_flat'),
+        )));
+
+        $this->storeManager = $this->getMock('Magento\Store\Model\StoreManagerInterface');
+        $this->model = new \Magento\Catalog\Model\Indexer\Product\Flat\Action\Eraser(
+            $resource,
+            $this->indexerHelper,
+            $this->storeManager
+        );
+    }
+
+    public function testRemoveDeletedProducts()
+    {
+        $productsToDeleteIds = array(1, 2);
+        $select = $this->getMock('\Magento\Framework\Db\Select', array(), array(), '', false);
+        $select->expects($this->once())->method('from')->with('catalog_product_entity')->will($this->returnSelf());
+        $select->expects($this->once())->method('where')->with('entity_id IN(?)', $productsToDeleteIds)
+            ->will($this->returnSelf());
+        $products = array(array('entity_id' => 2));
+        $statement = $this->getMock('\Zend_Db_Statement_Interface');
+        $statement->expects($this->once())->method('fetchAll')->will($this->returnValue($products));
+        $this->connection->expects($this->once())->method('query')->with($select)
+            ->will($this->returnValue($statement));
+        $this->connection->expects($this->once())->method('select')->will($this->returnValue($select));
+        $this->connection->expects($this->once())->method('delete')
+            ->with('store_1_flat', array('entity_id IN(?)' => array(1)));
+
+        $this->model->removeDeletedProducts($productsToDeleteIds, 1);
+    }
+
+    public function testDeleteProductsFromStoreForAllStores()
+    {
+        $store1 = $this->getMock('Magento\Store\Model\Store', array(), array(), '', false);
+        $store1->expects($this->any())->method('getId')->will($this->returnValue(1));
+        $store2 = $this->getMock('Magento\Store\Model\Store', array(), array(), '', false);
+        $store2->expects($this->any())->method('getId')->will($this->returnValue(2));
+        $this->storeManager->expects($this->once())->method('getStores')
+            ->will($this->returnValue(array($store1, $store2)));
+        $this->connection->expects($this->at(0))->method('delete')
+            ->with('store_1_flat', array('entity_id IN(?)' => array(1)));
+        $this->connection->expects($this->at(1))->method('delete')
+            ->with('store_2_flat', array('entity_id IN(?)' => array(1)));
+
+        $this->model->deleteProductsFromStore(1);
+    }
+} 
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/Action/RowTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/Action/RowTest.php
index 7587adbf284f7e787eced01c247eea269448cc73..dc6779516c57cb4a8d43a99447e230eccd636bec 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/Action/RowTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/Action/RowTest.php
@@ -31,22 +31,105 @@ use Magento\TestFramework\Helper\ObjectManager;
 class RowTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Magento\Catalog\Model\Indexer\Product\Flat\Action\Rows
+     * @var \Magento\Catalog\Model\Indexer\Product\Flat\Action\Row
      */
-    protected $_model;
+    protected $model;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $storeManager;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $store;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $productIndexerHelper;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resource;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $connection;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $flatItemWriter;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $flatItemEraser;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $flatTableBuilder;
 
     public function setUp()
     {
         $objectManager = new ObjectManager($this);
-        $this->_model = $objectManager->getObject('Magento\Catalog\Model\Indexer\Product\Flat\Action\Row');
+
+        $this->connection = $this->getMock('\Magento\Framework\DB\Adapter\AdapterInterface');
+        $this->resource = $this->getMock('Magento\Framework\App\Resource', array(), array(), '', false);
+        $this->resource->expects($this->any())->method('getConnection')
+            ->with('default')
+            ->will($this->returnValue($this->connection));
+        $this->storeManager = $this->getMock('Magento\Store\Model\StoreManagerInterface');
+        $this->store = $this->getMock('Magento\Store\Model\Store', array(), array(), '', false);
+        $this->store->expects($this->any())->method('getId')->will($this->returnValue('store_id_1'));
+        $this->storeManager->expects($this->any())->method('getStores')->will($this->returnValue(array($this->store)));
+        $this->productIndexerHelper = $this->getMock(
+            'Magento\Catalog\Helper\Product\Flat\Indexer', array(), array(), '', false
+        );
+        $this->flatItemEraser = $this->getMock(
+            '\Magento\Catalog\Model\Indexer\Product\Flat\Action\Eraser', array(), array(), '', false
+        );
+        $this->flatItemWriter = $this->getMock(
+            '\Magento\Catalog\Model\Indexer\Product\Flat\Action\Indexer', array(), array(), '', false
+        );
+        $this->flatTableBuilder = $this->getMock(
+            '\Magento\Catalog\Model\Indexer\Product\Flat\FlatTableBuilder', array(), array(), '', false
+        );
+
+        $this->model = $objectManager->getObject('Magento\Catalog\Model\Indexer\Product\Flat\Action\Row', array(
+            'resource' => $this->resource,
+            'storeManager' => $this->storeManager,
+            'productHelper' => $this->productIndexerHelper,
+            'flatItemEraser' => $this->flatItemEraser,
+            'flatItemWriter' => $this->flatItemWriter,
+            'flatTableBuilder' => $this->flatTableBuilder
+        ));
     }
 
     /**
      * @expectedException \Magento\Framework\Model\Exception
      * @expectedExceptionMessage Could not rebuild index for undefined product
      */
-    public function testEmptyId()
+    public function testExecuteWithEmptyId()
     {
-        $this->_model->execute(null);
+        $this->model->execute(null);
+    }
+
+    public function testExecuteWithNonExistingFlatTablesCreatesTables()
+    {
+        $this->productIndexerHelper->expects($this->any())->method('getFlatTableName')
+            ->will($this->returnValue('store_flat_table'));
+        $this->connection->expects($this->any())->method('isTableExists')->with('store_flat_table')
+            ->will($this->returnValue(false));
+        $this->flatItemEraser->expects($this->never())->method('removeDeletedProducts');
+        $this->flatTableBuilder->expects($this->once())->method('build')->with('store_id_1', array('product_id_1'));
+        $this->flatItemWriter->expects($this->once())->method('write')->with('store_id_1', 'product_id_1');
+        $this->model->execute('product_id_1');
     }
 }
+
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Model/Product/Option/Type/FileTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Model/Product/Option/Type/FileTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..d8eb55266ac30cc65069f65b313dbf82bb2317ca
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Model/Product/Option/Type/FileTest.php
@@ -0,0 +1,114 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+namespace Magento\Catalog\Model\Product\Option\Type;
+
+class FileTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\TestFramework\Helper\ObjectManager
+     */
+    protected $objectManager;
+
+    /**
+     * @var \Magento\Framework\Filesystem\Directory\ReadInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $rootDirectory;
+
+    /**
+     * @var \Magento\Core\Helper\File\Storage\Database|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $coreFileStorageDatabase;
+
+    public function setUp()
+    {
+        $this->objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
+
+        $this->rootDirectory = $this->getMockBuilder('Magento\Framework\Filesystem\Directory\ReadInterface')
+            ->disableOriginalConstructor()
+            ->setMethods(['isFile', 'isReadable', 'getAbsolutePath'])
+            ->getMockForAbstractClass();
+
+        $this->coreFileStorageDatabase = $this->getMock(
+            'Magento\Core\Helper\File\Storage\Database',
+            ['copyFile'],
+            [],
+            '',
+            false
+        );
+    }
+
+    /**
+     * @return \Magento\Catalog\Model\Product\Option\Type\File
+     */
+    protected function getFileObject()
+    {
+        return $this->objectManager->getObject(
+            'Magento\Catalog\Model\Product\Option\Type\File',
+            [
+                'saleableItem' => $this->rootDirectory,
+                'priceCurrency' => $this->coreFileStorageDatabase
+            ]
+        );
+    }
+
+    public function testCopyQuoteToOrder()
+    {
+        $optionMock = $this->getMockBuilder(
+            'Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface'
+        )->disableOriginalConstructor()->setMethods(['getValue'])->getMockForAbstractClass();
+
+        $quotePath = '/quote/path/path/uploaded.file';
+        $orderPath = '/order/path/path/uploaded.file';
+
+        $optionMock->expects($this->any())
+            ->method('getValue')
+            ->will($this->returnValue(['quote_path' => $quotePath, 'order_path' => $orderPath]));
+
+        $this->rootDirectory->expects($this->any())
+            ->method('isFile')
+            ->with($this->equalTo($quotePath))
+            ->will($this->returnValue(true));
+
+        $this->rootDirectory->expects($this->any())
+            ->method('isReadable')
+            ->with($this->equalTo($quotePath))
+            ->will($this->returnValue(true));
+
+        $this->rootDirectory->expects($this->any())
+            ->method('getAbsolutePath')
+            ->will($this->returnValue('/file.path'));
+
+        $this->coreFileStorageDatabase->expects($this->any())
+            ->method('copyFile')
+            ->will($this->returnValue('true'));
+
+        $fileObject = $this->getFileObject();
+        $fileObject->setData('configuration_item_option', $optionMock);
+
+        $this->assertInstanceOf(
+            'Magento\Catalog\Model\Product\Option\Type\File',
+            $fileObject->copyQuoteToOrder()
+        );
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Model/ProductTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Model/ProductTest.php
index 8672f4cbbdbbe6ed720920e147f46dfb8d2e329d..ad23bbc4e9fa4a2fe8f8e333c14acc501baa068c 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Model/ProductTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Model/ProductTest.php
@@ -253,4 +253,13 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($this->_priceInfoMock, $this->model->getPriceInfo());
         $this->assertEquals($this->_priceInfoMock, $this->model->reloadPriceInfo());
     }
+
+    /**
+     * Test for get qty
+     */
+    public function testGetQty()
+    {
+        $this->model->setQty(1);
+        $this->assertEquals(1, $this->model->getQty());
+    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/BasePriceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/BasePriceTest.php
index a8255cd56ce7304df25a3100acf7c9f70f640650..b0f87ecaccd1ac98978f5e29729ccb8906757bbe 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/BasePriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/BasePriceTest.php
@@ -41,7 +41,7 @@ class BasePriceTest extends \PHPUnit_Framework_TestCase
     /**
      * @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $salableItemMock;
+    protected $saleableItemMock;
 
     /**
      * @var \Magento\Framework\Pricing\Adjustment\Calculator
@@ -74,14 +74,14 @@ class BasePriceTest extends \PHPUnit_Framework_TestCase
     public function setUp()
     {
         $qty = 1;
-        $this->salableItemMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
+        $this->saleableItemMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
         $this->priceInfoMock = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
         $this->regularPriceMock = $this->getMock('Magento\Catalog\Pricing\Price\RegularPrice', [], [], '', false);
         $this->groupPriceMock = $this->getMock('Magento\Catalog\Pricing\Price\GroupPrice', [], [], '', false);
         $this->specialPriceMock= $this->getMock('Magento\Catalog\Pricing\Price\SpecialPrice', [], [], '', false);
         $this->calculatorMock = $this->getMock('Magento\Framework\Pricing\Adjustment\Calculator', [], [], '', false);
 
-        $this->salableItemMock->expects($this->once())
+        $this->saleableItemMock->expects($this->once())
             ->method('getPriceInfo')
             ->will($this->returnValue($this->priceInfoMock));
         $this->prices = [
@@ -89,7 +89,7 @@ class BasePriceTest extends \PHPUnit_Framework_TestCase
             'group_price' => $this->groupPriceMock,
             'special_price' => $this->specialPriceMock
         ];
-        $this->basePrice = new BasePrice($this->salableItemMock, $qty, $this->calculatorMock);
+        $this->basePrice = new BasePrice($this->saleableItemMock, $qty, $this->calculatorMock);
     }
 
     /**
@@ -99,15 +99,15 @@ class BasePriceTest extends \PHPUnit_Framework_TestCase
     {
         $specialPriceValue = 77;
         $this->priceInfoMock->expects($this->once())
-            ->method('getPricesIncludedInBase')
+            ->method('getPrices')
             ->will($this->returnValue($this->prices));
-        $this->regularPriceMock->expects($this->exactly(2))
+        $this->regularPriceMock->expects($this->exactly(3))
             ->method('getValue')
             ->will($this->returnValue(100));
-        $this->groupPriceMock->expects($this->once())
+        $this->groupPriceMock->expects($this->exactly(2))
             ->method('getValue')
             ->will($this->returnValue(99));
-        $this->specialPriceMock->expects($this->once())
+        $this->specialPriceMock->expects($this->exactly(2))
             ->method('getValue')
             ->will($this->returnValue($specialPriceValue));
         $this->assertSame($specialPriceValue, $this->basePrice->getValue());
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/OptionPriceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/CustomOptionPriceTest.php
similarity index 75%
rename from dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/OptionPriceTest.php
rename to dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/CustomOptionPriceTest.php
index cad83d025ba335f34fd6672f46198566463e4a35..01940100fe92fdec6108d8f9c8af94a5a57258d3 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/OptionPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/CustomOptionPriceTest.php
@@ -31,10 +31,10 @@ use Magento\Framework\Pricing\PriceInfoInterface;
 /**
  * Class OptionPriceTest
  */
-class OptionPriceTest extends \PHPUnit_Framework_TestCase
+class CustomOptionPriceTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Magento\Catalog\Pricing\Price\OptionPrice
+     * @var \Magento\Catalog\Pricing\Price\CustomOptionPrice
      */
     protected $object;
 
@@ -107,11 +107,74 @@ class OptionPriceTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * Return value
+     * Test getValue()
      */
     public function testGetValue()
     {
+        $price = 100;
+        $minPrice = 10;
         $optionId = 1;
+        $type = 'select';
+
+        $optionValueMax = $this->getOptionValueMock($price);
+        $optionValueMin = $this->getOptionValueMock($minPrice);
+
+        $optionItemMock = $this->getMockBuilder('Magento\Catalog\Model\Product\Option')
+            ->disableOriginalConstructor()
+            ->setMethods(['getValues', '__wakeup', 'getIsRequire', 'getId', 'getType'])
+            ->getMock();
+        $optionItemMock->expects($this->once())
+            ->method('getId')
+            ->will($this->returnValue($optionId));
+        $optionItemMock->expects($this->once())
+            ->method('getType')
+            ->will($this->returnValue($type));
+        $optionItemMock->expects($this->once())
+            ->method('getIsRequire')
+            ->will($this->returnValue(true));
+        $optionItemMock->expects($this->any())
+            ->method('getValues')
+            ->will($this->returnValue([$optionValueMax, $optionValueMin]));
+        $options = [$optionItemMock];
+        $this->product->expects($this->once())
+            ->method('getOptions')
+            ->will($this->returnValue($options));
+
+        $result = $this->object->getValue();
+        $this->assertCount(1, $result);
+        $this->assertArrayHasKey('option_id', $result[0]);
+        $this->assertArrayHasKey('type', $result[0]);
+        $this->assertArrayHasKey('min', $result[0]);
+        $this->assertEquals($minPrice, $result[0]['min']);
+    }
+
+    /**
+     * @param int $price
+     * @return \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected function getOptionValueMock($price)
+    {
+        $optionValueMock = $this->getMockBuilder('Magento\Catalog\Model\Product\Option\Value')
+            ->disableOriginalConstructor()
+            ->setMethods(['getPriceType', 'getPrice', 'getId', '__wakeup'])
+            ->getMock();
+        $optionValueMock->expects($this->once())
+            ->method('getPriceType')
+            ->will($this->returnValue('percent'));
+        $optionValueMock->expects($this->once())
+            ->method('getPrice')
+            ->with($this->equalTo(true))
+            ->will($this->returnValue($price));
+        return $optionValueMock;
+    }
+
+    /**
+     * Test getSelectedOptions()
+     */
+    public function testGetSelectedOptions()
+    {
+        $optionId1 = 1;
+        $optionId2 = 2;
         $optionValue = 10;
         $optionType = 'select';
         $optionValueMock = $this->getMockBuilder('Magento\Catalog\Model\Product\Option\DefaultType')
@@ -141,7 +204,7 @@ class OptionPriceTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($optionValue));
         $optionMock->expects($this->at(0))
             ->method('getId')
-            ->will($this->returnValue($optionId));
+            ->will($this->returnValue($optionId1));
         $optionMock->expects($this->once())
             ->method('getType')
             ->will($this->returnValue($optionType));
@@ -152,19 +215,21 @@ class OptionPriceTest extends \PHPUnit_Framework_TestCase
         $optionValueMock->expects($this->once())
             ->method('getValue')
             ->will($this->returnValue($optionValue));
-        $optionIds = new \Magento\Framework\Object(['value' => '1']);
+        $optionIds = new \Magento\Framework\Object(['value' => '1,2']);
 
-        $customOptions = ['option_ids' => $optionIds, 'option_1' => $optionValueMock];
+        $customOptions = ['option_ids' => $optionIds, 'option_1' => $optionValueMock, 'option_2' => null];
         $this->product->setCustomOptions($customOptions);
-        $this->product->expects($this->once())
+        $this->product->expects($this->at(0))
             ->method('getOptionById')
-            ->with($this->equalTo($optionId))
+            ->with($this->equalTo($optionId1))
             ->will($this->returnValue($optionMock));
-        $result = $this->object->getValue();
-        $this->equalTo($optionValue, $result);
+        $this->product->expects($this->at(1))
+            ->method('getOptionById')
+            ->with($this->equalTo($optionId2))
+            ->will($this->returnValue(null));
 
         // Return from cache
-        $result = $this->object->getValue();
+        $result = $this->object->getSelectedOptions();
         $this->equalTo($optionValue, $result);
     }
 
@@ -186,17 +251,7 @@ class OptionPriceTest extends \PHPUnit_Framework_TestCase
             ->method('getAmount')
             ->will($this->returnValue($this->amount));
 
-        $optionValueMock = $this->getMockBuilder('Magento\Catalog\Model\Product\Option\Value')
-            ->disableOriginalConstructor()
-            ->setMethods(['getPriceType', 'getPrice', 'getId', '__wakeup'])
-            ->getMock();
-        $optionValueMock->expects($this->once())
-            ->method('getPriceType')
-            ->will($this->returnValue('percent'));
-        $optionValueMock->expects($this->once())
-            ->method('getPrice')
-            ->with($this->equalTo(true))
-            ->will($this->returnValue($price));
+        $optionValueMock = $this->getOptionValueMock($price);
         $optionValueMock->expects($this->once())
             ->method('getId')
             ->will($this->returnValue($id));
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/FinalPriceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/FinalPriceTest.php
index 123a108585e8890a6d119b97c289d0f88d518496..efad3b08029f3ea4924ed5aba8db506ee6e71083 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/FinalPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/FinalPriceTest.php
@@ -59,7 +59,13 @@ class FinalPriceTest extends \PHPUnit_Framework_TestCase
     public function setUp()
     {
         $this->saleableMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
-        $this->priceInfoMock = $this->getMockForAbstractClass('Magento\Framework\Pricing\PriceInfoInterface');
+        $this->priceInfoMock = $this->basePriceMock = $this->getMock(
+            'Magento\Framework\Pricing\PriceInfo\Base',
+            [],
+            [],
+            '',
+            false
+        );
         $this->basePriceMock = $this->getMock(
             'Magento\Catalog\Pricing\Price\BasePrice',
             [],
@@ -68,16 +74,21 @@ class FinalPriceTest extends \PHPUnit_Framework_TestCase
             false
         );
 
+        $this->calculatorMock = $this->getMock(
+            'Magento\Framework\Pricing\Adjustment\Calculator',
+            [],
+            [],
+            '',
+            false
+        );
+
         $this->saleableMock->expects($this->once())
             ->method('getPriceInfo')
             ->will($this->returnValue($this->priceInfoMock));
         $this->priceInfoMock->expects($this->once())
             ->method('getPrice')
-            ->with($this->equalTo(\Magento\Catalog\Pricing\Price\BasePrice::PRICE_TYPE_BASE_PRICE))
+            ->with($this->equalTo(\Magento\Catalog\Pricing\Price\BasePrice::PRICE_CODE))
             ->will($this->returnValue($this->basePriceMock));
-        $this->calculatorMock = $this->getMockBuilder('Magento\Framework\Pricing\Adjustment\Calculator')
-            ->disableOriginalConstructor()
-            ->getMock();
         $this->model = new \Magento\Catalog\Pricing\Price\FinalPrice($this->saleableMock, 1, $this->calculatorMock);
     }
 
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/GroupPriceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/GroupPriceTest.php
index 82c225547fd3ef689258a4c12f091d2c1377a205..cc3ac4c83a844c821af9ad33168fb21c2b755701 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/GroupPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/GroupPriceTest.php
@@ -48,12 +48,12 @@ class GroupPriceTest extends \PHPUnit_Framework_TestCase
      */
     public function testGroupPrice($groupPrice, $customerGroup, $expected)
     {
-        $salableItemMock = $this->prepareSalableItem($groupPrice);
-        $sessionMock = $this->prepareSession($salableItemMock, $customerGroup);
+        $saleableItemMock = $this->prepareSaleableItem($groupPrice);
+        $sessionMock = $this->prepareSession($saleableItemMock, $customerGroup);
         $groupPriceModel = $this->objectManager->getObject(
             'Magento\Catalog\Pricing\Price\GroupPrice',
             [
-                'salableItem'     => $salableItemMock,
+                'saleableItem'     => $saleableItemMock,
                 'customerSession' => $sessionMock
             ]
         );
@@ -61,18 +61,18 @@ class GroupPriceTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @param \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Product $salableItemMock
+     * @param \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Product $saleableItemMock
      * @param int $customerGroup
      * @return \PHPUnit_Framework_MockObject_MockObject|\Magento\Customer\Model\Session
      */
-    protected function prepareSession($salableItemMock, $customerGroup)
+    protected function prepareSession($saleableItemMock, $customerGroup)
     {
         $session = $this->getMock('Magento\Customer\Model\Session', ['getCustomerGroupId'], [], '', false);
         $session->expects($this->any())
             ->method('getCustomerGroupId')
             ->will($this->returnValue($customerGroup));
 
-        $salableItemMock->expects($this->any())
+        $saleableItemMock->expects($this->any())
             ->method('getCustomerGroupId')
             ->will($this->returnValue(false));
 
@@ -90,21 +90,24 @@ class GroupPriceTest extends \PHPUnit_Framework_TestCase
         $groupPriceModel = $this->objectManager->getObject(
             'Magento\Catalog\Pricing\Price\GroupPrice',
             [
-                'salableItem'     => $this->prepareSalableItem($groupPrice),
+                'saleableItem'     => $this->prepareSaleableItem($groupPrice),
                 'customerSession' => $this->getMock('Magento\Customer\Model\Session', [], [], '', false)
             ]
         );
 
         $this->assertEquals($expected, $groupPriceModel->getValue());
+
+        //Verify that storedGroupPrice is cached
+        $this->assertEquals($expected, $groupPriceModel->getValue());
     }
 
     /**
      * @param array|null $groupPrice
      * @return \PHPUnit_Framework_MockObject_MockObject
      */
-    protected function prepareSalableItem($groupPrice)
+    protected function prepareSaleableItem($groupPrice)
     {
-        $salableItemMock = $this->getMock(
+        $saleableItemMock = $this->getMock(
             'Magento\Catalog\Model\Product',
             ['getCustomerGroupId', 'getData', 'getPrice', 'getPriceInfo', 'getResource', '__wakeup'],
             [],
@@ -112,17 +115,17 @@ class GroupPriceTest extends \PHPUnit_Framework_TestCase
             false
         );
 
-        $salableItemMock->expects($this->at(1))
+        $saleableItemMock->expects($this->at(1))
             ->method('getData')
             ->will($this->returnValue(null));
 
-        $salableItemMock->expects($this->at(2))
+        $saleableItemMock->expects($this->at(2))
             ->method('getData')
             ->will($this->returnValue($groupPrice));
 
-        $salableItemMock->expects($this->any())
+        $saleableItemMock->expects($this->any())
             ->method('getResource')
-            ->will($this->returnValue($this->prepareSalableItemResource()));
+            ->will($this->returnValue($this->prepareSaleableItemResource()));
 
         $priceInfo = $this->getMockBuilder(
             'Magento\Framework\Pricing\PriceInfoInterface'
@@ -132,17 +135,17 @@ class GroupPriceTest extends \PHPUnit_Framework_TestCase
             ->method('getAdjustments')
             ->will($this->returnValue([]));
 
-        $salableItemMock->expects($this->any())
+        $saleableItemMock->expects($this->any())
             ->method('getPriceInfo')
             ->will($this->returnValue($priceInfo));
 
-        return $salableItemMock;
+        return $saleableItemMock;
     }
 
     /**
      * @return \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Resource\Product
      */
-    protected function prepareSalableItemResource()
+    protected function prepareSaleableItemResource()
     {
         $resourceMock = $this->getMockBuilder(
             'Magento\Catalog\Model\Resource\Product'
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/RegularPriceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/RegularPriceTest.php
index 3a5e51b77435d355e3f51f85960818c871db645d..ae59eb1825332941930f691585d92c4c704112a7 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/RegularPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/RegularPriceTest.php
@@ -39,18 +39,13 @@ class RegularPriceTest extends \PHPUnit_Framework_TestCase
      */
     protected $priceInfoMock;
 
-    /**
-     * @var \Magento\Framework\Pricing\Amount\Base|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $amountMock;
-
     /**
      * @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $salableItemMock;
+    protected $saleableItemMock;
 
     /**
-     * @var \Magento\Framework\Pricing\Adjustment\Calculator
+     * @var \Magento\Framework\Pricing\Adjustment\Calculator|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $calculatorMock;
 
@@ -60,15 +55,15 @@ class RegularPriceTest extends \PHPUnit_Framework_TestCase
     protected function setUp()
     {
         $qty = 1;
-        $this->salableItemMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
+        $this->saleableItemMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
         $this->priceInfoMock = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
         $this->amountMock = $this->getMock('Magento\Framework\Pricing\Amount', [], [], '', false);
         $this->calculatorMock = $this->getMock('Magento\Framework\Pricing\Adjustment\Calculator', [], [], '', false);
 
-        $this->salableItemMock->expects($this->once())
+        $this->saleableItemMock->expects($this->once())
             ->method('getPriceInfo')
             ->will($this->returnValue($this->priceInfoMock));
-        $this->regularPrice = new RegularPrice($this->salableItemMock, $qty, $this->calculatorMock);
+        $this->regularPrice = new RegularPrice($this->saleableItemMock, $qty, $this->calculatorMock);
     }
 
     /**
@@ -79,7 +74,7 @@ class RegularPriceTest extends \PHPUnit_Framework_TestCase
      */
     public function testGetValue($price)
     {
-        $this->salableItemMock->expects($this->once())
+        $this->saleableItemMock->expects($this->once())
             ->method('getPrice')
             ->will($this->returnValue($price));
         $this->assertEquals($price, $this->regularPrice->getValue());
@@ -109,7 +104,7 @@ class RegularPriceTest extends \PHPUnit_Framework_TestCase
             ->method('getAmount')
             ->with($this->equalTo($priceValue))
             ->will($this->returnValue($amountValue));
-        $this->salableItemMock->expects($this->once())
+        $this->saleableItemMock->expects($this->once())
             ->method('getPrice')
             ->will($this->returnValue($priceValue));
 
@@ -119,8 +114,8 @@ class RegularPriceTest extends \PHPUnit_Framework_TestCase
     /**
      * Test method getPriceType
      */
-    public function testGetPriceType()
+    public function testGetPriceCode()
     {
-        $this->assertEquals(RegularPrice::PRICE_TYPE_PRICE_DEFAULT, $this->regularPrice->getPriceType());
+        $this->assertEquals(RegularPrice::PRICE_CODE, $this->regularPrice->getPriceCode());
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/SpecialPriceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/SpecialPriceTest.php
index 9ae61efe3e02a328004a201311d6d05ee675525b..ba406d5cbf30b3566decac4aa1c87b30b36736be 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/SpecialPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/SpecialPriceTest.php
@@ -48,7 +48,7 @@ class SpecialPriceTest extends \PHPUnit_Framework_TestCase
         $specialPriceModel = $this->objectManager->getObject(
             'Magento\Catalog\Pricing\Price\SpecialPrice',
             [
-                'salableItem' => $this->prepareSalebleItem($specialPrice),
+                'saleableItem' => $this->prepareSaleableItem($specialPrice),
                 'localeDate'  => $this->prepareLocaleDate($isValidInterval)
             ]
         );
@@ -60,9 +60,9 @@ class SpecialPriceTest extends \PHPUnit_Framework_TestCase
      * @param float $specialPrice
      * @return \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Product
      */
-    protected function prepareSalebleItem($specialPrice)
+    protected function prepareSaleableItem($specialPrice)
     {
-        $salableItemMock = $this->getMock(
+        $saleableItemMock = $this->getMock(
             'Magento\Catalog\Model\Product',
             ['getSpecialPrice', 'getPriceInfo', 'getStore', '__wakeup'],
             [],
@@ -70,7 +70,7 @@ class SpecialPriceTest extends \PHPUnit_Framework_TestCase
             false
         );
 
-        $salableItemMock->expects($this->any())
+        $saleableItemMock->expects($this->any())
             ->method('getSpecialPrice')
             ->will($this->returnValue($specialPrice));
 
@@ -82,11 +82,11 @@ class SpecialPriceTest extends \PHPUnit_Framework_TestCase
             ->method('getAdjustments')
             ->will($this->returnValue([]));
 
-        $salableItemMock->expects($this->any())
+        $saleableItemMock->expects($this->any())
             ->method('getPriceInfo')
             ->will($this->returnValue($priceInfo));
 
-        return $salableItemMock;
+        return $saleableItemMock;
     }
 
     /**
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/TierPriceTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/TierPriceTest.php
index c8ca757b05cbdb08cb36e1748fcd298258ff1742..d578dd0a4498ecbde8e5c778573ed15b39e8ef44 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/TierPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Price/TierPriceTest.php
@@ -105,7 +105,7 @@ class TierPriceTest extends \PHPUnit_Framework_TestCase
      */
     public function testBaseInitialization($tierPrices, $expectedValue)
     {
-        $this->product->setData(TierPrice::PRICE_TYPE_TIER, $tierPrices);
+        $this->product->setData(TierPrice::PRICE_CODE, $tierPrices);
         $this->assertEquals($expectedValue, $this->model->getValue());
     }
 
@@ -158,7 +158,7 @@ class TierPriceTest extends \PHPUnit_Framework_TestCase
         $attributeMock->expects($this->once())->method('getBackend')->will($this->returnValue($backendMock));
 
         $productResource = $this->getMock('Magento\Catalog\Model\Resource\Product', [], [], '', false);
-        $productResource->expects($this->once())->method('getAttribute')->with(TierPrice::PRICE_TYPE_TIER)
+        $productResource->expects($this->once())->method('getAttribute')->with(TierPrice::PRICE_CODE)
             ->will($this->returnValue($attributeMock));
 
         $this->product->expects($this->once())->method('getResource')->will($this->returnValue($productResource));
@@ -179,7 +179,7 @@ class TierPriceTest extends \PHPUnit_Framework_TestCase
      */
     public function testGetterTierPriceList($tierPrices, $basePrice, $expectedResult)
     {
-        $this->product->setData(TierPrice::PRICE_TYPE_TIER, $tierPrices);
+        $this->product->setData(TierPrice::PRICE_CODE, $tierPrices);
 
         $price = $this->getMock('Magento\Framework\Pricing\Price\PriceInterface', [], [], '', false);
         $price->expects($this->any())->method('getValue')->will($this->returnValue($basePrice));
@@ -268,16 +268,21 @@ class TierPriceTest extends \PHPUnit_Framework_TestCase
      */
     public function testGetSavePercent($basePrice, $tierPrice, $savedPercent)
     {
+        $priceAmount = $this->getMockForAbstractClass('Magento\Framework\Pricing\Amount\AmountInterface');
+        $priceAmount->expects($this->once())
+            ->method('getBaseAmount')
+            ->will($this->returnValue($basePrice));
+        
         $price = $this->getMock('Magento\Framework\Pricing\Price\PriceInterface');
         $price->expects($this->any())
-            ->method('getValue')
-            ->will($this->returnValue($basePrice));
+            ->method('getAmount')
+            ->will($this->returnValue($priceAmount));
 
         $this->priceInfo->expects($this->atLeastOnce())
             ->method('getPrice')
             ->will($this->returnValue($price));
 
-        $amount = $this->getMock('Magento\Framework\Pricing\Amount\AmountInterface');
+        $amount = $this->getMockForAbstractClass('Magento\Framework\Pricing\Amount\AmountInterface');
         $amount->expects($this->atLeastOnce())
             ->method('getBaseAmount')
             ->will($this->returnValue($tierPrice));
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Render/FinalPriceBoxTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Render/FinalPriceBoxTest.php
index 1560127a30b44cac85867bfbf3ccc22e4e588517..a452910afa836d20c5b50748446aa28674d29d61 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Render/FinalPriceBoxTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Render/FinalPriceBoxTest.php
@@ -76,26 +76,8 @@ class FinalPriceBoxTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->product = $this->getMockForAbstractClass(
-            'Magento\Framework\Pricing\Object\SaleableInterface',
-            [],
-            '',
-            true,
-            true,
-            true,
-            ['getPriceInfo', '__wakeup']
-        );
-
-        $this->priceType = $this->getMockBuilder('Magento\Catalog\Pricing\Price\MsrpPrice')
-            ->disableOriginalConstructor()
-            ->setMethods(['isShowPriceOnGesture', 'getMsrpPriceMessage', 'canApplyMsrp'])
-            ->getMock();
-
-        $this->priceInfo = $this->getMockBuilder('Magento\Framework\Pricing\PriceInfo')
-            ->disableOriginalConstructor()
-            ->setMethods(['getPrice'])
-            ->getMock();
-
+        $this->product = $this->getMock('Magento\Catalog\Model\Product', ['getPriceInfo', '__wakeup'], [], '', false);
+        $this->priceInfo = $this->getMock('Magento\Framework\Pricing\PriceInfo', ['getPrice'], [], '', false);
         $this->product->expects($this->any())
             ->method('getPriceInfo')
             ->will($this->returnValue($this->priceInfo));
@@ -107,7 +89,6 @@ class FinalPriceBoxTest extends \PHPUnit_Framework_TestCase
         $this->priceBox = $this->getMock('Magento\Framework\Pricing\Render\PriceBox', [], [], '', false);
         $this->logger = $this->getMock('Magento\Framework\Logger', [], [], '', false);
 
-
         $this->layout->expects($this->any())
             ->method('getBlock')
             ->will($this->returnValue($this->priceBox));
@@ -136,8 +117,8 @@ class FinalPriceBoxTest extends \PHPUnit_Framework_TestCase
 
         $this->price = $this->getMock('Magento\Framework\Pricing\Price\PriceInterface');
         $this->price->expects($this->any())
-            ->method('getPriceType')
-            ->will($this->returnValue(\Magento\Catalog\Pricing\Price\FinalPriceInterface::PRICE_TYPE_FINAL));
+            ->method('getPriceCode')
+            ->will($this->returnValue(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE));
 
         $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
         $this->object = $objectManager->getObject(
@@ -153,12 +134,13 @@ class FinalPriceBoxTest extends \PHPUnit_Framework_TestCase
 
     public function testRenderMsrpDisabled()
     {
+        $priceType = $this->getMock('Magento\Catalog\Pricing\Price\MsrpPrice', [], [], '', false);
         $this->priceInfo->expects($this->once())
             ->method('getPrice')
             ->with($this->equalTo('msrp_price'))
-            ->will($this->returnValue($this->priceType));
+            ->will($this->returnValue($priceType));
 
-        $this->priceType->expects($this->any())
+        $priceType->expects($this->any())
             ->method('canApplyMsrp')
             ->with($this->equalTo($this->product))
             ->will($this->returnValue(false));
@@ -173,12 +155,13 @@ class FinalPriceBoxTest extends \PHPUnit_Framework_TestCase
 
     public function testRenderMsrpEnabled()
     {
+        $priceType = $this->getMock('Magento\Catalog\Pricing\Price\MsrpPrice', [], [], '', false);
         $this->priceInfo->expects($this->once())
             ->method('getPrice')
             ->with($this->equalTo('msrp_price'))
-            ->will($this->returnValue($this->priceType));
+            ->will($this->returnValue($priceType));
 
-        $this->priceType->expects($this->any())
+        $priceType->expects($this->any())
             ->method('canApplyMsrp')
             ->with($this->equalTo($this->product))
             ->will($this->returnValue(true));
@@ -218,4 +201,124 @@ class FinalPriceBoxTest extends \PHPUnit_Framework_TestCase
         //assert css_selector
         $this->assertRegExp('/[final_price]/', $result);
     }
+
+    public function testRenderAmountMinimal()
+    {
+        $priceType = $this->getMock('Magento\Catalog\Pricing\Price\FinalPrice', [], [], '', false);
+        $amount = $this->getMockForAbstractClass('Magento\Framework\Pricing\Amount\AmountInterface');
+        $priceId = 'price_id';
+        $html = 'html';
+        $this->object->setData('price_id', $priceId);
+
+        $arguments = [
+            'display_label'     => __('As low as:'),
+            'price_id'          => $priceId,
+            'include_container' => false,
+            'skip_adjustments' => true
+        ];
+
+        $amountRender = $this->getMock('Magento\Framework\Pricing\Render\Amount', ['toHtml'], [], '', false);
+        $amountRender->expects($this->once())
+            ->method('toHtml')
+            ->will($this->returnValue($html));
+
+        $this->priceInfo->expects($this->once())
+            ->method('getPrice')
+            ->with(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE)
+            ->will($this->returnValue($priceType));
+
+        $priceType->expects($this->once())
+            ->method('getMinimalPrice')
+            ->will($this->returnValue($amount));
+
+        $this->rendererPool->expects($this->once())
+            ->method('createAmountRender')
+            ->with($amount, $this->product, $this->price, $arguments)
+            ->will($this->returnValue($amountRender));
+
+        $this->assertEquals($html, $this->object->renderAmountMinimal());
+    }
+
+    /**
+     * @dataProvider hasSpecialPriceProvider
+     * @param float $regularPrice
+     * @param float $finalPrice
+     * @param bool $expectedResult
+     */
+    public function testHasSpecialPrice($regularPrice, $finalPrice, $expectedResult)
+    {
+        $regularPriceType = $this->getMock('Magento\Catalog\Pricing\Price\RegularPrice', [], [], '', false);
+        $finalPriceType = $this->getMock('Magento\Catalog\Pricing\Price\FinalPrice', [], [], '', false);
+        $regularPriceAmount = $this->getMockForAbstractClass('Magento\Framework\Pricing\Amount\AmountInterface');
+        $finalPriceAmount = $this->getMockForAbstractClass('Magento\Framework\Pricing\Amount\AmountInterface');
+
+        $regularPriceAmount->expects($this->once())
+            ->method('getValue')
+            ->will($this->returnValue($regularPrice));
+        $finalPriceAmount->expects($this->once())
+            ->method('getValue')
+            ->will($this->returnValue($finalPrice));
+
+        $regularPriceType->expects($this->once())
+            ->method('getAmount')
+            ->will($this->returnValue($regularPriceAmount));
+        $finalPriceType->expects($this->once())
+            ->method('getAmount')
+            ->will($this->returnValue($finalPriceAmount));
+
+        $this->priceInfo->expects($this->at(0))
+            ->method('getPrice')
+            ->with(\Magento\Catalog\Pricing\Price\RegularPrice::PRICE_CODE)
+            ->will($this->returnValue($regularPriceType));
+        $this->priceInfo->expects($this->at(1))
+            ->method('getPrice')
+            ->with(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE)
+            ->will($this->returnValue($finalPriceType));
+
+        $this->assertEquals($expectedResult, $this->object->hasSpecialPrice());
+    }
+
+    public function hasSpecialPriceProvider()
+    {
+        return [
+            [10.0, 20.0, false],
+            [20.0, 10.0, true],
+            [10.0, 10.0, false]
+        ];
+    }
+
+    public function testShowMinimalPrice()
+    {
+        $finalPrice = 10.0;
+        $minimalPrice = 5.0;
+        $displayMininmalPrice = 2.0;
+
+        $this->object->setDisplayMinimalPrice($displayMininmalPrice);
+
+        $finalPriceType = $this->getMock('Magento\Catalog\Pricing\Price\FinalPrice', [], [], '', false);
+
+        $finalPriceAmount = $this->getMockForAbstractClass('Magento\Framework\Pricing\Amount\AmountInterface');
+        $minimalPriceAmount = $this->getMockForAbstractClass('Magento\Framework\Pricing\Amount\AmountInterface');
+
+        $finalPriceAmount->expects($this->once())
+            ->method('getValue')
+            ->will($this->returnValue($finalPrice));
+        $minimalPriceAmount->expects($this->once())
+            ->method('getValue')
+            ->will($this->returnValue($minimalPrice));
+
+        $finalPriceType->expects($this->at(0))
+            ->method('getAmount')
+            ->will($this->returnValue($finalPriceAmount));
+        $finalPriceType->expects($this->at(1))
+            ->method('getMinimalPrice')
+            ->will($this->returnValue($minimalPriceAmount));
+
+        $this->priceInfo->expects($this->once())
+            ->method('getPrice')
+            ->with(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE)
+            ->will($this->returnValue($finalPriceType));
+
+        $this->assertTrue($this->object->showMinimalPrice());
+    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Render/PriceBoxTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Render/PriceBoxTest.php
index b54ab9c06dfb3d67674391d2e997eae466bcf178..cbe05f08d4ed0ca95b9f6c6952c6d3bb15c2df5e 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Render/PriceBoxTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/Render/PriceBoxTest.php
@@ -100,15 +100,7 @@ class PriceBoxTest extends \PHPUnit_Framework_TestCase
      */
     public function testGetCanDisplayQty($typeCode, $expected)
     {
-        $product = $this->getMockForAbstractClass(
-            'Magento\Framework\Pricing\Object\SaleableInterface',
-            [],
-            '',
-            true,
-            true,
-            true,
-            ['getTypeId']
-        );
+        $product = $this->getMock('Magento\Catalog\Model\Product', ['getTypeId', '__wakeup'], [], '', false);
 
         $product->expects($this->once())
             ->method('getTypeId')
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/RenderTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/RenderTest.php
index 7caa25db78f95901ed0cd609cd4ba9be7d219e88..9a0b6ab7cb6908df73f6492fd9798d5892072ae9 100644
--- a/dev/tests/unit/testsuite/Magento/Catalog/Pricing/RenderTest.php
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Pricing/RenderTest.php
@@ -104,12 +104,14 @@ class RenderTest extends \PHPUnit_Framework_TestCase
             ->with($this->equalTo('product'))
             ->will($this->returnValue($product));
 
+        $arguments = $this->object->getData();
+        $arguments['render_block'] = $this->object;
         $this->pricingRenderBlock->expects($this->any())
             ->method('render')
             ->with(
                 $this->equalTo('test_price_type_code'),
                 $this->equalTo($product),
-                $this->equalTo($this->object->getData())
+                $this->equalTo($arguments)
             )
             ->will($this->returnValue($expectedValue));
 
@@ -127,12 +129,14 @@ class RenderTest extends \PHPUnit_Framework_TestCase
 
         $block = $this->getMock('Magento\Framework\Pricing\Render', ['getProductItem', 'render'], [], '', false);
 
+        $arguments = $this->object->getData();
+        $arguments['render_block'] = $this->object;
         $block->expects($this->any())
             ->method('render')
             ->with(
                 $this->equalTo('test_price_type_code'),
                 $this->equalTo($product),
-                $this->equalTo($this->object->getData())
+                $this->equalTo($arguments)
             )
             ->will($this->returnValue($expectedValue));
 
diff --git a/dev/tests/unit/testsuite/Magento/CatalogRule/Pricing/Price/CatalogRulePriceTest.php b/dev/tests/unit/testsuite/Magento/CatalogRule/Pricing/Price/CatalogRulePriceTest.php
index f4a117e4e58368cf3fb3c86073234f33e512798b..c250bb5a68a8e9c911576d2b1712b39a9633505d 100644
--- a/dev/tests/unit/testsuite/Magento/CatalogRule/Pricing/Price/CatalogRulePriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/CatalogRule/Pricing/Price/CatalogRulePriceTest.php
@@ -39,7 +39,7 @@ class CatalogRulePriceTest extends \PHPUnit_Framework_TestCase
     /**
      * @var \Magento\Framework\Pricing\Object\SaleableInterface|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $salableItemMock;
+    protected $saleableItemMock;
 
     /**
      * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface|\PHPUnit_Framework_MockObject_MockObject
@@ -91,7 +91,7 @@ class CatalogRulePriceTest extends \PHPUnit_Framework_TestCase
      */
     public function setUp()
     {
-        $this->salableItemMock = $this->getMock(
+        $this->saleableItemMock = $this->getMock(
             'Magento\Catalog\Model\Product',
             ['getId', '__wakeup', 'getPriceInfo'],
             [],
@@ -142,7 +142,7 @@ class CatalogRulePriceTest extends \PHPUnit_Framework_TestCase
         $this->priceInfoMock->expects($this->any())
             ->method('getAdjustments')
             ->will($this->returnValue([]));
-        $this->salableItemMock->expects($this->any())
+        $this->saleableItemMock->expects($this->any())
             ->method('getPriceInfo')
             ->will($this->returnValue($this->priceInfoMock));
 
@@ -155,7 +155,7 @@ class CatalogRulePriceTest extends \PHPUnit_Framework_TestCase
             ->getMock();
         $qty = 1;
         $this->object = new CatalogRulePrice(
-            $this->salableItemMock,
+            $this->saleableItemMock,
             $qty,
             $this->calculator,
             $this->dataTimeMock,
@@ -194,7 +194,7 @@ class CatalogRulePriceTest extends \PHPUnit_Framework_TestCase
         $this->catalogRuleResourceMock->expects($this->once())
             ->method('getRulePrice')
             ->will($this->returnValue($expectedValue));
-        $this->salableItemMock->expects($this->any())
+        $this->saleableItemMock->expects($this->any())
             ->method('getId')
             ->will($this->returnValue($productId));
 
diff --git a/dev/tests/unit/testsuite/Magento/Checkout/Block/Cart/Item/RendererTest.php b/dev/tests/unit/testsuite/Magento/Checkout/Block/Cart/Item/RendererTest.php
index 9bce90138f1bbbe47bfd474a5c00fb0ee20954ec..367b79744714c7b05ec3c1c03175e9fb4ebc70a1 100644
--- a/dev/tests/unit/testsuite/Magento/Checkout/Block/Cart/Item/RendererTest.php
+++ b/dev/tests/unit/testsuite/Magento/Checkout/Block/Cart/Item/RendererTest.php
@@ -30,20 +30,39 @@ use Magento\Checkout\Block\Cart\Item\Renderer;
 
 class RendererTest extends \PHPUnit_Framework_TestCase
 {
-    /** @var \Magento\Catalog\Helper\Image|\PHPUnit_Framework_MockObject_MockObject */
+    /**
+     * @var \Magento\Catalog\Helper\Image|\PHPUnit_Framework_MockObject_MockObject
+     */
     protected $_imageHelper;
 
-    /** @var Renderer */
+    /**
+     * @var Renderer
+     */
     protected $_renderer;
 
+    /**
+     * @var \Magento\View\LayoutInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $layout;
+
     protected function setUp()
     {
         parent::setUp();
         $objectManagerHelper = new \Magento\TestFramework\Helper\ObjectManager($this);
+
         $this->_imageHelper = $this->getMock('Magento\Catalog\Helper\Image', array(), array(), '', false);
+        $this->layout = $this->getMock('Magento\Framework\View\LayoutInterface');
+
+        $context = $this->getMockBuilder('Magento\Framework\View\Element\Template\Context')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $context->expects($this->once())
+            ->method('getLayout')
+            ->will($this->returnValue($this->layout));
+
         $this->_renderer = $objectManagerHelper->getObject(
             'Magento\Checkout\Block\Cart\Item\Renderer',
-            array('imageHelper' => $this->_imageHelper)
+            array('imageHelper' => $this->_imageHelper, 'context' => $context)
         );
     }
 
@@ -110,4 +129,39 @@ class RendererTest extends \PHPUnit_Framework_TestCase
     {
         $this->assertEmpty($this->_renderer->getIdentities());
     }
+
+    /**
+     * @covers \Magento\Checkout\Block\Cart\Item\Renderer::getProductPriceHtml
+     * @covers \Magento\Checkout\Block\Cart\Item\Renderer::getPriceRender
+     */
+    public function testGetProductPriceHtml()
+    {
+        $priceHtml = 'some price html';
+        $product = $this->getMockBuilder('Magento\Catalog\Model\Product')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $priceRender = $this->getMockBuilder('Magento\Framework\Pricing\Render')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->layout->expects($this->atLeastOnce())
+            ->method('getBlock')
+            ->with('product.price.render.default')
+            ->will($this->returnValue($priceRender));
+
+        $priceRender->expects($this->once())
+            ->method('render')
+            ->with(
+                \Magento\Catalog\Pricing\Price\ConfiguredPriceInterface::CONFIGURED_PRICE_CODE,
+                $product,
+                [
+                    'include_container' => true,
+                    'display_minimal_price' => true,
+                    'zone' => \Magento\Framework\Pricing\Render::ZONE_ITEM_LIST
+                ]
+            )->will($this->returnValue($priceHtml));
+
+        $this->assertEquals($priceHtml, $this->_renderer->getProductPriceHtml($product));
+    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Checkout/Helper/DataTest.php b/dev/tests/unit/testsuite/Magento/Checkout/Helper/DataTest.php
index 6d94596ae1e68d90e0b27ec6831baec3cbc66926..d1adc7cb5b258625d017e444bbf35d560e064a6c 100644
--- a/dev/tests/unit/testsuite/Magento/Checkout/Helper/DataTest.php
+++ b/dev/tests/unit/testsuite/Magento/Checkout/Helper/DataTest.php
@@ -300,7 +300,13 @@ class DataTest extends \PHPUnit_Framework_TestCase
     {
         $price = 5.5;
         $quoteMock = $this->getMock('\Magento\Sales\Model\Quote', array(), array(), '', false);
-        $storeMock = $this->getMock('\Magento\Core\Model\Store', array('formatPrice'), array(), '', false);
+        $storeMock = $this->getMock(
+            'Magento\Store\Model\Store',
+            array('formatPrice', '__wakeup'),
+            array(),
+            '',
+            false
+        );
         $this->_checkoutSession->expects($this->once())->method('getQuote')->will($this->returnValue($quoteMock));
         $quoteMock->expects($this->once())->method('getStore')->will($this->returnValue($storeMock));
         $storeMock->expects($this->once())->method('formatPrice')->will($this->returnValue('5.5'));
@@ -311,7 +317,13 @@ class DataTest extends \PHPUnit_Framework_TestCase
     {
         $price = 5.5;
         $quoteMock = $this->getMock('\Magento\Sales\Model\Quote', array(), array(), '', false);
-        $storeMock = $this->getMock('\Magento\Core\Model\Store', array('convertPrice'), array(), '', false);
+        $storeMock = $this->getMock(
+            'Magento\Store\Model\Store',
+            array('convertPrice', '__wakeup'),
+            array(),
+            '',
+            false
+        );
         $this->_checkoutSession->expects($this->once())->method('getQuote')->will($this->returnValue($quoteMock));
         $quoteMock->expects($this->once())->method('getStore')->will($this->returnValue($storeMock));
         $storeMock->expects($this->once())->method('convertPrice')->will($this->returnValue('5.5'));
@@ -373,7 +385,13 @@ class DataTest extends \PHPUnit_Framework_TestCase
             '\Magento\Checkout\Helper\Data',
             ['storeManager' => $storeManager]
         );
-        $storeMock = $this->getMock('Magento\Core\Model\Store', array('roundPrice'), array(), '', false);
+        $storeMock = $this->getMock(
+            'Magento\Store\Model\Store',
+            array('roundPrice', '__wakeup'),
+            array(),
+            '',
+            false
+        );
         $itemMock = $this->getMock(
             'Magento\Framework\Object',
             array('getPriceInclTax', 'getQty', 'getTaxAmount', 'getDiscountTaxCompensation', 'getRowTotal'),
@@ -434,7 +452,13 @@ class DataTest extends \PHPUnit_Framework_TestCase
         );
         $itemMock = $this->getMock('Magento\Framework\Object', array('getQty'), array(), '', false);
         $itemMock->expects($this->once())->method('getQty');
-        $storeMock = $this->getMock('Magento\Core\Model\Store', array('roundPrice'), array(), '', false);
+        $storeMock = $this->getMock(
+            'Magento\Store\Model\Store',
+            array('roundPrice', '__wakeup'),
+            array(),
+            '',
+            false
+        );
                 $storeManager->expects($this->once())->method('getStore')->will($this->returnValue($storeMock));
         $storeMock->expects($this->once())->method('roundPrice');
         $helper->getPriceInclTax($itemMock);
@@ -451,7 +475,13 @@ class DataTest extends \PHPUnit_Framework_TestCase
         $itemMock = $this->getMock('Magento\Framework\Object', array('getQty', 'getQtyOrdered'), array(), '', false);
         $itemMock->expects($this->once())->method('getQty')->will($this->returnValue(false));
         $itemMock->expects($this->exactly(2))->method('getQtyOrdered')->will($this->returnValue(5.5));
-        $storeMock = $this->getMock('Magento\Core\Model\Store', array('roundPrice'), array(), '', false);
+        $storeMock = $this->getMock(
+            'Magento\Store\Model\Store',
+            array('roundPrice', '__wakeup'),
+            array(),
+            '',
+            false
+        );
         $storeManager->expects($this->once())->method('getStore')->will($this->returnValue($storeMock));
         $storeMock->expects($this->once())->method('roundPrice');
         $helper->getBasePriceInclTax($itemMock);
diff --git a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Pricing/Price/AttributePriceTest.php b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Pricing/Price/AttributePriceTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..059b5d0d50fbd6d4ed63c40e6449e4f25d33d796
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Pricing/Price/AttributePriceTest.php
@@ -0,0 +1,392 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\ConfigurableProduct\Pricing\Price;
+
+/**
+ * Class CustomOptionTest
+ *
+ * @package Magento\ConfigurableProduct\Pricing\Price;
+ */
+class AttributePriceTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Catalog\Model\Product\PriceModifierInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $priceModifier;
+
+    /**
+     * @var \Magento\Framework\Pricing\Amount\Base|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $amountMock;
+
+    /**
+     * @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $saleableItemMock;
+
+    /**
+     * @var \Magento\Framework\Pricing\Adjustment\Calculator|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $calculatorMock;
+
+    /**
+     * @var \Magento\Framework\Pricing\PriceInfoInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $priceInfoMock;
+
+    /**
+     * @var \Magento\ConfigurableProduct\Pricing\Price\AttributePrice|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $attribute;
+
+    /**
+     * @var \Magento\Catalog\Pricing\Price\RegularPrice|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $regularPriceMock;
+
+    /**
+     * @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $storeManagerMock;
+
+    /**
+     * @var \Magento\ConfigurableProduct\Model\Resource\Product\Type\Configurable\Attribute|
+     * \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $attributeMock;
+
+    /**
+     * Test setUp
+     */
+    protected function setUp()
+    {
+        $qty = 1;
+        $this->saleableItemMock = $this->getMock(
+            'Magento\Catalog\Model\Product',
+            [
+                'getTypeInstance',
+                'setParentId',
+                'hasPreconfiguredValues',
+                'getPreconfiguredValues',
+                '__wakeup',
+                'getPriceInfo'
+            ],
+            [],
+            '',
+            false
+        );
+        $this->priceInfoMock = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
+        $this->amountMock = $this->getMock('Magento\Framework\Pricing\Amount\Base', [], [], '', false);
+        $this->calculatorMock = $this->getMock('Magento\Framework\Pricing\Adjustment\Calculator', [], [], '', false);
+        $this->regularPriceMock = $this->getMock('Magento\Catalog\Pricing\Price\RegularPrice', [], [], '', false);
+        $this->priceModifier = $this->getMock(
+            'Magento\Catalog\Model\Product\PriceModifierInterface',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', ['getStore'], [], '', false);
+        $this->attributeMock = $this->getMock(
+            'Magento\ConfigurableProduct\Model\Resource\Product\Type\Configurable\Attribute',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->attribute = new AttributePrice(
+            $this->saleableItemMock,
+            $qty,
+            $this->calculatorMock,
+            $this->priceModifier,
+            $this->storeManagerMock
+        );
+    }
+
+    public function testInstanceOf()
+    {
+        $qty = 100;
+        $object = new AttributePrice(
+            $this->saleableItemMock,
+            $qty,
+            $this->calculatorMock,
+            $this->priceModifier,
+            $this->storeManagerMock
+        );
+        $this->assertInstanceOf('Magento\ConfigurableProduct\Pricing\Price\AttributePrice', $object);
+    }
+
+    public function testPrepareJsonAttributes()
+    {
+        $options = [];
+        $attributeId = 1;
+        $attributeCode = 'test_attribute';
+        $attributeLabel = 'Test';
+        $pricingValue = 100;
+        $amount = 120;
+        $modifiedValue = 140;
+        $valueIndex = 2;
+        $optionId = 1;
+        $expected = [
+            'priceOptions' =>
+                [
+                    $attributeId =>
+                        [
+                            'id' => $attributeId,
+                            'code' => $attributeCode,
+                            'label' => $attributeLabel,
+                            'options' =>
+                                [
+                                    0 =>
+                                        [
+                                            'id' => $valueIndex,
+                                            'label' => $attributeLabel,
+                                            'price' => $modifiedValue,
+                                            'oldPrice' => $modifiedValue,
+                                            'inclTaxPrice' => $modifiedValue,
+                                            'exclTaxPrice' => $pricingValue,
+                                            'products' => []
+                                        ],
+                                ],
+                        ],
+                ],
+            'defaultValues' =>
+                [
+                    $attributeId => $optionId,
+                ],
+        ];
+        $attributePrices = [
+            [
+                'is_percent' => false,
+                'pricing_value' => $pricingValue,
+                'value_index' => $valueIndex,
+                'label' => $attributeLabel
+            ]
+        ];
+
+        $configurableAttributes = [
+            $this->getAttributeMock($attributeId, $attributeCode, $attributeLabel, $attributePrices)
+        ];
+        $configuredValueMock = $this->getMockBuilder('Magento\Framework\Object')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $configuredValueMock->expects($this->any())
+            ->method('getData')
+            ->will($this->returnValue($optionId));
+
+        $configurableProduct = $this->getMockBuilder('Magento\ConfigurableProduct\Model\Product\Type\Configurable')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $configurableProduct->expects($this->once())
+            ->method('getConfigurableAttributes')
+            ->with($this->equalTo($this->saleableItemMock))
+            ->will($this->returnValue($configurableAttributes));
+        $this->saleableItemMock->expects($this->once())
+            ->method('getTypeInstance')
+            ->will($this->returnValue($configurableProduct));
+        $this->saleableItemMock->expects($this->any())
+            ->method('setParentId');
+        $this->saleableItemMock->expects($this->any())
+            ->method('hasPreconfiguredValues')
+            ->will($this->returnValue(true));
+        $this->saleableItemMock->expects($this->any())
+            ->method('getPreconfiguredValues')
+            ->will($this->returnValue($configuredValueMock));
+
+        $this->priceModifier->expects($this->once())
+            ->method('modifyPrice')
+            ->with($this->equalTo($pricingValue), $this->equalTo($this->saleableItemMock))
+            ->will($this->returnValue($amount));
+        $this->calculatorMock->expects($this->any())
+            ->method('getAmount')
+            ->will($this->returnValue($this->getModifiedAmountMock($modifiedValue, $pricingValue)));
+        $storeMock = $this->getMockBuilder('Magento\Store\Model\Store')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $storeMock->expects($this->once())
+            ->method('convertPrice')
+            ->with($this->equalTo($modifiedValue))
+            ->will($this->returnArgument(0));
+
+        $this->storeManagerMock->expects($this->any())
+            ->method('getStore')
+            ->will($this->returnValue($storeMock));
+
+        $result = $this->attribute->prepareAttributes($options);
+        $this->assertEquals($expected, $result);
+    }
+
+    protected function getModifiedAmountMock($modifiedValue, $pricingValue)
+    {
+        $modifiedAmountMock = $this->getMockBuilder('Magento\Framework\Pricing\Amount\Base')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $modifiedAmountMock->expects($this->any())
+            ->method('getValue')
+            ->will($this->returnValue($modifiedValue));
+        $modifiedAmountMock->expects($this->once())
+            ->method('getBaseAmount')
+            ->will($this->returnValue($pricingValue));
+
+        return $modifiedAmountMock;
+    }
+
+    protected function getAttributeMock($attributeId, $attributeCode, $attributeLabel, $attributePrices)
+    {
+        $productAttributeMock = $this->getMockBuilder('Magento\Catalog\Model\Entity\Attribute')
+            ->disableOriginalConstructor()
+            ->setMethods(['getLabel', '__wakeup', 'getAttributeCode', 'getId', 'getAttributeLabel'])
+            ->getMock();
+        $productAttributeMock->expects($this->once())
+            ->method('getId')
+            ->will($this->returnValue($attributeId));
+        $productAttributeMock->expects($this->once())
+            ->method('getAttributeCode')
+            ->will($this->returnValue($attributeCode));
+        $attributeMock = $this->getMockBuilder('Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute')
+            ->disableOriginalConstructor()
+            ->setMethods(['getProductAttribute', '__wakeup', 'getLabel', 'getPrices'])
+            ->getMock();
+        $attributeMock->expects($this->once())
+            ->method('getProductAttribute')
+            ->will($this->returnValue($productAttributeMock));
+        $attributeMock->expects($this->once())
+            ->method('getLabel')
+            ->will($this->returnValue($attributeLabel));
+        $attributeMock->expects($this->once())
+            ->method('getPrices')
+            ->will($this->returnValue($attributePrices));
+
+        return $attributeMock;
+    }
+
+    /**
+     * test method testGetOptionValueModified with option is_percent = true
+     */
+    public function testGetOptionValueModifiedIsPercent()
+    {
+        $finalPriceMock = $this->getMock('Magento\Catalog\Pricing\Price\RegularPrice', [], [], '', false);
+        $this->saleableItemMock->expects($this->once())
+            ->method('getPriceInfo')
+            ->will($this->returnValue($this->priceInfoMock));
+        $this->saleableItemMock->expects($this->once())
+            ->method('setParentId')
+            ->with($this->equalTo(true))
+            ->will($this->returnValue($this->returnSelf()));
+        $this->priceInfoMock->expects($this->once())
+            ->method('getPrice')
+            ->with($this->equalTo(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE))
+            ->will($this->returnValue($finalPriceMock));
+        $finalPriceMock->expects($this->once())
+            ->method('getValue')
+            ->will($this->returnValue(50));
+        $this->priceModifier->expects($this->once())
+            ->method('modifyPrice')
+            ->with($this->equalTo(50), $this->equalTo($this->saleableItemMock))
+            ->will($this->returnValue(55));
+        $this->calculatorMock->expects($this->once())
+            ->method('getAmount')
+            ->with(
+                $this->equalTo(55),
+                $this->equalTo($this->saleableItemMock),
+                $this->equalTo(\Magento\Weee\Pricing\Adjustment::ADJUSTMENT_CODE)
+            )
+            ->will($this->returnValue(57.55));
+        $this->assertEquals(
+            57.55,
+            $this->attribute->getOptionValueModified(
+                [
+                    'is_percent' => true,
+                    'pricing_value' => 100
+                ]
+            )
+        );
+    }
+
+    /**
+     * test method testGetOptionValueModified with option is_percent = false
+     */
+    public function testGetOptionValueModifiedIsNotPercent()
+    {
+        $this->saleableItemMock->expects($this->once())
+            ->method('setParentId')
+            ->with($this->equalTo(true))
+            ->will($this->returnValue($this->returnSelf()));
+        $this->priceModifier->expects($this->once())
+            ->method('modifyPrice')
+            ->with($this->equalTo(77.33), $this->equalTo($this->saleableItemMock))
+            ->will($this->returnValue(77.67));
+        $this->calculatorMock->expects($this->once())
+            ->method('getAmount')
+            ->with(
+                $this->equalTo(77.67),
+                $this->equalTo($this->saleableItemMock),
+                $this->equalTo(\Magento\Weee\Pricing\Adjustment::ADJUSTMENT_CODE)
+            )
+            ->will($this->returnValue(80.99));
+        $this->assertEquals(
+            80.99,
+            $this->attribute->getOptionValueModified(
+                [
+                    'is_percent' => false,
+                    'pricing_value' => 77.33
+                ]
+            )
+        );
+    }
+
+    /**
+     * test for method getTaxConfig
+     */
+    public function testGetTaxConfig()
+    {
+        $expectedTaxConfig = [
+            'includeTax' => false,
+            'showIncludeTax' => false,
+            'showBothPrices' => false,
+            'defaultTax' => 0,
+            'currentTax' => 0,
+            'inclTaxTitle' => __('Incl. Tax')
+        ];
+        $this->assertEquals($expectedTaxConfig, $this->attribute->getTaxConfig());
+    }
+
+    /**
+     *  test for method prepareAdjustmentConfig
+     */
+    public function testPrepareAdjustmentConfig()
+    {
+        $expectedAdjustmentConfig = [
+            'includeTax' => false,
+            'showIncludeTax' => false,
+            'showBothPrices' => false,
+            'defaultTax' => 0,
+            'currentTax' => 0,
+            'inclTaxTitle' => __('Incl. Tax'),
+            'product' => $this->saleableItemMock
+        ];
+        $this->assertEquals($expectedAdjustmentConfig, $this->attribute->prepareAdjustmentConfig());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Converter/DbTest.php b/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Converter/DbTest.php
index 4264246795903cc98fc7a610bcdde86c936e3eb2..794fdf862de770ef70c63d7fe083339359aec340 100644
--- a/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Converter/DbTest.php
+++ b/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Converter/DbTest.php
@@ -60,11 +60,13 @@ class DbTest extends \PHPUnit_Framework_TestCase
         $notFullJob = array('schedule' => '');
         $source = array(
             'crontab' => array(
-                'jobs' => array(
-                    'job_name_1' => $fullJob,
-                    'job_name_2' => $nullJob,
-                    'job_name_3' => $notFullJob,
-                    'job_name_4' => array()
+                'default' => array(
+                    'jobs' => array(
+                        'job_name_1' => $fullJob,
+                        'job_name_2' => $nullJob,
+                        'job_name_3' => $notFullJob,
+                        'job_name_4' => array()
+                    )
                 )
             )
         );
@@ -100,11 +102,13 @@ class DbTest extends \PHPUnit_Framework_TestCase
 
         $source = array(
             'crontab' => array(
-                'jobs' => array(
-                    'job_name_1' => $runFullJob,
-                    'job_name_2' => $runNoMethodJob,
-                    'job_name_3' => $runEmptyMethodJob,
-                    'job_name_4' => $runNoModelJob
+                'default' => array(
+                    'jobs' => array(
+                        'job_name_1' => $runFullJob,
+                        'job_name_2' => $runNoMethodJob,
+                        'job_name_3' => $runEmptyMethodJob,
+                        'job_name_4' => $runNoModelJob
+                    )
                 )
             )
         );
diff --git a/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Converter/XmlTest.php b/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Converter/XmlTest.php
index 33cdb08097c766ff07bd38fff652e3f3f3ff2c75..433cf5274db86ad06e70fef2a761fbd0b2f1acc8 100644
--- a/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Converter/XmlTest.php
+++ b/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Converter/XmlTest.php
@@ -63,22 +63,28 @@ class XmlTest extends \PHPUnit_Framework_TestCase
      */
     public function testConvert()
     {
-        $expected = array(
-            'default' => array(
-                'job1' => array(
+        $expected = [
+            'default' => [
+                'job1' => [
                     'name' => 'job1',
                     'schedule' => '30 2 * * *',
                     'instance' => 'Model1',
                     'method' => 'method1'
-                ),
-                'job2' => array(
+                ],
+                'job2' => [
                     'name' => 'job2',
                     'schedule' => '* * * * *',
                     'instance' => 'Model2',
                     'method' => 'method2'
-                )
-            )
-        );
+                ],
+                'job3' => [
+                    'name'        => 'job3',
+                    'instance'    => 'Model3',
+                    'method'      => 'method3',
+                    'config_path' => 'some/config/path'
+                ],
+            ]
+        ];
 
         $xmlFile = __DIR__ . '/../_files/crontab_valid.xml';
         $dom = new \DOMDocument();
diff --git a/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Reader/DbTest.php b/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Reader/DbTest.php
index 88d8ba2384e8dbe273590daf96f81adaa6f75129..0333af3c71ff021e10ddd6dd05e283912e15b923 100644
--- a/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Reader/DbTest.php
+++ b/dev/tests/unit/testsuite/Magento/Cron/Model/Config/Reader/DbTest.php
@@ -61,7 +61,7 @@ class DbTest extends \PHPUnit_Framework_TestCase
     {
         $job1 = array('schedule' => array('cron_expr' => '* * * * *'));
         $job2 = array('schedule' => array('cron_expr' => '1 1 1 1 1'));
-        $data = array('crontab' => array('jobs' => array('job1' => $job1, 'job2' => $job2)));
+        $data = array('crontab' => array('default' => array('jobs' => array('job1' => $job1, 'job2' => $job2))));
         $this->_defaultReader->expects($this->once())->method('read')->will($this->returnValue($data));
         $expected = array(
             'job1' => array('schedule' => $job1['schedule']['cron_expr']),
diff --git a/dev/tests/unit/testsuite/Magento/Cron/Model/Config/XsdTest.php b/dev/tests/unit/testsuite/Magento/Cron/Model/Config/XsdTest.php
index b6f5f439a481060d67e2bbb481d51d009b93e777..d9f3f62d189b3a0d4b48648c70014a1c29737f68 100644
--- a/dev/tests/unit/testsuite/Magento/Cron/Model/Config/XsdTest.php
+++ b/dev/tests/unit/testsuite/Magento/Cron/Model/Config/XsdTest.php
@@ -94,7 +94,8 @@ class XsdTest extends \PHPUnit_Framework_TestCase
                     "Element 'job': The attribute 'name' is required but missing.\n",
                     "Element 'job': The attribute 'instance' is required but missing.\n",
                     "Element 'job': The attribute 'method' is required but missing.\n",
-                    "Element 'wrongSchedule': This element is not expected. Expected is ( schedule ).\n"
+                    "Element 'wrongSchedule': This element is not expected." .
+                        " Expected is one of ( schedule, config_path ).\n"
                 )
             ),
             array(
diff --git a/dev/tests/unit/testsuite/Magento/Cron/Model/Config/_files/crontab_valid.xml b/dev/tests/unit/testsuite/Magento/Cron/Model/Config/_files/crontab_valid.xml
index ec1a8651c9f6aba9174ebd9833e6f02de7bc1f3a..156d8a7b7c768cbbd12c795b7e72fbe0c2ce6b19 100644
--- a/dev/tests/unit/testsuite/Magento/Cron/Model/Config/_files/crontab_valid.xml
+++ b/dev/tests/unit/testsuite/Magento/Cron/Model/Config/_files/crontab_valid.xml
@@ -31,5 +31,8 @@
         <job name="job2" instance="Model2" method="method2">
             <schedule>* * * * *</schedule>
         </job>
+        <job name="job3" instance="Model3" method="method3">
+            <config_path>some/config/path</config_path>
+        </job>
     </group>
 </config>
diff --git a/dev/tests/unit/testsuite/Magento/Cron/Model/ObserverTest.php b/dev/tests/unit/testsuite/Magento/Cron/Model/ObserverTest.php
index 1259545eac9dd59039c1b1d79e2376bd0ce3d0e1..dd205c5293df708aee16292fac18a85eb2f2486e 100644
--- a/dev/tests/unit/testsuite/Magento/Cron/Model/ObserverTest.php
+++ b/dev/tests/unit/testsuite/Magento/Cron/Model/ObserverTest.php
@@ -509,15 +509,24 @@ class ObserverTest extends \PHPUnit_Framework_TestCase
     public function testDispatchGenerate()
     {
         $jobConfig = array(
-            'test_group' => array('test_job1' => array('instance' => 'CronJob', 'method' => 'execute'))
+            'test_group' => array(
+                'default' => array(
+                    'test_job1' => array(
+                        'instance' => 'CronJob',
+                        'method' => 'execute'
+                    )
+                )
+            )
         );
 
         $this->_config->expects($this->at(0))->method('getJobs')->will($this->returnValue($jobConfig));
         $jobs = array(
             'test_group' => array(
-                'job1' => array('config_path' => 'test/path'),
-                'job2' => array('schedule' => ''),
-                'job3' => array('schedule' => '* * * * *')
+                'default' => array(
+                    'job1' => array('config_path' => 'test/path'),
+                    'job2' => array('schedule' => ''),
+                    'job3' => array('schedule' => '* * * * *')
+                )
             )
         );
         $this->_config->expects($this->at(1))->method('getJobs')->will($this->returnValue($jobs));
diff --git a/dev/tests/unit/testsuite/Magento/Customer/Model/ImportExport/Import/AddressTest.php b/dev/tests/unit/testsuite/Magento/Customer/Model/ImportExport/Import/AddressTest.php
index 2b37358377c049607d218087aabee4c84511c336..34a8a9ec9ea7c492e97509cd81338a25b4b155ec 100644
--- a/dev/tests/unit/testsuite/Magento/Customer/Model/ImportExport/Import/AddressTest.php
+++ b/dev/tests/unit/testsuite/Magento/Customer/Model/ImportExport/Import/AddressTest.php
@@ -590,8 +590,8 @@ class AddressTest extends \PHPUnit_Framework_TestCase
      * Test Address::validateRow()
      * with 2 rows with identical PKs in case when add/update behavior is performed
      *
-     * @covers Address::validateRow
-     * @covers Address::_validateRowForUpdate
+     * @covers \Magento\Customer\Model\ImportExport\Import\Address::validateRow
+     * @covers \Magento\Customer\Model\ImportExport\Import\Address::_validateRowForUpdate
      */
     public function testValidateRowForUpdateDuplicateRows()
     {
@@ -640,7 +640,7 @@ class AddressTest extends \PHPUnit_Framework_TestCase
     /**
      * Test Address::validateRow() with delete action
      *
-     * @covers Address::validateRow
+     * @covers \Magento\Customer\Model\ImportExport\Import\Address::validateRow
      * @dataProvider validateRowForDeleteDataProvider
      *
      * @param array $rowData
@@ -689,7 +689,7 @@ class AddressTest extends \PHPUnit_Framework_TestCase
     /**
      * Test if correct methods are invoked according to different custom behaviours
      *
-     * @covers Address::_importData
+     * @covers \Magento\Customer\Model\ImportExport\Import\Address::_importData
      */
     public function testImportDataWithCustomBehaviour()
     {
diff --git a/dev/tests/unit/testsuite/Magento/Customer/Model/Resource/GroupTest.php b/dev/tests/unit/testsuite/Magento/Customer/Model/Resource/GroupTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..43edbaf3021ff464f02461b9a4555f62808cdc7e
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Customer/Model/Resource/GroupTest.php
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Customer\Model\Resource;
+
+use Magento\TestFramework\Helper\ObjectManager as ObjectManagerHelper;
+
+class GroupTest extends \PHPUnit_Framework_TestCase
+{
+    /** @var \Magento\Customer\Model\Resource\Group */
+    protected $groupResourceModel;
+
+    /** @var \Magento\Framework\App\Resource|\PHPUnit_Framework_MockObject_MockObject */
+    protected $resource;
+
+    /** @var \Magento\Customer\Helper\Data|\PHPUnit_Framework_MockObject_MockObject */
+    protected $customerHelper;
+
+    /** @var \Magento\Customer\Model\Group|\PHPUnit_Framework_MockObject_MockObject */
+    protected $groupModel;
+
+    /** @var \PHPUnit_Framework_MockObject_MockObject */
+    protected $customersFactory;
+
+    protected function setUp()
+    {
+        $this->resource = $this->getMock('Magento\Framework\App\Resource', [], [], '', false);
+        $this->customerHelper = $this->getMock('Magento\Customer\Helper\Data', [], [], '', false);
+        $this->customersFactory = $this->getMock(
+            'Magento\Customer\Model\Resource\Customer\CollectionFactory',
+            ['create'],
+            [],
+            '',
+            false
+        );
+        $this->groupModel = $this->getMock('Magento\Customer\Model\Group', [], [], '', false);
+
+        $this->groupResourceModel = (new ObjectManagerHelper($this))->getObject(
+            'Magento\Customer\Model\Resource\Group',
+            [
+                'resource' => $this->resource,
+                'customerData' => $this->customerHelper,
+                'customersFactory' => $this->customersFactory,
+            ]
+        );
+    }
+
+    public function testDelete()
+    {
+        $dbAdapter = $this->getMock('Magento\Framework\DB\Adapter\AdapterInterface');
+        $this->resource->expects($this->once())->method('getConnection')->will($this->returnValue($dbAdapter));
+
+        $customer = $this->getMock(
+            'Magento\Customer\Model\Customer',
+            ['__wakeup', 'load', 'getId', 'getStoreId', 'setGroupId', 'save'],
+            [],
+            '',
+            false
+        );
+        $customerId = 1;
+        $customer->expects($this->once())->method('getId')->will($this->returnValue($customerId));
+        $customer->expects($this->once())->method('load')->with($customerId)->will($this->returnSelf());
+        $defaultCustomerGroup = 1;
+        $this->customerHelper->expects($this->once())->method('getDefaultCustomerGroupId')
+            ->will($this->returnValue($defaultCustomerGroup));
+        $customer->expects($this->once())->method('setGroupId')->with($defaultCustomerGroup);
+        $customerCollection = $this->getMock('Magento\Customer\Model\Resource\Customer\Collection', [], [], '', false);
+        $customerCollection->expects($this->once())->method('addAttributeToFilter')->will($this->returnSelf());
+        $customerCollection->expects($this->once())->method('load')->will($this->returnValue([$customer]));
+        $this->customersFactory->expects($this->once())->method('create')
+            ->will($this->returnValue($customerCollection));
+
+        $this->groupResourceModel->delete($this->groupModel);
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Customer/Model/Resource/ImportExport/Import/CustomerComposite/DataTest.php b/dev/tests/unit/testsuite/Magento/Customer/Model/Resource/ImportExport/Import/CustomerComposite/DataTest.php
index 3adc1cd18eafe5c9476a34b613a50aca84039b2f..8d26ec7788268dbd7442589f2e80aa0b0b273432 100644
--- a/dev/tests/unit/testsuite/Magento/Customer/Model/Resource/ImportExport/Import/CustomerComposite/DataTest.php
+++ b/dev/tests/unit/testsuite/Magento/Customer/Model/Resource/ImportExport/Import/CustomerComposite/DataTest.php
@@ -100,9 +100,9 @@ class DataTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers Data::getNextBunch
-     * @covers Data::_prepareRow
-     * @covers Data::_prepareAddressRowData
+     * @covers \Magento\Customer\Model\Resource\ImportExport\Import\CustomerComposite\Data::getNextBunch
+     * @covers \Magento\Customer\Model\Resource\ImportExport\Import\CustomerComposite\Data::_prepareRow
+     * @covers \Magento\Customer\Model\Resource\ImportExport\Import\CustomerComposite\Data::_prepareAddressRowData
      *
      * @dataProvider getNextBunchDataProvider
      * @param string $entityType
diff --git a/dev/tests/unit/testsuite/Magento/Dhl/Model/CarrierTest.php b/dev/tests/unit/testsuite/Magento/Dhl/Model/CarrierTest.php
index 1acc44b96dfd9ae8d3d16c3fd3d79bad35b77bfe..6f8827fe4241640115d9d78b3c161adf94b45940 100644
--- a/dev/tests/unit/testsuite/Magento/Dhl/Model/CarrierTest.php
+++ b/dev/tests/unit/testsuite/Magento/Dhl/Model/CarrierTest.php
@@ -227,10 +227,10 @@ class CarrierTest extends \PHPUnit_Framework_TestCase
             $filesPath . 'response_shipping_label.xml'
         );
         unset(
-            $empty->AirwayBillNumber,
-            $empty->LabelImage,
-            $billingNumberOnly->LabelImage,
-            $outputImageOnly->AirwayBillNumber
+            $empty->{'AirwayBillNumber'},
+            $empty->{'LabelImage'},
+            $billingNumberOnly->{'LabelImage'},
+            $outputImageOnly->{'AirwayBillNumber'}
         );
 
         return array(array($empty), array($billingNumberOnly), array($outputImageOnly));
@@ -258,8 +258,10 @@ class CarrierTest extends \PHPUnit_Framework_TestCase
             $this->returnValue(file_get_contents(__DIR__ . '/_files/success_dhl_response_rates.xml'))
         );
         // for setRequest
-        $request_params = include __DIR__ . '/_files/rates_request_data_dhl.php';
-        $request = $this->_helper->getObject('Magento\Sales\Model\Quote\Address\RateRequest', $request_params);
+        $request = $this->_helper->getObject(
+            'Magento\Sales\Model\Quote\Address\RateRequest',
+            require __DIR__ . '/_files/rates_request_data_dhl.php'
+        );
         $this->assertNotEmpty($this->_model->collectRates($request)->getAllRates());
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Downloadable/Block/Catalog/Product/LinksTest.php b/dev/tests/unit/testsuite/Magento/Downloadable/Block/Catalog/Product/LinksTest.php
index 536cba245166bf07c8680757857adc7e01f36c0d..5aee86121e1730634880927bee2c69b9d6ae1891 100644
--- a/dev/tests/unit/testsuite/Magento/Downloadable/Block/Catalog/Product/LinksTest.php
+++ b/dev/tests/unit/testsuite/Magento/Downloadable/Block/Catalog/Product/LinksTest.php
@@ -24,33 +24,23 @@
 
 namespace Magento\Downloadable\Block\Catalog\Product;
 
+use Magento\Catalog\Pricing\Price\FinalPrice;
+use Magento\Catalog\Pricing\Price\RegularPrice;
+
 /**
  * Tests Magento\Downloadable\Block\Catalog\Product\Links
  */
 class LinksTest extends \PHPUnit_Framework_TestCase
 {
-    /** @var \Magento\Downloadable\Block\Catalog\Product\Links */
-    protected $linksBlock;
-
-    /**
-     * @var \Magento\Downloadable\Model\Link|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $linkMock;
-
     /**
-     * @var \Magento\Downloadable\Pricing\Price\LinkPrice|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Downloadable\Block\Catalog\Product\Links
      */
-    protected $linkPriceMock;
-
-    /**
-     * @var \Magento\Framework\Pricing\Amount\Base|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $amountMock;
+    protected $linksBlock;
 
     /**
      * @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $salableItemMock;
+    protected $productMock;
 
     /**
      * @var \Magento\Framework\Pricing\PriceInfoInterface|\PHPUnit_Framework_MockObject_MockObject
@@ -62,49 +52,58 @@ class LinksTest extends \PHPUnit_Framework_TestCase
      */
     protected $layout;
 
+    /**
+     * @var \Magento\Core\Helper\Data | \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $coreHelper;
+
     public function setUp()
     {
         $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
-        $contextMock = $this->getMock('Magento\Catalog\Block\Product\Context', [], [], '', false, false);
-
-        $this->priceInfoMock = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
-        $this->linkPriceMock = $this->getMock('Magento\Downloadable\Pricing\Price\LinkPrice', [], [], '', false);
-        $this->salableItemMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
-        $this->amountMock = $this->getMock('Magento\Framework\Pricing\Amount\Base', [], [], '', false);
-        $this->linkMock = $this->getMock('Magento\Downloadable\Model\Link', [], [], '', false);
         $this->layout = $this->getMock('Magento\Framework\View\Layout', [], [], '', false);
+        $contextMock = $this->getMock('Magento\Catalog\Block\Product\Context', [], [], '', false, false);
         $contextMock->expects($this->once())
             ->method('getLayout')
             ->will($this->returnValue($this->layout));
-        $data = [
-            'product' => $this->salableItemMock
-        ];
+        $this->priceInfoMock = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
+        $this->productMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
+        $this->productMock->expects($this->any())
+            ->method('getPriceInfo')
+            ->will($this->returnValue($this->priceInfoMock));
+        $this->coreHelper = $this->getMock('Magento\Core\Helper\Data', [], [], '', false);
 
         $this->linksBlock = $objectManager->getObject(
             'Magento\Downloadable\Block\Catalog\Product\Links',
             [
                 'context' => $contextMock,
-                'data' => $data
+                'coreData' => $this->coreHelper,
+                'data' => [
+                    'product' => $this->productMock
+                ]
             ]
         );
     }
 
     public function testGetLinkPrice()
     {
+        $linkPriceMock = $this->getMock('Magento\Downloadable\Pricing\Price\LinkPrice', [], [], '', false);
+        $amountMock = $this->getMock('Magento\Framework\Pricing\Amount\Base', [], [], '', false);
+        $linkMock = $this->getMock('Magento\Downloadable\Model\Link', [], [], '', false);
+
         $priceCode = 'link_price';
         $arguments = [];
         $expectedHtml = 'some html';
-        $this->salableItemMock->expects($this->any())
+        $this->productMock->expects($this->any())
             ->method('getPriceInfo')
             ->will($this->returnValue($this->priceInfoMock));
         $this->priceInfoMock->expects($this->any())
             ->method('getPrice')
             ->with($this->equalTo($priceCode))
-            ->will($this->returnValue($this->linkPriceMock));
-        $this->linkPriceMock->expects($this->any())
+            ->will($this->returnValue($linkPriceMock));
+        $linkPriceMock->expects($this->any())
             ->method('getLinkAmount')
-            ->with($this->linkMock)
-            ->will($this->returnValue($this->amountMock));
+            ->with($linkMock)
+            ->will($this->returnValue($amountMock));
 
         $priceBoxMock = $this->getMock('Magento\Framework\Pricing\Render', ['renderAmount'], [], '', false, false);
 
@@ -115,11 +114,122 @@ class LinksTest extends \PHPUnit_Framework_TestCase
 
         $priceBoxMock->expects($this->once())
             ->method('renderAmount')
-            ->with($this->amountMock, $this->linkPriceMock, $this->salableItemMock, $arguments)
+            ->with($amountMock, $linkPriceMock, $this->productMock, $arguments)
             ->will($this->returnValue($expectedHtml));
 
-        $result = $this->linksBlock->getLinkPrice($this->linkMock);
+        $result = $this->linksBlock->getLinkPrice($linkMock);
         $this->assertEquals($expectedHtml, $result);
     }
+
+    public function testGetJsonConfig()
+    {
+        $regularPrice = 11.;
+        $finalPrice = 10.;
+        $price = 5.;
+        $oldPrice = 4.;
+
+        $linkPrice = 3.;
+        $linkIncludeTaxPrice = 4.;
+        $linkExcludeTaxPrice = 3.;
+
+        $linkId = 42;
+
+        $config = [
+            'price' => $price,
+            'oldPrice' => $oldPrice,
+            'links' => [
+                $linkId => [
+                    'price' => $linkPrice,
+                    'oldPrice' => $linkPrice,
+                    'inclTaxPrice' => $linkIncludeTaxPrice,
+                    'exclTaxPrice' => $linkExcludeTaxPrice
+                ]
+            ]
+        ];
+
+        $linkAmountMock = $this->getMock('Magento\Framework\Pricing\Amount\Base', [], [], '', false);
+        $linkAmountMock->expects($this->once())
+            ->method('getValue')
+            ->will($this->returnValue($linkIncludeTaxPrice));
+        $linkAmountMock->expects($this->once())
+            ->method('getBaseAmount')
+            ->will($this->returnValue($linkExcludeTaxPrice));
+
+        $amountMock = $this->getMock('Magento\Framework\Pricing\Amount\Base', [], [], '', false);
+        $amountMock->expects($this->once())
+            ->method('getValue')
+            ->will($this->returnValue($finalPrice));
+
+        $typeInstanceMock = $this->getMock('Magento\Catalog\Model\Product\Type\Simple', ['getLinks'], [], '', false);
+        $typeInstanceMock->expects($this->once())
+            ->method('getLinks')
+            ->will($this->returnValue([$this->getLinkMock($linkPrice, $linkId)]));
+        $this->productMock->expects($this->once())
+            ->method('getTypeInstance')
+            ->will($this->returnValue($typeInstanceMock));
+
+        $regularPriceMock = $this->getMock('Magento\Catalog\Pricing\Price\RegularPrice', [], [], '', false);
+        $regularPriceMock->expects($this->once())
+            ->method('getValue')
+            ->will($this->returnValue($regularPrice));
+
+        $finalPriceMock = $this->getMock('Magento\Catalog\Pricing\Price\FinalPrice', [], [], '', false);
+        $finalPriceMock->expects($this->at(0))
+            ->method('getAmount')
+            ->will($this->returnValue($amountMock));
+        $finalPriceMock->expects($this->at(1))
+            ->method('getCustomAmount')
+            ->with($linkPrice)
+            ->will($this->returnValue($linkAmountMock));
+
+        $this->coreHelper->expects($this->at(0))
+            ->method('currency')
+            ->with($finalPrice, false, false)
+            ->will($this->returnValue($price));
+        $this->coreHelper->expects($this->at(1))
+            ->method('currency')
+            ->with($regularPrice, false, false)
+            ->will($this->returnValue($oldPrice));
+        $this->coreHelper->expects($this->at(2))
+            ->method('currency')
+            ->with($linkPrice, false, false)
+            ->will($this->returnValue($linkPrice));
+        $this->coreHelper->expects($this->at(3))
+            ->method('currency')
+            ->with($linkIncludeTaxPrice, false, false)
+            ->will($this->returnValue($linkIncludeTaxPrice));
+        $this->coreHelper->expects($this->at(4))
+            ->method('currency')
+            ->with($linkExcludeTaxPrice, false, false)
+            ->will($this->returnValue($linkExcludeTaxPrice));
+
+        $this->priceInfoMock->expects($this->at(0))
+            ->method('getPrice')
+            ->with(FinalPrice::PRICE_CODE)
+            ->will($this->returnValue($finalPriceMock));
+        $this->priceInfoMock->expects($this->at(1))
+            ->method('getPrice')
+            ->with(RegularPrice::PRICE_CODE)
+            ->will($this->returnValue($regularPriceMock));
+        $this->priceInfoMock->expects($this->at(2))
+            ->method('getPrice')
+            ->with(FinalPrice::PRICE_CODE)
+            ->will($this->returnValue($finalPriceMock));
+
+        $this->assertEquals(json_encode($config), $this->linksBlock->getJsonConfig());
+    }
+
+    protected function getLinkMock($linkPrice, $linkId)
+    {
+        $linkMock = $this->getMock('Magento\Downloadable\Model\Link', ['getPrice', 'getId', '__wakeup'], [], '', false);
+        $linkMock->expects($this->any())
+            ->method('getPrice')
+            ->will($this->returnValue($linkPrice));
+        $linkMock->expects($this->any())
+            ->method('getId')
+            ->will($this->returnValue($linkId));
+
+        return $linkMock;
+    }
 }
  
\ No newline at end of file
diff --git a/dev/tests/unit/testsuite/Magento/Downloadable/Pricing/Price/LinkPriceTest.php b/dev/tests/unit/testsuite/Magento/Downloadable/Pricing/Price/LinkPriceTest.php
index 722bee8f5bf624177f38482360ab52b82d865eac..f1ce804d416ddb3a432736bfe60e348a1bcb3a5c 100644
--- a/dev/tests/unit/testsuite/Magento/Downloadable/Pricing/Price/LinkPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Downloadable/Pricing/Price/LinkPriceTest.php
@@ -43,7 +43,7 @@ class LinkPriceTest extends \PHPUnit_Framework_TestCase
     /**
      * @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $salableItemMock;
+    protected $saleableItemMock;
 
     /**
      * @var \Magento\Framework\Pricing\Adjustment\Calculator|\PHPUnit_Framework_MockObject_MockObject
@@ -60,7 +60,7 @@ class LinkPriceTest extends \PHPUnit_Framework_TestCase
      */
     protected function setUp()
     {
-        $this->salableItemMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
+        $this->saleableItemMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
         $this->amountMock = $this->getMock('Magento\Framework\Pricing\Amount\Base', [], [], '', false);
         $this->calculatorMock = $this->getMock('Magento\Framework\Pricing\Adjustment\Calculator', [], [], '', false);
         $this->linkMock = $this->getMock(
@@ -71,7 +71,7 @@ class LinkPriceTest extends \PHPUnit_Framework_TestCase
             false
         );
 
-        $this->linkPrice = new LinkPrice($this->salableItemMock, 1, $this->calculatorMock);
+        $this->linkPrice = new LinkPrice($this->saleableItemMock, 1, $this->calculatorMock);
     }
 
     public function testGetLinkAmount()
@@ -83,10 +83,10 @@ class LinkPriceTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($amount));
         $this->linkMock->expects($this->once())
             ->method('getProduct')
-            ->will($this->returnValue($this->salableItemMock));
+            ->will($this->returnValue($this->saleableItemMock));
         $this->calculatorMock->expects($this->once())
             ->method('getAmount')
-            ->with($amount, $this->equalTo($this->salableItemMock))
+            ->with($amount, $this->equalTo($this->saleableItemMock))
             ->will($this->returnValue($amount));
 
         $result = $this->linkPrice->getLinkAmount($this->linkMock);
diff --git a/dev/tests/unit/testsuite/Magento/Eav/Model/Validator/Attribute/DataTest.php b/dev/tests/unit/testsuite/Magento/Eav/Model/Validator/Attribute/DataTest.php
index 19784443b00cb87614cff810366095f384e209b5..57c901065980c490e698d1d24478ddcc88fb7fc2 100644
--- a/dev/tests/unit/testsuite/Magento/Eav/Model/Validator/Attribute/DataTest.php
+++ b/dev/tests/unit/testsuite/Magento/Eav/Model/Validator/Attribute/DataTest.php
@@ -410,17 +410,6 @@ class DataTest extends \PHPUnit_Framework_TestCase
         return $attribute;
     }
 
-    /**
-     * @param \Magento\Eav\Model\Attribute\Data\AbstractData $dataModel
-     * @return \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected function _getFactoryMock($dataModel)
-    {
-        $factory = $this->getMockBuilder('Magento\Eav\Model\Attribute\Data')->setMethods(array('factory'))->getMock();
-        $factory::staticExpects($this->once())->method('factory')->will($this->returnValue($dataModel));
-        return $factory;
-    }
-
     /**
      * @param boolean $returnValue
      * @param string|null $argument
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Autoload/IncludePathTest.php b/dev/tests/unit/testsuite/Magento/Framework/Autoload/IncludePathTest.php
index e4e3b56b9754ca36d13b883199aa96c8bc135239..6ff364f46ada6940d13d5e4d667bef3473d835be 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Autoload/IncludePathTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Autoload/IncludePathTest.php
@@ -47,9 +47,9 @@ class IncludePathTest extends \PHPUnit_Framework_TestCase
      */
     public function testGetFile($class, $expectedValue)
     {
-        $this->assertFalse(\Magento\Framework\Autoload\IncludePath::getFile($class));
-        \Magento\Framework\Autoload\IncludePath::addIncludePath(__DIR__ . '/_files');
-        $this->assertEquals($expectedValue, \Magento\Framework\Autoload\IncludePath::getFile($class));
+        $this->assertFalse((new \Magento\Framework\Autoload\IncludePath())->getFile($class));
+        (new \Magento\Framework\Autoload\IncludePath())->addIncludePath(__DIR__ . '/_files');
+        $this->assertEquals($expectedValue, (new \Magento\Framework\Autoload\IncludePath())->getFile($class));
     }
 
     /**
@@ -75,7 +75,7 @@ class IncludePathTest extends \PHPUnit_Framework_TestCase
     {
         $expectedIncludePath = str_replace('%include_path%', get_include_path(), $expectedIncludePath);
         $this->assertNotEquals($expectedIncludePath, get_include_path());
-        \Magento\Framework\Autoload\IncludePath::addIncludePath($fixturePath, $prepend);
+        (new \Magento\Framework\Autoload\IncludePath())->addIncludePath($fixturePath, $prepend);
         $this->assertEquals($expectedIncludePath, get_include_path());
     }
 
@@ -105,9 +105,9 @@ class IncludePathTest extends \PHPUnit_Framework_TestCase
      */
     public function testLoad($class, $expectedValue)
     {
-        \Magento\Framework\Autoload\IncludePath::addIncludePath(__DIR__ . '/_files');
+        (new \Magento\Framework\Autoload\IncludePath())->addIncludePath(__DIR__ . '/_files');
         $this->assertFalse(class_exists($class, false));
-        \Magento\Framework\Autoload\IncludePath::load($class);
+        (new \Magento\Framework\Autoload\IncludePath())->load($class);
         if ($expectedValue) {
             $this->assertTrue(class_exists($class, false));
         } else {
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Adapter/ZendTest.php b/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Adapter/ZendTest.php
index 31ea472efbe80609d4d5431601e46f4f58a05b50..c8ef9bfce1c0080b6e009d956268940832b2939a 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Adapter/ZendTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Adapter/ZendTest.php
@@ -52,7 +52,7 @@ class ZendTest extends \PHPUnit_Framework_TestCase
     /**
      * @return array
      */
-    public static function proxyMethodDataProvider()
+    public function proxyMethodDataProvider()
     {
         return array(
             'test' => array('test', array('record_id'), array('RECORD_ID'), 111),
@@ -86,7 +86,7 @@ class ZendTest extends \PHPUnit_Framework_TestCase
                 'getBackend',
                 array(),
                 array(),
-                \PHPUnit_Framework_MockObject_Generator::getMock('Zend_Cache_Backend')
+                $this->getMock('Zend_Cache_Backend')
             )
         );
     }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Decorator/BareTest.php b/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Decorator/BareTest.php
index 7b27fe097f47e84d5acac8c4ddcd5ab87bd51612..c0811a6b72ccc79398e03a8f46788f3296307c3f 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Decorator/BareTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Decorator/BareTest.php
@@ -44,7 +44,7 @@ class BareTest extends \PHPUnit_Framework_TestCase
     /**
      * @return array
      */
-    public static function proxyMethodDataProvider()
+    public function proxyMethodDataProvider()
     {
         return array(
             array('test', array('record_id'), 111),
@@ -52,8 +52,8 @@ class BareTest extends \PHPUnit_Framework_TestCase
             array('save', array('record_value', 'record_id', array('tag'), 555), true),
             array('remove', array('record_id'), true),
             array('clean', array(\Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG, array('tag')), true),
-            array('getBackend', array(), \PHPUnit_Framework_MockObject_Generator::getMock('Zend_Cache_Backend')),
-            array('getLowLevelFrontend', array(), \PHPUnit_Framework_MockObject_Generator::getMock('Zend_Cache_Core'))
+            array('getBackend', array(), $this->getMock('Zend_Cache_Backend')),
+            array('getLowLevelFrontend', array(), $this->getMock('Zend_Cache_Core'))
         );
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Decorator/ProfilerTest.php b/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Decorator/ProfilerTest.php
index 557ed00b74fa87707bfa413ec38144381073c62c..f7b281bec7177c3a04f4d5ba355b4b7295bde85b 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Decorator/ProfilerTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Cache/Frontend/Decorator/ProfilerTest.php
@@ -77,10 +77,10 @@ class ProfilerTest extends \PHPUnit_Framework_TestCase
     /**
      * @return array
      */
-    public static function proxyMethodDataProvider()
+    public function proxyMethodDataProvider()
     {
         $backend = new \Zend_Cache_Backend_BlackHole();
-        $adaptee = \PHPUnit_Framework_MockObject_Generator::getMock('Zend_Cache_Core', array(), array(), '', false);
+        $adaptee = $this->getMock('Zend_Cache_Core', array(), array(), '', false);
         $lowLevelFrontend = new \Magento\Framework\Cache\Frontend\Adapter\Zend($adaptee);
 
         return array(
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Code/Generator/EntityAbstractTest.php b/dev/tests/unit/testsuite/Magento/Framework/Code/Generator/EntityAbstractTest.php
index c86b2c41a2961b2111e4c042992b9b4dee3080f4..a3007f30184dc5dd2b33efb1d45c8752ff756879 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Code/Generator/EntityAbstractTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Code/Generator/EntityAbstractTest.php
@@ -299,7 +299,7 @@ class EntityAbstractTest extends \PHPUnit_Framework_TestCase
             $this->returnValue(self::RESULT_DIRECTORY)
         );
 
-        $autoloader->staticExpects(
+        $autoloader->expects(
             $this->at(0)
         )->method(
             'getFile'
@@ -309,7 +309,7 @@ class EntityAbstractTest extends \PHPUnit_Framework_TestCase
             $this->returnValue($classExistsFirst)
         );
         if ($classExistsFirst) {
-            $autoloader->staticExpects(
+            $autoloader->expects(
                 $this->at(1)
             )->method(
                 'getFile'
@@ -324,7 +324,7 @@ class EntityAbstractTest extends \PHPUnit_Framework_TestCase
         if ($classExistsFirst) {
             $expectedInvocations = 2;
         }
-        $autoloader->staticExpects($this->exactly($expectedInvocations))->method('getFile');
+        $autoloader->expects($this->exactly($expectedInvocations))->method('getFile');
 
         $expectedInvocations = 1;
         if (!$classExistsFirst || $classExistsSecond) {
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Code/Generator/IoTest.php b/dev/tests/unit/testsuite/Magento/Framework/Code/Generator/IoTest.php
index 78427a49813bbba8edb6f8e6382aaf947b0ea6a2..581576c6a1e9f45d840b0d699bbccddbba6491e9 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Code/Generator/IoTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Code/Generator/IoTest.php
@@ -82,7 +82,7 @@ class IoTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
-        $this->_autoLoaderMock->staticExpects(
+        $this->_autoLoaderMock->expects(
             $this->any()
         )->method(
             'getFilePath'
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Code/GeneratorTest.php b/dev/tests/unit/testsuite/Magento/Framework/Code/GeneratorTest.php
index 2ba5c382858072f35723031d211f6c6782aef0d9..da89941b30f51f24e41b159db9d5336db2f2accf 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Code/GeneratorTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Code/GeneratorTest.php
@@ -102,8 +102,8 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
      */
     public function testGenerateClass($className, $entityType)
     {
-        $this->_autoloader->staticExpects(
-            $this->once()
+        $this->_autoloader->expects(
+            $this->any()
         )->method(
             'getFile'
         )->with(
@@ -130,7 +130,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
      */
     public function testGenerateClassWithExistName($className, $entityType)
     {
-        $this->_autoloader->staticExpects(
+        $this->_autoloader->expects(
             $this->once()
         )->method(
             'getFile'
@@ -158,7 +158,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
 
     public function testGenerateClassWithWrongName()
     {
-        $this->_autoloader->staticExpects($this->never())->method('getFile');
+        $this->_autoloader->expects($this->never())->method('getFile');
 
         $this->_model = new \Magento\Framework\Code\Generator($this->_autoloader, $this->_ioObjectMock);
 
@@ -173,7 +173,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase
      */
     public function testGenerateClassWithError()
     {
-        $this->_autoloader->staticExpects($this->once())->method('getFile')->will($this->returnValue(false));
+        $this->_autoloader->expects($this->once())->method('getFile')->will($this->returnValue(false));
 
         $this->_model = new \Magento\Framework\Code\Generator(
             $this->_autoloader,
diff --git a/dev/tests/unit/testsuite/Magento/Framework/DB/Adapter/Pdo/MysqlTest.php b/dev/tests/unit/testsuite/Magento/Framework/DB/Adapter/Pdo/MysqlTest.php
index b9b0ecffda31991d89006f67e2c270bd3bee5593..5f6b5300fc7da7ebe4ebee03c5975df9ce723a66 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/DB/Adapter/Pdo/MysqlTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/DB/Adapter/Pdo/MysqlTest.php
@@ -93,8 +93,6 @@ class MysqlTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * Test result for bigint
-     *
      * @dataProvider bigintResultProvider
      */
     public function testPrepareColumnValueForBigint($value, $expectedResult)
@@ -124,12 +122,12 @@ class MysqlTest extends \PHPUnit_Framework_TestCase
             array(2147483647 + 1, '2147483648'),
             array(9223372036854775807 + 1, '9223372036854775808'),
             array(9223372036854775807, '9223372036854775807'),
-            array(9223372036854775807.3423424234, '9223372036854775807'),
-            array(2147483647 * pow(10, 10)+12, '21474836470000000012'),
+            array(9223372036854775807.3423424234, '9223372036854775808'),
+            array(2147483647 * pow(10, 10)+12, '21474836470000001024'),
             array(9223372036854775807 * pow(10, 10)+12, '92233720368547758080000000000'),
             array((0.099999999999999999999999995+0.2+0.3+0.4+0.5)*10, '15'),
-            array('21474836470000000012', '21474836470000000012'),
-            array(0x5468792130ABCDEF, '6082244480221302255')
+            array('21474836470000000012', '21474836470000001024'),
+            array(0x5468792130ABCDEF, '6082244480221302255'),
         );
     }
 
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/AbstractElementTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/AbstractElementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..90d887b2cd5250320250b41cad8a6a3472bae393
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/AbstractElementTest.php
@@ -0,0 +1,667 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\AbstractElement
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class AbstractElementTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Framework\Data\Form\Element\AbstractElement|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_model;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Factory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_factoryMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_collectionFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Escaper|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_escaperMock;
+
+    protected function setUp()
+    {
+        $this->_factoryMock = $this->getMock(
+            'Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false
+        );
+        $this->_collectionFactoryMock = $this->getMock(
+            'Magento\Framework\Data\Form\Element\CollectionFactory', array(), array(), '', false
+        );
+        $this->_escaperMock = $this->getMock('Magento\Framework\Escaper', array(), array(), '', false);
+
+        $this->_model = $this->getMockForAbstractClass('Magento\Framework\Data\Form\Element\AbstractElement', array(
+            $this->_factoryMock,
+            $this->_collectionFactoryMock,
+            $this->_escaperMock
+        ));
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::addElement()
+     */
+    public function testAddElement()
+    {
+        $elementId = 11;
+        $elementMock = $this->getMockForAbstractClass(
+            'Magento\Framework\Data\Form\Element\AbstractElement', array(), '', false, true, true, array('getId')
+        );
+        $elementMock->expects($this->once())
+            ->method('getId')
+            ->will($this->returnValue($elementId));
+
+        $formMock = $this->getMock(
+            'Magento\Framework\Data\Form\AbstractForm',
+            array('checkElementId', 'addElementToCollection'),
+            array(),
+            '',
+            false
+        );
+        $formMock->expects($this->once())
+            ->method('checkElementId')
+            ->with($elementId);
+        $formMock->expects($this->once())
+            ->method('addElementToCollection')
+            ->with($elementMock);
+
+        $collectionMock = $this->getMock('Magento\Framework\Data\Form\Element\Collection', array(), array(), '', false);
+
+        $this->_collectionFactoryMock->expects($this->any())
+            ->method('create')
+            ->will($this->returnValue($collectionMock));
+
+        $this->_model->setForm($formMock);
+        $this->_model->addElement($elementMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getHtmlId()
+     */
+    public function testGetHtmlId()
+    {
+        $htmlIdPrefix = '--';
+        $htmlIdSuffix = ']]';
+        $htmlId = 'some_id';
+
+        $formMock = $this->getMock(
+            'Magento\Framework\Data\Form\AbstractForm', array('getHtmlIdPrefix', 'getHtmlIdSuffix'), array(), '', false
+        );
+        $formMock->expects($this->any())
+            ->method('getHtmlIdPrefix')
+            ->will($this->returnValue($htmlIdPrefix));
+        $formMock->expects($this->any())
+            ->method('getHtmlIdSuffix')
+            ->will($this->returnValue($htmlIdSuffix));
+
+        $this->_model->setId($htmlId);
+        $this->_model->setForm($formMock);
+        $this->assertEquals($htmlIdPrefix . $htmlId . $htmlIdSuffix, $this->_model->getHtmlId());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getName()
+     */
+    public function testGetNameWithoutSuffix()
+    {
+        $formMock = $this->getMock(
+            'Magento\Framework\Data\Form\AbstractForm',
+            array('getFieldNameSuffix', 'addSuffixToName'),
+            array(),
+            '',
+            false
+        );
+        $formMock->expects($this->any())
+            ->method('getFieldNameSuffix')
+            ->will($this->returnValue(null));
+        $formMock->expects($this->never())
+            ->method('addSuffixToName');
+
+        $this->_model->setForm($formMock);
+        $this->_model->getName();
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getName()
+     */
+    public function testGetNameWithSuffix()
+    {
+        $returnValue = 'some_value';
+
+        $formMock = $this->getMock(
+            'Magento\Framework\Data\Form\AbstractForm',
+            array('getFieldNameSuffix', 'addSuffixToName'),
+            array(),
+            '',
+            false
+        );
+        $formMock->expects($this->once())
+            ->method('getFieldNameSuffix')
+            ->will($this->returnValue(true));
+        $formMock->expects($this->once())
+            ->method('addSuffixToName')
+            ->will($this->returnValue($returnValue));
+
+        $this->_model->setForm($formMock);
+
+        $this->assertEquals($returnValue, $this->_model->getName());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::removeField()
+     */
+    public function testRemoveField()
+    {
+        $elementId = 'element_id';
+
+        $formMock = $this->getMock(
+            'Magento\Framework\Data\Form\AbstractForm', array('removeField'), array(), '', false
+        );
+        $formMock->expects($this->once())
+            ->method('removeField')
+            ->with($elementId);
+
+        $collectionMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\Collection', array('remove'), array(), '', false
+        );
+        $collectionMock->expects($this->once())
+            ->method('remove')
+            ->with($elementId);
+
+        $this->_collectionFactoryMock->expects($this->any())
+            ->method('create')
+            ->will($this->returnValue($collectionMock));
+
+        $this->_model->setForm($formMock);
+        $this->_model->removeField($elementId);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getHtmlAttributes()
+     */
+    public function testGetHtmlAttributes()
+    {
+        $htmlAttributes = array(
+            'type',
+            'title',
+            'class',
+            'style',
+            'onclick',
+            'onchange',
+            'disabled',
+            'readonly',
+            'tabindex',
+            'placeholder'
+        );
+        $this->assertEquals($htmlAttributes, $this->_model->getHtmlAttributes());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::addClass()
+     */
+    public function testAddClass()
+    {
+        $oldClass = 'old_class';
+        $newClass = 'new_class';
+        $this->_model->addClass($oldClass);
+        $this->_model->addClass($newClass);
+
+        $this->assertEquals(' ' . $oldClass . ' ' . $newClass, $this->_model->getClass());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::removeClass()
+     */
+    public function testRemoveClass()
+    {
+        $oldClass = 'old_class';
+        $newClass = 'new_class';
+        $oneMoreClass = 'some_class';
+        $this->_model->addClass($oldClass);
+        $this->_model->addClass($oneMoreClass);
+        $this->_model->addClass($newClass);
+
+        $this->_model->removeClass($oneMoreClass);
+
+        $this->assertEquals(' ' . $oldClass . ' ' . $newClass, $this->_model->getClass());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getEscapedValue()
+     */
+    public function testGetEscapedValueWithoutFilter()
+    {
+        $this->_model->setValue('<a href="#hash_tag">my \'quoted\' string</a>');
+        $this->assertEquals(
+            '&lt;a href=&quot;#hash_tag&quot;&gt;my \'quoted\' string&lt;/a&gt;', $this->_model->getEscapedValue()
+        );
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getEscapedValue()
+     */
+    public function testGetEscapedValueWithFilter()
+    {
+        $value = '<a href="#hash_tag">my \'quoted\' string</a>';
+        $expectedValue = '&lt;a href=&quot;#hash_tag&quot;&gt;my \'quoted\' string&lt;/a&gt;';
+
+        $filterMock = $this->getMock('Magento\Framework\Object', array('filter'), array(), '', false);
+        $filterMock->expects($this->once())
+            ->method('filter')
+            ->with($value)
+            ->will($this->returnArgument(0));
+
+        $this->_model->setValueFilter($filterMock);
+        $this->_model->setValue($value);
+        $this->assertEquals($expectedValue, $this->_model->getEscapedValue());
+    }
+
+    /**
+     * @param array $initialData
+     * @param string $expectedValue
+     * @dataProvider getElementHtmlDataProvider
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getElementHtml()
+     */
+    public function testGetElementHtml(array $initialData, $expectedValue)
+    {
+        $this->_model->setForm(
+            $this->getMock('Magento\Framework\Data\Form\AbstractForm', array(), array(), '', false)
+        );
+
+        $this->_model->setData($initialData);
+        $this->assertEquals($expectedValue, $this->_model->getElementHtml());
+    }
+
+    /**
+     * @param array $initialData
+     * @param string $expectedValue
+     * @dataProvider getLabelHtmlDataProvider
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getLabelHtml()
+     */
+    public function testGetLabelHtml(array $initialData, $expectedValue)
+    {
+        $idSuffix = isset($initialData['id_suffix']) ? $initialData['id_suffix'] : null;
+        $this->_model->setData($initialData);
+        $this->_model->setForm(
+            $this->getMock('Magento\Framework\Data\Form\AbstractForm', array(), array(), '', false)
+        );
+        $this->assertEquals($expectedValue, $this->_model->getLabelHtml($idSuffix));
+    }
+
+    /**
+     * @param array $initialData
+     * @param string $expectedValue
+     * @dataProvider testGetDefaultHtmlDataProvider
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getDefaultHtml()
+     */
+    public function testGetDefaultHtml(array $initialData, $expectedValue)
+    {
+        $this->_model->setData($initialData);
+        $this->_model->setForm(
+            $this->getMock('Magento\Framework\Data\Form\AbstractForm', array(), array(), '', false)
+        );
+        $this->assertEquals($expectedValue, $this->_model->getDefaultHtml());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getHtml()
+     */
+    public function testGetHtmlWithoutRenderer()
+    {
+        $this->_model->setRequired(true);
+        $this->_model->setForm(
+            $this->getMock('Magento\Framework\Data\Form\AbstractForm', array(), array(), '', false)
+        );
+        $expectedHtml = '<span class="field-row">' . "\n"
+            . '<input id="" name=""  data-ui-id="form-element-" value="" class=" required-entry"/></span>' . "\n";
+
+        $this->assertEquals($expectedHtml, $this->_model->getHtml());
+        $this->assertEquals(' required-entry', $this->_model->getClass());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getHtml()
+     */
+    public function testGetHtmlWithRenderer()
+    {
+        $this->_model->setRequired(true);
+
+        $expectedHtml = 'some-html';
+
+        $rendererMock = $this->getMockForAbstractClass(
+            'Magento\Framework\Data\Form\Element\Renderer\RendererInterface'
+        );
+        $rendererMock->expects($this->once())
+            ->method('render')
+            ->with($this->_model)
+            ->will($this->returnValue($expectedHtml));
+        $this->_model->setRenderer($rendererMock);
+
+        $this->assertEquals($expectedHtml, $this->_model->getHtml());
+        $this->assertEquals(' required-entry', $this->_model->getClass());
+    }
+
+    /**
+     * @param array $initialData
+     * @param string $expectedValue
+     * @dataProvider serializeDataProvider
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::serialize()
+     */
+    public function testSerialize(array $initialData, $expectedValue)
+    {
+        $attributes = array();
+        if (isset($initialData['attributes'])) {
+            $attributes = $initialData['attributes'];
+            unset($initialData['attributes']);
+        }
+        $this->_model->setData($initialData);
+        $this->assertEquals($expectedValue, $this->_model->serialize($attributes));
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getHtmlContainerId()
+     */
+    public function testGetHtmlContainerIdWithoutId()
+    {
+        $this->_model->setForm(
+            $this->getMock('Magento\Framework\Data\Form\AbstractForm', array(), array(), '', false)
+        );
+        $this->assertEquals('', $this->_model->getHtmlContainerId());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getHtmlContainerId()
+     */
+    public function testGetHtmlContainerIdWithContainerId()
+    {
+        $containerId = 'some-id';
+        $this->_model->setContainerId($containerId);
+        $this->_model->setForm(
+            $this->getMock('Magento\Framework\Data\Form\AbstractForm', array(), array(), '', false)
+        );
+        $this->assertEquals($containerId, $this->_model->getHtmlContainerId());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::getHtmlContainerId()
+     */
+    public function testGetHtmlContainerIdWithFieldContainerIdPrefix()
+    {
+        $id = 'id';
+        $prefix = 'prefix_';
+        $formMock = $this->getMock(
+            'Magento\Framework\Data\Form\AbstractForm', array('getFieldContainerIdPrefix'), array(), '', false
+        );
+        $formMock->expects($this->once())
+            ->method('getFieldContainerIdPrefix')
+            ->will($this->returnValue($prefix));
+
+        $this->_model->setId($id);
+        $this->_model->setForm($formMock);
+        $this->assertEquals($prefix . $id, $this->_model->getHtmlContainerId());
+    }
+
+    /**
+     * @param array $initialData
+     * @param string $expectedValue
+     * @dataProvider addElementValuesDataProvider
+     * @covers \Magento\Framework\Data\Form\Element\AbstractElement::addElementValues()
+     */
+    public function testAddElementValues(array $initialData, $expectedValue)
+    {
+        $this->_escaperMock->expects($this->any())
+            ->method('escapeHtml')
+            ->will($this->returnArgument(0));
+        $this->_model->setValues($initialData['initial_values']);
+        $this->_model->addElementValues($initialData['add_values'], $initialData['overwrite']);
+
+        $this->assertEquals($expectedValue, $this->_model->getValues());
+    }
+
+    /**
+     * @return array
+     */
+    public function addElementValuesDataProvider()
+    {
+        return array(
+            array(
+                array(
+                    'initial_values' => array(
+                        'key_1' => 'value_1',
+                        'key_2' => 'value_2',
+                        'key_3' => 'value_3'
+                    ),
+                    'add_values' => array(
+                        'key_1' => 'value_4',
+                        'key_2' => 'value_5',
+                        'key_3' => 'value_6',
+                        'key_4' => 'value_7'
+                    ),
+                    'overwrite' => false
+                ),
+                array(
+                    'key_1' => 'value_1',
+                    'key_2' => 'value_2',
+                    'key_3' => 'value_3',
+                    'key_4' => 'value_7'
+                )
+            ),
+            array(
+                array(
+                    'initial_values' => array(
+                        'key_1' => 'value_1',
+                        'key_2' => 'value_2',
+                        'key_3' => 'value_3'
+                    ),
+                    'add_values' => array(
+                        'key_1' => 'value_4',
+                        'key_2' => 'value_5',
+                        'key_3' => 'value_6',
+                        'key_4' => 'value_7'
+                    ),
+                    'overwrite' => true
+                ),
+                array(
+                    'key_1' => 'value_4',
+                    'key_2' => 'value_5',
+                    'key_3' => 'value_6',
+                    'key_4' => 'value_7'
+                )
+            )
+        );
+    }
+
+    /**
+     * @return array
+     */
+    public function serializeDataProvider()
+    {
+        return array(
+            array(
+                array(),
+                ''
+            ),
+            array(
+                array(
+                    'attributes' => array('disabled'),
+                    'disabled' => true
+                ),
+                'disabled="disabled"'
+            ),
+            array(
+                array(
+                    'attributes' => array('checked'),
+                    'checked' => true
+                ),
+                'checked="checked"'
+            ),
+            array(
+                array(
+                    'data-locked' => 1,
+                    'attributes' => array('attribute_1')
+                ),
+                'data-locked="1"'
+            )
+        );
+    }
+
+    /**
+     * @return array
+     */
+    public function testGetDefaultHtmlDataProvider()
+    {
+        return array(
+            array(
+                array(),
+                '<span class="field-row">' . "\n"
+                    . '<input id="" name=""  data-ui-id="form-element-" value="" /></span>' . "\n"
+            ),
+            array(
+                array('default_html' => 'some default html'),
+                'some default html'
+            ),
+            array(
+                array(
+                    'label' => 'some label',
+                    'html_id' => 'html-id',
+                    'name' => 'some-name',
+                    'value' => 'some-value',
+                ),
+                '<span class="field-row">' . "\n"
+                    . '<label class="label" for="html-id" data-ui-id="form-element-some-namelabel">'
+                    . '<span>some label</span></label>' . "\n"
+                    . '<input id="html-id" name="some-name"  data-ui-id="form-element-some-name" value="some-value" />'
+                    . '</span>' . "\n"
+            ),
+            array(
+                array(
+                    'label' => 'some label',
+                    'html_id' => 'html-id',
+                    'name' => 'some-name',
+                    'value' => 'some-value',
+                    'no_span' => true
+                ),
+                '<label class="label" for="html-id" data-ui-id="form-element-some-namelabel">'
+                    . '<span>some label</span></label>' . "\n"
+                    . '<input id="html-id" name="some-name"  data-ui-id="form-element-some-name" value="some-value" />'
+            ),
+        );
+    }
+
+    /**
+     * @return array
+     */
+    public function getLabelHtmlDataProvider()
+    {
+        return array(
+            array(
+                array(),
+                ''
+            ),
+            array(
+                array(
+                    'id_suffix' => 'suffix'
+                ),
+                ''
+            ),
+            array(
+                array(
+                    'label' => 'some-label',
+                    'html_id' => 'some-html-id'
+                ),
+                '<label class="label" for="some-html-id" data-ui-id="form-element-label">'
+                    . '<span>some-label</span></label>' . "\n"
+            ),
+            array(
+                array(
+                    'id_suffix' => 'suffix',
+                    'label' => 'some-label',
+                    'html_id' => 'some-html-id'
+                ),
+                '<label class="label" for="some-html-idsuffix" data-ui-id="form-element-label">'
+                    . '<span>some-label</span></label>' . "\n"
+            ),
+        );
+    }
+
+    /**
+     * @return array
+     */
+    public function getElementHtmlDataProvider()
+    {
+        return array(
+            array(
+                array(),
+                '<input id="" name=""  data-ui-id="form-element-" value="" />'
+            ),
+            array(
+                array(
+                    'html_id' => 'html-id',
+                    'name' => 'some-name',
+                    'value' => 'some-value'
+                ),
+                '<input id="html-id" name="some-name"  data-ui-id="form-element-some-name" value="some-value" />'
+            ),
+            array(
+                array(
+                    'html_id' => 'html-id',
+                    'name' => 'some-name',
+                    'value' => 'some-value',
+                    'before_element_html' => 'some-html'
+                ),
+                '<label class="addbefore" for="html-id">some-html</label>'
+                    . '<input id="html-id" name="some-name"  data-ui-id="form-element-some-name" value="some-value" />'
+            ),
+            array(
+                array(
+                    'html_id' => 'html-id',
+                    'name' => 'some-name',
+                    'value' => 'some-value',
+                    'after_element_js' => 'some-js'
+                ),
+                '<input id="html-id" name="some-name"  data-ui-id="form-element-some-name" value="some-value" />some-js'
+            ),
+            array(
+                array(
+                    'html_id' => 'html-id',
+                    'name' => 'some-name',
+                    'value' => 'some-value',
+                    'after_element_html' => 'some-html'
+                ),
+                '<input id="html-id" name="some-name"  data-ui-id="form-element-some-name" value="some-value" />'
+                    . '<label class="addafter" for="html-id">some-html</label>'
+            )
+        );
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ButtonTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ButtonTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..0c2f46961d4a0a5d92c44a670172c1e4ae898ed0
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ButtonTest.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Button
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class ButtonTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Button
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Button(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Button::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('button', $this->_model->getType());
+        $this->assertEquals('textfield', $this->_model->getExtType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Button::getHtmlAttributes
+     */
+    public function testGetHtmlAttributes()
+    {
+        $this->assertEmpty(
+            array_diff(
+                array(
+                    'type',
+                    'title',
+                    'class',
+                    'style',
+                    'onclick',
+                    'onchange',
+                    'disabled',
+                    'readonly',
+                    'tabindex',
+                    'placeholder',
+                    'data-mage-init'
+                ),
+                $this->_model->getHtmlAttributes()
+            )
+        );
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/CheckboxTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/CheckboxTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..55a59efde5307dbb3b8c1f17adc26e05ef1a8246
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/CheckboxTest.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Checkbox
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class CheckboxTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Checkbox
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Checkbox(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Checkbox::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('checkbox', $this->_model->getType());
+        $this->assertEquals('checkbox', $this->_model->getExtType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Checkbox::getHtmlAttributes
+     */
+    public function testGetHtmlAttributes()
+    {
+        $this->assertEmpty(
+            array_diff(
+                array('type', 'title', 'class', 'style', 'checked', 'onclick', 'onchange', 'disabled', 'tabindex'),
+                $this->_model->getHtmlAttributes()
+            )
+        );
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Checkbox::getElementHtml
+     */
+    public function testGetElementHtml()
+    {
+        $this->_model->setIsChecked(false);
+        $html = $this->_model->getElementHtml();
+        $this->assertContains('type="checkbox"', $html);
+        $this->assertNotContains('checked="checked"', $html);
+        $this->_model->setIsChecked(true);
+        $html = $this->_model->getElementHtml();
+        $this->assertContains('checked="checked"', $html);
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/CollectionFactoryTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/CollectionFactoryTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..e540ae0705b6207813dac37f403ad81d70473d70
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/CollectionFactoryTest.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\CollectionFactory
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class CollectionFactoryTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\CollectionFactory
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $objectManagerMock = $this->getMock(
+            'Magento\Framework\ObjectManager\ObjectManager',
+            array('create'),
+            array(),
+            '',
+            false
+        );
+        $collectionMock = $this->getMock('Magento\Framework\Data\Form\Element\Collection', array(), array(), '', false);
+        $objectManagerMock->expects($this->once())->method('create')->will($this->returnValue($collectionMock));
+        $this->_model = new \Magento\Framework\Data\Form\Element\CollectionFactory($objectManagerMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\CollectionFactory::create
+     */
+    public function testCreate()
+    {
+        $this->assertInstanceOf('Magento\Framework\Data\Form\Element\Collection', $this->_model->create(array()));
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ColumnTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ColumnTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..1bd1ffd22ca57ad6f2ac7af674ed83451729ba9a
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ColumnTest.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Column
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class ColumnTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Column
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Column(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Column::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('column', $this->_model->getType());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/FileTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/FileTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..f86b85923986fe3d04063dcae93e2e3f1065f6e0
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/FileTest.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\File
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class FileTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\File
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\File(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\File::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('file', $this->_model->getType());
+        $this->assertEquals('file', $this->_model->getExtType());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/HiddenTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/HiddenTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..010c282bc251504aad5d664ea7c81b843fdaae2d
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/HiddenTest.php
@@ -0,0 +1,87 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Hidden
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class HiddenTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Hidden
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Hidden(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Hidden::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('hidden', $this->_model->getType());
+        $this->assertEquals('hiddenfield', $this->_model->getExtType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Hidden::getDefaultHtml
+     */
+    public function testGetDefaultHtml()
+    {
+        $html = $this->_model->getDefaultHtml();
+        $this->assertContains('<input', $html);
+        $this->assertContains('type="hidden"', $html);
+        $this->_model->setDefaultHtml('testhtml');
+        $this->assertEquals('testhtml', $this->_model->getDefaultHtml());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ImageTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ImageTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..5a739a696a9807134926c8f8c1981f82396ce436
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ImageTest.php
@@ -0,0 +1,113 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Image
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class ImageTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Image
+     */
+    protected $_image;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $urlBuilderMock = $this->getMock('\Magento\Framework\Url', array(), array(), '', false);
+        $this->_image = new \Magento\Framework\Data\Form\Element\Image(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock,
+            $urlBuilderMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_image->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Image::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('file', $this->_image->getType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Image::getName
+     */
+    public function testGetName()
+    {
+        $this->_image->setName('image_name');
+        $this->assertEquals('image_name', $this->_image->getName());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Image::getElementHtml
+     */
+    public function testGetElementHtmlWithoutValue()
+    {
+        $html = $this->_image->getElementHtml();
+        $this->assertContains('class="input-file"', $html);
+        $this->assertContains('<input', $html);
+        $this->assertContains('type="file"', $html);
+        $this->assertContains('value=""', $html);
+        $this->assertNotContains('</a>', $html);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Image::getElementHtml
+     */
+    public function testGetElementHtmlWithValue()
+    {
+        $this->_image->setValue('test_value');
+        $html = $this->_image->getElementHtml();
+        $this->assertContains('class="input-file"', $html);
+        $this->assertContains('<input', $html);
+        $this->assertContains('type="file"', $html);
+        $this->assertContains('value="test_value"', $html);
+        $this->assertContains('<a href="test_value" onclick="imagePreview(\'_image\'); return false;"', $html);
+        $this->assertContains('<input type="checkbox"', $html);
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ImagefileTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ImagefileTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..56a30d645d2ea267151976c9355a82f148ec0c67
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ImagefileTest.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Imagefile
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class ImagefileTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Imagefile
+     */
+    protected $_imagefile;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_imagefile = new \Magento\Framework\Data\Form\Element\Imagefile(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Imagefile::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('file', $this->_imagefile->getType());
+        $this->assertEquals('imagefile', $this->_imagefile->getExtType());
+        $this->assertFalse($this->_imagefile->getAutosubmit());
+        $this->assertFalse($this->_imagefile->getData('autoSubmit'));
+
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/LabelTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/LabelTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..82f3889a59082491cc33ba09b99d728400323aaf
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/LabelTest.php
@@ -0,0 +1,83 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Label
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class LabelTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Label
+     */
+    protected $_label;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_label = new \Magento\Framework\Data\Form\Element\Label(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Label::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('label', $this->_label->getType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Label::getElementHtml
+     */
+    public function testGetElementHtml()
+    {
+        $this->_label->setValue('Label Text');
+        $html = $this->_label->getElementHtml();
+        $this->assertContains("<div class=\"control-value\">Label Text", $html);
+        $this->_label->setBold(true);
+        $html = $this->_label->getElementHtml();
+        $this->assertContains("<div class=\"control-value special\">Label Text", $html);
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/LinkTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/LinkTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..25760cabb5dda1d6aec304b14861e3e538539acd
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/LinkTest.php
@@ -0,0 +1,134 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Link
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class LinkTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Link
+     */
+    protected $_link;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_link = new \Magento\Framework\Data\Form\Element\Link(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_link->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Link::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('link', $this->_link->getType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Link::getElementHtml
+     */
+    public function testGetElementHtml()
+    {
+        $this->_link->setBeforeElementHtml('link_before');
+        $this->_link->setAfterElementHtml('link_after');
+        $this->_link->setId('link_id');
+        $this->_link->setData('ui_id', 'ui_id');
+        $this->_link->setValue('Link Text');
+        $html = $this->_link->getElementHtml();
+        $this->assertEquals(
+            "link_before<a id=\"link_id\"  data-ui-id=\"form-element-\">Link Text</a>\nlink_after",
+            $html
+        );
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Link::getHtmlAttributes
+     */
+    public function testGetHtmlAttributes()
+    {
+        $this->assertEmpty(
+            array_diff(
+                array(
+                    'charset',
+                    'coords',
+                    'href',
+                    'hreflang',
+                    'rel',
+                    'rev',
+                    'name',
+                    'shape',
+                    'target',
+                    'accesskey',
+                    'class',
+                    'dir',
+                    'lang',
+                    'style',
+                    'tabindex',
+                    'title',
+                    'xml:lang',
+                    'onblur',
+                    'onclick',
+                    'ondblclick',
+                    'onfocus',
+                    'onmousedown',
+                    'onmousemove',
+                    'onmouseout',
+                    'onmouseover',
+                    'onmouseup',
+                    'onkeydown',
+                    'onkeypress',
+                    'onkeyup'
+                ),
+                $this->_link->getHtmlAttributes()
+            )
+        );
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/NoteTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/NoteTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..0375358e9f258f684769e242958323c8d702fe0e
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/NoteTest.php
@@ -0,0 +1,91 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Note
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class NoteTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Note
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Note(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Note::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('note', $this->_model->getType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Note::getElementHtml
+     */
+    public function testGetElementHtml()
+    {
+        $this->_model->setBeforeElementHtml('note_before');
+        $this->_model->setAfterElementHtml('note_after');
+        $this->_model->setId('note_id');
+        $this->_model->setData('ui_id', 'ui_id');
+        $this->_model->setValue('Note Text');
+        $html = $this->_model->getElementHtml();
+        $this->assertEquals(
+            "note_before<div id=\"note_id\" class=\"control-value\"></div>note_after",
+            $html
+        );
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ObscureTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ObscureTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..222a99818236ff2518caf40e61697d3c1accdbb1
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ObscureTest.php
@@ -0,0 +1,111 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Obscure
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class ObscureTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Obscure
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Obscure(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Obscure::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('password', $this->_model->getType());
+        $this->assertEquals('textfield', $this->_model->getExtType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Obscure::getEscapedValue
+     */
+    public function testGetEscapedValue()
+    {
+        $this->_model->setValue('Obscure Text');
+        $this->assertContains('value="******"', $this->_model->getElementHtml());
+        $this->_model->setValue('');
+        $this->assertContains('value=""', $this->_model->getElementHtml());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Obscure::getHtmlAttributes
+     */
+    public function testGetHtmlAttributes()
+    {
+        $this->assertEmpty(
+            array_diff(
+                array(
+                    'type',
+                    'title',
+                    'class',
+                    'style',
+                    'onclick',
+                    'onchange',
+                    'onkeyup',
+                    'disabled',
+                    'readonly',
+                    'maxlength',
+                    'tabindex'
+                ),
+                $this->_model->getHtmlAttributes()
+            )
+        );
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/PasswordTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/PasswordTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..4656dea84408a10eb625462aedc005e978a94138
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/PasswordTest.php
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Password
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class PasswordTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Password
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Obscure(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Password::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('password', $this->_model->getType());
+        $this->assertEquals('textfield', $this->_model->getExtType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Password::getHtml
+     */
+    public function testGetHtml()
+    {
+        $html = $this->_model->getHtml();
+        $this->assertContains('type="password"', $html);
+        $this->assertTrue(preg_match('/class=\".*input-text.*\"/i', $html) > 0);
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/RadioTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/RadioTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..a06171e64c76e0910a4a85afe06379e60fdc9b9c
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/RadioTest.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Radio
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class RadioTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Radio
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Radio(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Radio::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('radio', $this->_model->getType());
+        $this->assertEquals('radio', $this->_model->getExtType());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ResetTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ResetTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..a4860a0302b7f9269add5ea5dfa0429d4b0a22f8
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/ResetTest.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Reset
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class ResetTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Reset
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Reset(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Reset::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('text', $this->_model->getType());
+        $this->assertEquals('textfield', $this->_model->getExtType());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/SubmitTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/SubmitTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..b9f84bd30716dd812262be77206f3f31d070058a
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/SubmitTest.php
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Submit
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class SubmitTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Submit
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Submit(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Submit::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('submit', $this->_model->getType());
+        $this->assertEquals('submit', $this->_model->getExtType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Submit::getHtml
+     */
+    public function testGetHtml()
+    {
+        $html = $this->_model->getHtml();
+        $this->assertContains('type="submit"', $html);
+        $this->assertTrue(preg_match('/class=\".*submit.*\"/i', $html) > 0);
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/TextTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/TextTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..0a986e750677f8db70f989c410d451458c5c2824
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/TextTest.php
@@ -0,0 +1,111 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Text
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class TextTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Text
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Text(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Text::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('text', $this->_model->getType());
+        $this->assertEquals('textfield', $this->_model->getExtType());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Text::getHtml
+     */
+    public function testGetHtml()
+    {
+        $html = $this->_model->getHtml();
+        $this->assertContains('type="text"', $html);
+        $this->assertTrue(preg_match('/class=\".*input-text.*\"/i', $html) > 0);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Text::getHtmlAttributes
+     */
+    public function testGetHtmlAttributes()
+    {
+        $this->assertEmpty(
+            array_diff(
+                array(
+                    'type',
+                    'title',
+                    'class',
+                    'style',
+                    'onclick',
+                    'onchange',
+                    'onkeyup',
+                    'disabled',
+                    'readonly',
+                    'maxlength',
+                    'tabindex',
+                    'placeholder'
+                ),
+                $this->_model->getHtmlAttributes()
+            )
+        );
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/TextareaTest.php b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/TextareaTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..f00acd6e1de925b8b394684befcc03c82c3b57b6
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Data/Form/Element/TextareaTest.php
@@ -0,0 +1,114 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Data
+ * @subpackage  integration_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Tests for \Magento\Framework\Data\Form\Element\Textarea
+ */
+namespace Magento\Framework\Data\Form\Element;
+
+class TextareaTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_objectManagerMock;
+
+    /**
+     * @var \Magento\Framework\Data\Form\Element\Textarea
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $factoryMock = $this->getMock('\Magento\Framework\Data\Form\Element\Factory', array(), array(), '', false);
+        $collectionFactoryMock = $this->getMock(
+            '\Magento\Framework\Data\Form\Element\CollectionFactory',
+            array(),
+            array(),
+            '',
+            false
+        );
+        $escaperMock = $this->getMock('\Magento\Framework\Escaper', array(), array(), '', false);
+        $this->_model = new \Magento\Framework\Data\Form\Element\Textarea(
+            $factoryMock,
+            $collectionFactoryMock,
+            $escaperMock
+        );
+        $formMock = new \Magento\Framework\Object();
+        $formMock->getHtmlIdPrefix('id_prefix');
+        $formMock->getHtmlIdPrefix('id_suffix');
+        $this->_model->setForm($formMock);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Textarea::__construct
+     */
+    public function testConstruct()
+    {
+        $this->assertEquals('textarea', $this->_model->getType());
+        $this->assertEquals('textarea', $this->_model->getExtType());
+        $this->assertEquals(2, $this->_model->getRows());
+        $this->assertEquals(15, $this->_model->getCols());
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Textarea::getElementHtml
+     */
+    public function testGetElementHtml()
+    {
+        $html = $this->_model->getElementHtml();
+        $this->assertContains('</textarea>', $html);
+        $this->assertContains('rows="2"', $html);
+        $this->assertContains('cols="15"', $html);
+        $this->assertTrue(preg_match('/class=\".*textarea.*\"/i', $html) > 0);
+    }
+
+    /**
+     * @covers \Magento\Framework\Data\Form\Element\Textarea::getHtmlAttributes
+     */
+    public function testGetHtmlAttributes()
+    {
+        $this->assertEmpty(
+            array_diff(
+                array(
+                    'title',
+                    'class',
+                    'style',
+                    'onclick',
+                    'onchange',
+                    'rows',
+                    'cols',
+                    'readonly',
+                    'disabled',
+                    'onkeyup',
+                    'tabindex'
+                ),
+                $this->_model->getHtmlAttributes()
+            )
+        );
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/CalculatorTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/CalculatorTest.php
index 0b48e4bb7eda57e08c3d23a2f88e1cbaab22a132..f5a00d642136356a58d1f17f13d0ab8762edd47c 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/CalculatorTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/CalculatorTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -48,6 +51,12 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase
         $this->model = new \Magento\Framework\Pricing\Adjustment\Calculator($this->amountFactoryMock);
     }
 
+    public function tearDown()
+    {
+        $this->model = null;
+        $this->amountFactoryMock = null;
+    }
+
     /**
      * Test getAmount()
      */
@@ -58,10 +67,10 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase
         $newAmount = 15;
         $taxAdjustmentCode = 'tax';
         $weeeAdjustmentCode = 'weee';
-        $adjust = 5;
+        $adjustment = 5;
         $expectedAdjustments = [
-            $taxAdjustmentCode => $adjust,
-            $weeeAdjustmentCode => $adjust
+            $taxAdjustmentCode => $adjustment,
+            $weeeAdjustmentCode => $adjustment
         ];
 
         $productMock = $this->getMockBuilder('Magento\Catalog\Model\Product')
@@ -81,7 +90,7 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase
         $taxAdjustmentMock->expects($this->once())
             ->method('extractAdjustment')
             ->with($this->equalTo($amount), $this->equalTo($productMock))
-            ->will($this->returnValue($adjust));
+            ->will($this->returnValue($adjustment));
 
         $weeeAdjustmentMock = $this->getMockBuilder('Magento\Weee\Pricing\Adjustment')
             ->disableOriginalConstructor()
@@ -126,4 +135,73 @@ class CalculatorTest extends \PHPUnit_Framework_TestCase
         $result = $this->model->getAmount($amount, $productMock);
         $this->assertInstanceOf('Magento\Framework\Pricing\Amount\AmountInterface', $result);
     }
+
+    public function testGetAmountExclude()
+    {
+        $amount = 10;
+        $taxAdjustmentCode = 'tax';
+        $weeeAdjustmentCode = 'weee';
+        $adjustment = 5;
+        $expectedAdjustments = [];
+
+        $productMock = $this->getMockBuilder('Magento\Catalog\Model\Product')
+            ->disableOriginalConstructor()
+            ->setMethods(['getPriceInfo', '__wakeup'])
+            ->getMock();
+
+        $taxAdjustmentMock = $this->getMockBuilder('Magento\Tax\Pricing\Adjustment')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $taxAdjustmentMock->expects($this->once())
+            ->method('getAdjustmentCode')
+            ->will($this->returnValue($taxAdjustmentCode));
+        $taxAdjustmentMock->expects($this->once())
+            ->method('isIncludedInBasePrice')
+            ->will($this->returnValue(true));
+        $taxAdjustmentMock->expects($this->once())
+            ->method('extractAdjustment')
+            ->with($this->equalTo($amount), $this->equalTo($productMock))
+            ->will($this->returnValue($adjustment));
+
+        $weeeAdjustmentMock = $this->getMockBuilder('Magento\Weee\Pricing\Adjustment')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $weeeAdjustmentMock->expects($this->once())
+            ->method('getAdjustmentCode')
+            ->will($this->returnValue($weeeAdjustmentCode));
+        $weeeAdjustmentMock->expects($this->once())
+            ->method('isIncludedInBasePrice')
+            ->will($this->returnValue(false));
+        $weeeAdjustmentMock->expects($this->once())
+            ->method('isIncludedInDisplayPrice')
+            ->with($this->equalTo($productMock))
+            ->will($this->returnValue(true));
+        $weeeAdjustmentMock->expects($this->never())
+            ->method('applyAdjustment');
+
+        $adjustments = [$taxAdjustmentMock, $weeeAdjustmentMock];
+
+        $priceInfoMock = $this->getMockBuilder('\Magento\Framework\Pricing\PriceInfoInterface')
+            ->disableOriginalConstructor()
+            //->setMethods(['getPriceInfo'])
+            ->getMock();
+        $priceInfoMock->expects($this->any())
+            ->method('getAdjustments')
+            ->will($this->returnValue($adjustments));
+
+        $productMock->expects($this->any())
+            ->method('getPriceInfo')
+            ->will($this->returnValue($priceInfoMock));
+
+        $amountBaseMock = $this->getMockBuilder('Magento\Framework\Pricing\Amount\Base')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->amountFactoryMock->expects($this->once())
+            ->method('create')
+            ->with($this->equalTo($amount), $this->equalTo($expectedAdjustments))
+            ->will($this->returnValue($amountBaseMock));
+        $result = $this->model->getAmount($amount, $productMock, true);
+        $this->assertInstanceOf('Magento\Framework\Pricing\Amount\AmountInterface', $result);
+    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/CollectionTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/CollectionTest.php
index 0ed7b9423a5e516d24fe1baf17763e057cf62402..53b12cafda2ec9da10d0f6f314c6ca2bfe6efa2a 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/CollectionTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/CollectionTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/FactoryTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/FactoryTest.php
index 147567a255242bf8d60a20c3fff2802ace421bc9..93bfb30ad02e8b1e212cc986675d3a2e0ce634df 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/FactoryTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/FactoryTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -69,8 +72,8 @@ class FactoryTest extends \PHPUnit_Framework_TestCase
     {
         $objectManager = $this->getMock(
             'Magento\Framework\ObjectManager\ObjectManager',
-            array('create'),
-            array(),
+            ['create'],
+            [],
             '',
             false
         );
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/PoolTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/PoolTest.php
index 9bfe424bbb63f92c5ff4dbee971910628424dc3e..00d2b79593ecf62c6b03eb5826b6570542edca0b 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/PoolTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Adjustment/PoolTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -40,7 +43,7 @@ class PoolTest extends \PHPUnit_Framework_TestCase
             'adj5' => ['className' => 'adj5_class'],
         ];
 
-        /** @var $adjustmentFactory \Magento\Framework\Pricing\Adjustment\Factory  */
+        /** @var Factory|\PHPUnit_Framework_MockObject_MockObject $adjustmentFactory */
         $adjustmentFactory = $this->getMockBuilder('Magento\Framework\Pricing\Adjustment\Factory')
             ->disableOriginalConstructor()
             ->setMethods(['create'])
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Amount/BaseTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Amount/BaseTest.php
index ab8245031184570f277c630029ac20df5c1407b4..9adc6ec6b044badf14a8b737057b1cdbd9119d94 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Amount/BaseTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Amount/BaseTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/AbstractPriceTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/AbstractPriceTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..d478d29d4a905790ddbcb4036f45ab613759223b
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/AbstractPriceTest.php
@@ -0,0 +1,127 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Framework\Pricing\Price;
+
+/**
+ * Class RegularPriceTest
+ */
+class AbstractPriceTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var AbstractPrice
+     */
+    protected $price;
+
+    /**
+     * @var \Magento\Framework\Pricing\PriceInfoInterface |\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $priceInfoMock;
+
+    /**
+     * @var \Magento\Framework\Pricing\Amount\Base |\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $amountMock;
+
+    /**
+     * @var \Magento\Framework\Pricing\Object\SaleableInterface |\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $saleableItemMock;
+
+    /**
+     * @var \Magento\Framework\Pricing\Adjustment\Calculator |\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $calculatorMock;
+
+    /**
+     * Test setUp
+     */
+    protected function setUp()
+    {
+        $qty = 1;
+        $this->saleableItemMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
+        $this->priceInfoMock = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
+        $this->amountMock = $this->getMock('Magento\Framework\Pricing\Amount', [], [], '', false);
+        $this->calculatorMock = $this->getMock('Magento\Framework\Pricing\Adjustment\Calculator', [], [], '', false);
+
+        $this->saleableItemMock->expects($this->once())
+            ->method('getPriceInfo')
+            ->will($this->returnValue($this->priceInfoMock));
+        $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $this->price = $objectManager->getObject(
+            'Magento\Framework\Pricing\Price\Stub',
+            [
+                'saleableItem' => $this->saleableItemMock,
+                'quantity' => $qty,
+                'calculator' => $this->calculatorMock
+            ]
+        );
+    }
+
+    /**
+     * Test method testGetDisplayValue
+     */
+    public function testGetAmount()
+    {
+        $priceValue = $this->price->getValue();
+        $amountValue = 88;
+        $this->calculatorMock->expects($this->once())
+            ->method('getAmount')
+            ->with($this->equalTo($priceValue))
+            ->will($this->returnValue($amountValue));
+        $this->assertEquals($amountValue, $this->price->getAmount());
+    }
+
+    /**
+     * Test method getPriceType
+     */
+    public function testGetPriceCode()
+    {
+        $this->assertEquals(AbstractPrice::PRICE_CODE, $this->price->getPriceCode());
+    }
+
+    public function testGetCustomAmount()
+    {
+        $exclude = false;
+        $amount = 21.0;
+        $customAmount = 42.0;
+        $this->calculatorMock->expects($this->once())
+            ->method('getAmount')
+            ->with($amount, $this->saleableItemMock, $exclude)
+            ->will($this->returnValue($customAmount));
+
+        $this->assertEquals($customAmount, $this->price->getCustomAmount($amount, $exclude));
+    }
+
+    public function testGetCustomAmountDefault()
+    {
+        $customAmount = 42.0;
+        $this->calculatorMock->expects($this->once())
+            ->method('getAmount')
+            ->with($this->price->getValue(), $this->saleableItemMock, null)
+            ->will($this->returnValue($customAmount));
+
+        $this->assertEquals($customAmount, $this->price->getCustomAmount());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/CollectionTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/CollectionTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..e1252270c6fc89bfb054742171aa88d0ee177dbd
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/CollectionTest.php
@@ -0,0 +1,121 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Framework\Pricing\Price;
+
+/**
+ * Test for class Collection
+ */
+class CollectionTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Framework\Pricing\Price\Collection
+     */
+    protected $collection;
+
+    /**
+     * @var \Magento\Framework\Pricing\Price\Pool
+     */
+    protected $pool;
+
+    /**
+     * @var \Magento\Framework\Pricing\Price\PriceInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $priceMock;
+
+    /**
+     * @var \Magento\Framework\Pricing\Object\SaleableInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $saleableItemMock;
+
+    /**
+     * @var \Magento\Framework\Pricing\Price\Factory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $factoryMock;
+
+    /**
+     * @var float
+     */
+    protected $quantity;
+
+    /**
+     * Test setUp
+     */
+    public function setUp()
+    {
+        $this->pool = new Pool(
+            [
+                'regular_price' => 'RegularPrice',
+                'special_price' => 'SpecialPrice',
+                'group_price' => 'GroupPrice'
+            ]
+        );
+
+        $this->saleableItemMock = $this->getMockForAbstractClass('Magento\Framework\Pricing\Object\SaleableInterface');
+        $this->priceMock = $this->getMockForAbstractClass('Magento\Framework\Pricing\Price\PriceInterface');
+        $this->factoryMock = $this->getMock('Magento\Framework\Pricing\Price\Factory', [], [], '', false);
+
+        $this->collection = new Collection(
+            $this->saleableItemMock,
+            $this->factoryMock,
+            $this->pool,
+            $this->quantity
+        );
+    }
+
+    /**
+     * Test get method
+     */
+    public function testGet()
+    {
+        $this->factoryMock->expects($this->once())
+            ->method('create')
+            ->with(
+                $this->equalTo($this->saleableItemMock),
+                $this->equalTo('RegularPrice'),
+                $this->quantity
+            )
+            ->will($this->returnValue($this->priceMock));
+        $this->assertEquals($this->priceMock, $this->collection->get('regular_price'));
+    }
+
+    /**
+     * Test current method
+     */
+    public function testCurrent()
+    {
+        $this->factoryMock->expects($this->once())
+            ->method('create')
+            ->with(
+                $this->equalTo($this->saleableItemMock),
+                $this->equalTo($this->pool->current()),
+                $this->quantity
+            )
+            ->will($this->returnValue($this->priceMock));
+        $this->assertEquals($this->priceMock, $this->collection->current());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/FactoryTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/FactoryTest.php
index 382c8e23835e437257ee7e51afa07794ac012006..89a315563bf8e206ebecd6e7a12f6aae55d30490 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/FactoryTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/FactoryTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -56,41 +59,40 @@ class FactoryTest extends \PHPUnit_Framework_TestCase
         $quantity = 2.2;
         $className = 'Magento\Framework\Pricing\Price\PriceInterface';
         $priceMock = $this->getMock($className);
-        $salableItem = $this->getMock('Magento\Framework\Pricing\Object\SaleableInterface');
+        $saleableItem = $this->getMock('Magento\Framework\Pricing\Object\SaleableInterface');
         $arguments = [];
 
-        $argumentsResult = array_merge($arguments, ['salableItem' => $salableItem, 'quantity' => $quantity]);
+        $argumentsResult = array_merge($arguments, ['saleableItem' => $saleableItem, 'quantity' => $quantity]);
 
         $this->objectManagerMock->expects($this->once())
             ->method('create')
             ->with($className, $argumentsResult)
             ->will($this->returnValue($priceMock));
 
-        $this->assertEquals($priceMock, $this->model->create($salableItem, $className, $quantity, $arguments));
+        $this->assertEquals($priceMock, $this->model->create($saleableItem, $className, $quantity, $arguments));
     }
 
+    /**
+     * @codingStandardsIgnoreStart
+     * @expectedException \InvalidArgumentException
+     * @expectedExceptionMessage Magento\Framework\Pricing\PriceInfo\Base doesn't implement \Magento\Framework\Pricing\Price\PriceInterface
+     * @codingStandardsIgnoreEnd
+     */
     public function testCreateWithException()
     {
-        $this->setExpectedException(
-            'InvalidArgumentException',
-            sprintf(
-                'Magento\Framework\Pricing\PriceInfo\Base doesn\'t implement %s',
-                '\Magento\Framework\Pricing\Price\PriceInterface'
-            )
-        );
         $quantity = 2.2;
         $className = 'Magento\Framework\Pricing\PriceInfo\Base';
         $priceMock = $this->getMockBuilder($className)->disableOriginalConstructor()->getMock();
-        $salableItem = $this->getMock('Magento\Framework\Pricing\Object\SaleableInterface');
+        $saleableItem = $this->getMock('Magento\Framework\Pricing\Object\SaleableInterface');
         $arguments = [];
 
-        $argumentsResult = array_merge($arguments, ['salableItem' => $salableItem, 'quantity' => $quantity]);
+        $argumentsResult = array_merge($arguments, ['saleableItem' => $saleableItem, 'quantity' => $quantity]);
 
         $this->objectManagerMock->expects($this->once())
             ->method('create')
             ->with($className, $argumentsResult)
             ->will($this->returnValue($priceMock));
 
-        $this->model->create($salableItem, $className, $quantity, $arguments);
+        $this->model->create($saleableItem, $className, $quantity, $arguments);
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/PoolTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/PoolTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..6858599eac02d816dd8e21bfac98fec7736cc695
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/PoolTest.php
@@ -0,0 +1,120 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Framework\Pricing\Price;
+
+/**
+ * Test for Pool
+ */
+class PoolTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Framework\Pricing\Price\Pool
+     */
+    protected $pool;
+
+    /**
+     * @var array
+     */
+    protected $prices;
+
+    /**
+     * @var array
+     */
+    protected $target;
+
+    /**
+     * \Iterator
+     */
+    protected $targetPool;
+
+    /**
+     * Test setUp
+     */
+    public function setUp()
+    {
+        $this->prices = [
+            'regular_price' => 'RegularPrice',
+            'special_price' => 'SpecialPrice'
+        ];
+        $this->target = [
+            'group_price' => 'TargetGroupPrice',
+            'regular_price' => 'TargetRegularPrice'
+        ];
+        $this->targetPool = new Pool($this->target);
+        $this->pool = new Pool($this->prices, $this->targetPool);
+    }
+
+    /**
+     * test mergedConfiguration
+     */
+    public function testMergedConfiguration()
+    {
+        $expected = new Pool([
+            'regular_price' => 'RegularPrice',
+            'special_price' => 'SpecialPrice',
+            'group_price' => 'TargetGroupPrice'
+        ]);
+        $this->assertEquals($expected, $this->pool);
+    }
+
+    /**
+     * Test get method
+     */
+    public function testGet()
+    {
+        $this->assertEquals('RegularPrice', $this->pool->get('regular_price'));
+        $this->assertEquals('SpecialPrice', $this->pool->get('special_price'));
+        $this->assertEquals('TargetGroupPrice', $this->pool->get('group_price'));
+    }
+
+    /**
+     * Test abilities of ArrayAccess interface
+     */
+    public function testArrayAccess()
+    {
+        $this->assertEquals('RegularPrice', $this->pool['regular_price']);
+        $this->assertEquals('SpecialPrice', $this->pool['special_price']);
+        $this->assertEquals('TargetGroupPrice', $this->pool['group_price']);
+        $this->pool['fake_price'] = 'FakePrice';
+        $this->assertEquals('FakePrice', $this->pool['fake_price']);
+        $this->assertTrue(isset($this->pool['fake_price']));
+        unset($this->pool['fake_price']);
+        $this->assertFalse(isset($this->pool['fake_price']));
+        $this->assertNull($this->pool['fake_price']);
+    }
+
+    /**
+     * Test abilities of Iterator interface
+     */
+    public function testIterator()
+    {
+        foreach ($this->pool as $code => $class) {
+            $this->assertEquals($this->pool[$code], $class);
+        }
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/Stub.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/Stub.php
new file mode 100644
index 0000000000000000000000000000000000000000..2be7d1988ea57ccfa1ee4e80fcb67dd037f7177e
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Price/Stub.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Framework\Pricing\Price;
+
+/**
+ * Class Stub for testing abstract class AbstractPrice
+ *
+ * @package Magento\Catalog\Pricing\Price
+ */
+class Stub extends AbstractPrice
+{
+    /**
+     * Get price value
+     *
+     * @return float
+     */
+    public function getValue()
+    {
+        $examplePrice = 77.0;
+        return $examplePrice;
+    }
+} 
\ No newline at end of file
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceCompositeTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceCompositeTest.php
deleted file mode 100644
index 7c77bf7b51db1673058f9bec05780469cce0594a..0000000000000000000000000000000000000000
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceCompositeTest.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
- */
-namespace Magento\Framework\Pricing;
-
-use Magento\Framework\Pricing\Price\Factory as PriceFactory;
-use Magento\Catalog\Pricing\Price\FinalPriceInterface;
-use Magento\Catalog\Pricing\Price\GroupPriceInterface;
-use Magento\Catalog\Pricing\Price\SpecialPriceInterface;
-
-/**
- * Test class for \Magento\Framework\Pricing\PriceComposite
- */
-class PriceCompositeTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var PriceComposite
-     */
-    protected $model;
-
-    /**
-     * @var PriceFactory|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $priceFactory;
-
-    /**
-     * @var array
-     */
-    protected $metadata;
-
-    public function setUp()
-    {
-        $this->priceFactory = $this->getMockBuilder('Magento\Framework\Pricing\Price\Factory')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->metadata = array(
-            FinalPriceInterface::PRICE_TYPE_FINAL => ['class' => 'Class\For\FinalPrice'],
-            GroupPriceInterface::PRICE_TYPE_GROUP => ['class' => 'Class\For\GroupPrice'],
-            SpecialPriceInterface::PRICE_TYPE_SPECIAL => ['class' => 'Class\For\SpecialPrice']
-        );
-
-        $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
-        $this->model = $objectManager->getObject('Magento\Framework\Pricing\PriceComposite', array(
-            'priceFactory' => $this->priceFactory,
-            'metadata' => $this->metadata
-        ));
-    }
-
-    public function testGetPriceCodes()
-    {
-        $expectedCodes = [
-            FinalPriceInterface::PRICE_TYPE_FINAL,
-            GroupPriceInterface::PRICE_TYPE_GROUP,
-            SpecialPriceInterface::PRICE_TYPE_SPECIAL
-        ];
-        $this->assertEquals($expectedCodes, $this->model->getPriceCodes());
-    }
-
-    public function testGetMetadata()
-    {
-        $this->assertEquals($this->metadata, $this->model->getMetadata());
-    }
-
-    public function testCreatePriceObject()
-    {
-        $saleable = $this->getMock('Magento\Framework\Pricing\Object\SaleableInterface');
-        $priceCode = FinalPriceInterface::PRICE_TYPE_FINAL;
-        $quantity = 2.4;
-
-        $price = $this->getMock('Magento\Framework\Pricing\Price\PriceInterface');
-
-        $this->priceFactory->expects($this->once())
-            ->method('create')
-            ->with($saleable, $this->metadata[$priceCode]['class'], $quantity)
-            ->will($this->returnValue($price));
-
-        $this->assertEquals($price, $this->model->createPriceObject($saleable, $priceCode, $quantity));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage wrong_price is not registered in prices list
-     */
-    public function testCreatePriceObjectWithException()
-    {
-        $saleable = $this->getMock('Magento\Framework\Pricing\Object\SaleableInterface');
-        $priceCode = 'wrong_price';
-        $quantity = 2.4;
-
-        $this->model->createPriceObject($saleable, $priceCode, $quantity);
-    }
-}
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceInfo/BaseTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceInfo/BaseTest.php
index 5491e1780b0c0cad06ad4cccd5bc7fed742e33eb..10af59566adb45940b2188bf9dc67dd50718156b 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceInfo/BaseTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceInfo/BaseTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -30,14 +33,9 @@ namespace Magento\Framework\Pricing\PriceInfo;
 class BaseTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Pricing\Object\SaleableInterface
+     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Pricing\Price\Collection
      */
-    protected $saleableItem;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Pricing\PriceComposite
-     */
-    protected $prices;
+    protected $priceCollection;
 
     /**
      * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Pricing\Adjustment\Collection
@@ -45,24 +43,13 @@ class BaseTest extends \PHPUnit_Framework_TestCase
     protected $adjustmentCollection;
 
     /**
-     * @var float
-     */
-    protected $quantity;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Pricing\Amount\AmountFactory
-     */
-    protected $amountFactory;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject|Base
+     * @var Base
      */
     protected $model;
 
     public function setUp()
     {
-        $this->saleableItem = $this->getMock('Magento\Framework\Pricing\Object\SaleableInterface', [], [], '', false);
-        $this->prices = $this->getMock('Magento\Framework\Pricing\PriceComposite', [], [], '', false);
+        $this->priceCollection = $this->getMock('Magento\Framework\Pricing\Price\Collection', [], [], '', false);
         $this->adjustmentCollection = $this->getMock(
             'Magento\Framework\Pricing\Adjustment\Collection',
             [],
@@ -70,50 +57,35 @@ class BaseTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
-        $this->amountFactory = $this->getMock('Magento\Framework\Pricing\Amount\AmountFactory', [], [], '', false);
-        $this->quantity = 3.;
-        $this->model = new Base(
-            $this->saleableItem,
-            $this->prices,
-            $this->adjustmentCollection,
-            $this->amountFactory,
-            $this->quantity
-        );
+        $this->model = new Base($this->priceCollection, $this->adjustmentCollection);
     }
 
     /**
-     * @covers \Magento\Framework\Pricing\PriceInfo\Base::__construct
-     * @covers \Magento\Framework\Pricing\PriceInfo\Base::initPrices
-     * @covers \Magento\Framework\Pricing\PriceInfo\Base::getPrices
+     * test method getPrices()
      */
     public function testGetPrices()
     {
-        $this->prices->expects($this->once())
-            ->method('getPriceCodes')
-            ->will($this->returnValue(['test1', 'test2']));
-        $this->prices->expects($this->at(1))->method('createPriceObject')
-            ->with($this->saleableItem, 'test1', $this->quantity)->will($this->returnValue('1'));
-        $this->prices->expects($this->at(2))->method('createPriceObject')
-            ->with($this->saleableItem, 'test2', $this->quantity)->will($this->returnValue('2'));
-        $this->assertEquals(['test1' => '1', 'test2' => '2'], $this->model->getPrices());
+        $this->assertEquals($this->priceCollection, $this->model->getPrices());
     }
 
     /**
-     * @covers \Magento\Framework\Pricing\PriceInfo\Base::__construct
-     * @covers \Magento\Framework\Pricing\PriceInfo\Base::getPrice
+     * @param $entryParams
+     * @param $createCount
      * @dataProvider providerGetPrice
      */
     public function testGetPrice($entryParams, $createCount)
     {
-        list($priceCode, $quantity) = array_values(reset($entryParams));
-        $this->prices->expects($this->exactly($createCount))->method('createPriceObject')
-            ->with($this->saleableItem, $priceCode, $quantity ? : $this->quantity)->will(
-                $this->returnValue('basePrice')
-            );
+        $priceCode = current(array_values(reset($entryParams)));
+
+        $this->priceCollection
+            ->expects($this->exactly($createCount))
+            ->method('get')
+            ->with($this->equalTo($priceCode))
+            ->will($this->returnValue('basePrice'));
 
         foreach ($entryParams as $params) {
-            list($priceCode, $quantity) = array_values($params);
-            $this->assertEquals('basePrice', $this->model->getPrice($priceCode, $quantity));
+            list($priceCode) = array_values($params);
+            $this->assertEquals('basePrice', $this->model->getPrice($priceCode));
         }
     }
 
@@ -127,20 +99,20 @@ class BaseTest extends \PHPUnit_Framework_TestCase
         return [
             'case with empty quantity' => [
                 'entryParams' => [
-                    ['priceCode' => 'testCode', 'quantity' => null]
+                    ['priceCode' => 'testCode']
                 ],
                 'createCount' => 1
             ],
             'case with existing price' => [
                 'entryParams' => [
-                    ['priceCode' => 'testCode', 'quantity' => null],
-                    ['priceCode' => 'testCode', 'quantity' => null]
+                    ['priceCode' => 'testCode'],
+                    ['priceCode' => 'testCode']
                 ],
-                'createCount' => 1
+                'createCount' => 2
             ],
             'case with quantity' => [
                 'entryParams' => [
-                    ['priceCode' => 'testCode', 'quantity' => 2.]
+                    ['priceCode' => 'testCode']
                 ],
                 'createCount' => 1
             ],
@@ -166,28 +138,4 @@ class BaseTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue('adjustment'));
         $this->assertEquals('adjustment', $this->model->getAdjustment('test1'));
     }
-
-    /**
-     * @covers \Magento\Framework\Pricing\PriceInfo\Base::getPricesIncludedInBase
-     */
-    public function testGetPricesIncludedInBase()
-    {
-        $this->prices->expects($this->once())
-            ->method('getMetadata')
-            ->will(
-                $this->returnValue(
-                    [
-                        'test1' => ['class' => 'class1', 'include_in_base_price' => false],
-                        'test2' => ['class' => 'class2', 'include_in_base_price' => true]
-                    ]
-                )
-            );
-
-        $priceModelMock = $this->getMock('Magento\Catalog\Pricing\Price\SpecialPrice', [], [], '', false);
-        $priceModelMock->expects($this->once())->method('getValue')->will($this->returnValue(2.5));
-        $this->prices->expects($this->at(1))->method('createPriceObject')
-            ->with($this->saleableItem, 'test2', $this->quantity)->will($this->returnValue($priceModelMock));
-
-        $this->assertSame([$priceModelMock], $this->model->getPricesIncludedInBase());
-    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceInfo/FactoryTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceInfo/FactoryTest.php
index 47c03f501aa2e501351c3164184085894aa84281..3952b8f797515087214ba125ee109560cfec46bf 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceInfo/FactoryTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/PriceInfo/FactoryTest.php
@@ -18,115 +18,158 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 namespace Magento\Framework\Pricing\PriceInfo;
 
+use Magento\Framework\Pricing\PriceInfo\Factory;
+
 /**
  * Test class for \Magento\Framework\Pricing\PriceInfo\Factory
  */
 class FactoryTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Magento\TestFramework\Helper\ObjectManager
+     * @var \Magento\Framework\ObjectManager\ObjectManager|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $objectManager;
-
-    public function setUp()
-    {
-        $this->objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
-    }
+    protected $objectManagerMock;
 
     /**
-     * @dataProvider priceInfoClassesProvider
+     * @var array
      */
-    public function testCreate($types, $type, $expected)
-    {
-        $priceInfoFactory = $this->preparePriceInfoFactory(
-            $expected,
-            $types
-        );
+    protected $types;
 
-        $productMock = $this->getMock(
-            'Magento\Catalog\Model\Product',
-            ['getTypeId', 'getQty', '__wakeup'],
-            [],
-            '',
-            false
-        );
-
-        $productMock->expects($this->any())
-            ->method('getTypeId')
-            ->will($this->returnValue($type));
+    /**
+     * @var \Magento\Framework\Pricing\PriceInfo\Factory
+     */
+    protected $factory;
 
-        $productMock->expects($this->any())
-            ->method('getQty')
-            ->will($this->returnValue(1));
+    /**
+     * @var \Magento\Framework\Pricing\Price\Collection|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $pricesMock;
 
-        $this->assertInstanceOf(
-            $expected,
-            $priceInfoFactory->create($productMock)
-        );
-    }
+    /**
+     * @var \Magento\Framework\Pricing\Object\SaleableInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $saleableItemMock;
 
     /**
-     * @param string $priceInfoInterface
-     * @param array $types
-     * @return object
+     * @var \Magento\Framework\Pricing\PriceInfoInterface|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected function preparePriceInfoFactory($priceInfoInterface, $types = [])
-    {
-        return $this->objectManager->getObject(
-            'Magento\Framework\Pricing\PriceInfo\Factory',
-            [
-                'types' => $types,
-                'objectManager' => $this->prepareObjectManager($priceInfoInterface)
-            ]
-        );
-    }
+    protected $priceInfoMock;
 
     /**
-     * @param string $priceInfoInterface
-     * @return \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\ObjectManager\ObjectManager
+     * SetUp test
      */
-    protected function prepareObjectManager($priceInfoInterface)
+    public function setUp()
     {
-        $objectManager = $this->getMock('Magento\Framework\ObjectManager\ObjectManager', ['create'], [], '', false);
-        $objectManager->expects($this->any())
-            ->method('create')
-            ->will($this->returnValue($this->getMockForAbstractClass($priceInfoInterface)));
-        return $objectManager;
+        $this->objectManagerMock = $this->getMock(
+            'Magento\Framework\ObjectManager\ObjectManager',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->pricesMock = $this->getMock(
+            'Magento\Framework\Pricing\Price\Collection',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->saleableItemMock = $this->getMockForAbstractClass(
+            'Magento\Framework\Pricing\Object\SaleableInterface',
+            [],
+            '',
+            false,
+            true,
+            true,
+            ['getQty']
+        );
+        $this->priceInfoMock = $this->getMockForAbstractClass(
+            'Magento\Framework\Pricing\PriceInfoInterface',
+            [],
+            '',
+            false,
+            true,
+            true,
+            []
+        );
+        $this->types = [
+            'default' => [
+                'infoClass' => 'Price\PriceInfo\Default',
+                'prices' => 'Price\Collection\Default'
+            ],
+            'configurable' => [
+                'infoClass' => 'Price\PriceInfo\Configurable',
+                'prices' => 'Price\Collection\Configurable'
+            ],
+        ];
+        $this->factory = new Factory($this->types, $this->objectManagerMock);
     }
 
-    /**
-     * @return array
-     */
-    public function priceInfoClassesProvider()
+    public function createPriceInfoDataProvider()
     {
         return [
             [
-                ['new_type' => 'Magento\Framework\Pricing\PriceInfo\Base'],
-                'new_type',
-                'Magento\Framework\Pricing\PriceInfoInterface'
+                'simple',
+                1,
+                'Price\PriceInfo\Default',
+                'Price\Collection\Default'
             ],
             [
-                [],
-                'unknown',
-                'Magento\Framework\Pricing\PriceInfoInterface'
+                'configurable',
+                2,
+                'Price\PriceInfo\Configurable',
+                'Price\Collection\Configurable'
             ]
         ];
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @param $typeId
+     * @param $quantity
+     * @param $infoClass
+     * @param $prices
+     * @dataProvider createPriceInfoDataProvider
      */
-    public function testCreateWithException()
+    public function testCreate($typeId, $quantity, $infoClass, $prices)
     {
-        $invalidPriceInfoInterface = 'Magento\Framework\Object';
-        $priceInfoFactory = $this->preparePriceInfoFactory($invalidPriceInfoInterface);
-        $priceInfoFactory->create(
-            $this->getMock('Magento\Catalog\Model\Product', ['__wakeup'], [], '', false)
-        );
+        $this->saleableItemMock->expects($this->once())
+            ->method('getTypeId')
+            ->will($this->returnValue($typeId));
+        $this->saleableItemMock->expects($this->once())
+            ->method('getQty')
+            ->will($this->returnValue($quantity));
+
+        $this->objectManagerMock->expects($this->exactly(2))
+            ->method('create')
+            ->will($this->returnValueMap(
+                [
+                    [
+                        $prices,
+                        [
+                            'saleableItem' => $this->saleableItemMock,
+                            'quantity' => $quantity
+                        ],
+                        $this->pricesMock
+                    ],
+                    [
+                        $infoClass,
+                        [
+                            'saleableItem' => $this->saleableItemMock,
+                            'quantity' => $quantity,
+                            'prices' => $this->pricesMock
+                        ],
+                        $this->priceInfoMock
+                    ]
+                ]
+            ));
+        $this->assertEquals($this->priceInfoMock, $this->factory->create($this->saleableItemMock, []));
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/AbstractAdjustmentTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/AbstractAdjustmentTest.php
index 8d2319099a3803907f35e2ee3060db2f84e09b59..2ab2ea9ca020957aa9984fbdd56e1ba80be9c44c 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/AbstractAdjustmentTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/AbstractAdjustmentTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -29,26 +32,36 @@ namespace Magento\Framework\Pricing\Render;
 class AbstractAdjustmentTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var Amount
+     * @var AbstractAdjustment | \PHPUnit_Framework_MockObject_MockObject
      */
     protected $model;
 
     /**
-     * @var \Magento\Framework\Pricing\PriceCurrencyInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Pricing\PriceCurrencyInterface | \PHPUnit_Framework_MockObject_MockObject
      */
     protected $priceCurrency;
 
+    /**
+     * @var array
+     */
+    protected $data;
+
     public function setUp()
     {
         $this->priceCurrency = $this->getMock('Magento\Framework\Pricing\PriceCurrencyInterface');
+        $this->data = ['argument_one' => 1];
 
         $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
         $constructorArgs = $objectManager->getConstructArguments(
             'Magento\Framework\Pricing\Render\AbstractAdjustment',
-            array('priceCurrency' => $this->priceCurrency)
+            array(
+                'priceCurrency' => $this->priceCurrency,
+                'data' => $this->data
+            )
         );
         $this->model = $this->getMockBuilder('Magento\Framework\Pricing\Render\AbstractAdjustment')
             ->setConstructorArgs($constructorArgs)
+            ->setMethods(['getData', 'setData', 'apply'])
             ->getMockForAbstractClass();
     }
 
@@ -67,4 +80,122 @@ class AbstractAdjustmentTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals($result, $this->model->convertAndFormatCurrency($amount, $includeContainer, $precision));
     }
+
+    public function testRender()
+    {
+        $amountRender = $this->getMock('Magento\Framework\Pricing\Render\Amount', [], [], '', false);
+        $arguments = ['argument_two' => 2];
+        $mergedArguments = ['argument_one' => 1, 'argument_two' => 2];
+
+        $this->model->expects($this->at(0))
+            ->method('getData')
+            ->will($this->returnValue($this->data));
+        $this->model->expects($this->at(1))
+            ->method('setData')
+            ->with($mergedArguments);
+        $this->model->expects($this->at(2))
+            ->method('apply');
+        $this->model->expects($this->at(3))
+            ->method('setData')
+            ->with($this->data);
+
+        $this->model->render($amountRender, $arguments);
+    }
+
+    public function testGetAmountRender()
+    {
+        $amountRender = $this->getMock('Magento\Framework\Pricing\Render\Amount', [], [], '', false);
+        $this->model->expects($this->at(0))
+            ->method('getData')
+            ->will($this->returnValue($this->data));
+        $this->model->render($amountRender);
+        $this->assertEquals($amountRender, $this->model->getAmountRender());
+    }
+
+    public function testGetPriceType()
+    {
+        $amountRender = $this->getMock('Magento\Framework\Pricing\Render\Amount', [], [], '', false);
+        $price = $this->getMockForAbstractClass('Magento\Framework\Pricing\Price\PriceInterface');
+        $sealableItem = $this->getMockForAbstractClass('Magento\Framework\Pricing\Object\SaleableInterface');
+        $priceInfo = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
+        $priceCode = 'regular_price';
+
+        $amountRender->expects($this->once())
+            ->method('getSaleableItem')
+            ->will($this->returnValue($sealableItem));
+        $sealableItem->expects($this->once())
+            ->method('getPriceInfo')
+            ->will($this->returnValue($priceInfo));
+        $priceInfo->expects($this->once())
+            ->method('getPrice')
+            ->with($priceCode)
+            ->will($this->returnValue($price));
+
+        $this->model->expects($this->at(0))
+            ->method('getData')
+            ->will($this->returnValue($this->data));
+        $this->model->render($amountRender);
+        $this->assertEquals($price, $this->model->getPriceType($priceCode));
+    }
+
+    public function testGetPrice()
+    {
+        $price = 100;
+        $amountRender = $this->getMock('Magento\Framework\Pricing\Render\Amount', [], [], '', false);
+        $amountRender->expects($this->once())
+            ->method('getPrice')
+            ->with()
+            ->will($this->returnValue($price));
+
+        $this->model->expects($this->at(0))
+            ->method('getData')
+            ->will($this->returnValue($this->data));
+        $this->model->render($amountRender);
+        $this->assertEquals($price, $this->model->getPrice());
+    }
+
+    public function testGetSealableItem()
+    {
+        $sealableItem = $this->getMockForAbstractClass('Magento\Framework\Pricing\Object\SaleableInterface');
+        $amountRender = $this->getMock('Magento\Framework\Pricing\Render\Amount', [], [], '', false);
+        $amountRender->expects($this->once())
+            ->method('getSaleableItem')
+            ->with()
+            ->will($this->returnValue($sealableItem));
+
+        $this->model->expects($this->at(0))
+            ->method('getData')
+            ->will($this->returnValue($this->data));
+        $this->model->render($amountRender);
+        $this->assertEquals($sealableItem, $this->model->getSaleableItem());
+    }
+
+    public function testGetAdjustment()
+    {
+        $amountRender = $this->getMock('Magento\Framework\Pricing\Render\Amount', [], [], '', false);
+        $adjustment = $this->getMockForAbstractClass('Magento\Framework\Pricing\Adjustment\AdjustmentInterface');
+        $sealableItem = $this->getMockForAbstractClass('Magento\Framework\Pricing\Object\SaleableInterface');
+        $priceInfo = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
+        $adjustmentCode = 'tax';
+
+        $amountRender->expects($this->once())
+            ->method('getSaleableItem')
+            ->will($this->returnValue($sealableItem));
+        $sealableItem->expects($this->once())
+            ->method('getPriceInfo')
+            ->will($this->returnValue($priceInfo));
+        $priceInfo->expects($this->once())
+            ->method('getAdjustment')
+            ->with($adjustmentCode)
+            ->will($this->returnValue($adjustment));
+
+        $this->model->expects($this->at(0))
+            ->method('getData')
+            ->will($this->returnValue($this->data));
+        $this->model->expects($this->once())
+            ->method('getAdjustmentCode')
+            ->will($this->returnValue($adjustmentCode));
+        $this->model->render($amountRender);
+        $this->assertEquals($adjustment, $this->model->getAdjustment());
+    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/AmountTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/AmountTest.php
index 949c0c05588c9fdc0bccf4f3abbd88069597cf5a..fc6ac2d63ee919e75bdfbb5a7e415d6b65ab5b4b 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/AmountTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/AmountTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -56,6 +59,11 @@ class AmountTest extends \PHPUnit_Framework_TestCase
      */
     protected $saleableItemMock;
 
+    /**
+     * @var \Magento\Framework\Pricing\Amount\AmountInterface | \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $amount;
+
     /**
      * @var PriceInterface|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -87,6 +95,9 @@ class AmountTest extends \PHPUnit_Framework_TestCase
         );
 
         $this->layout = $this->getMock('Magento\Framework\View\Layout', [], [], '', false);
+        $this->amount = $this->getMockForAbstractClass('Magento\Framework\Pricing\Amount\AmountInterface');
+        $this->saleableItemMock = $this->getMockForAbstractClass('Magento\Framework\Pricing\Object\SaleableInterface');
+        $this->priceMock = $this->getMockForAbstractClass('Magento\Framework\Pricing\Price\PriceInterface');
 
         $eventManager = $this->getMock('Magento\Framework\Event\ManagerStub', [], [], '', false);
         $config = $this->getMock('Magento\Store\Model\Store\Config', [], [], '', false);
@@ -112,7 +123,10 @@ class AmountTest extends \PHPUnit_Framework_TestCase
             [
                 'context' => $context,
                 'priceCurrency' => $this->priceCurrency,
-                'rendererPool' => $this->rendererPool
+                'rendererPool' => $this->rendererPool,
+                'amount' => $this->amount,
+                'saleableItem' => $this->saleableItemMock,
+                'price' => $this->priceMock
             ]
         );
     }
@@ -133,16 +147,116 @@ class AmountTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($result, $this->model->convertAndFormatCurrency($amount, $includeContainer, $precision));
     }
 
+    /**
+     * Test case for getAdjustmentRenders method through toHtml()
+     */
+    public function testToHtmlSkipAdjustments()
+    {
+        $this->model->setData('skip_adjustments', true);
+        $this->rendererPool->expects($this->never())
+            ->method('getAdjustmentRenders');
+
+        $this->model->toHtml();
+    }
+
     /**
      * Test case for getAdjustmentRenders method through toHtml()
      */
     public function testToHtmlGetAdjustmentRenders()
     {
-        $adjustmentRender = [];
+        $data = ['key1' => 'data1', 'css_classes' => 'class1 class2'];
+        $expectedData = [
+            'key1' => 'data1',
+            'css_classes' => 'class1 class2',
+            'module_name' => null,
+            'adjustment_css_classes' => 'class1 class2 render1 render2'
+        ];
+
+        $this->model->setData($data);
+
+        $adjustmentRender1 = $this->getAdjustmentRenderMock($expectedData);
+        $adjustmentRender2 = $this->getAdjustmentRenderMock($expectedData);
+        $adjustmentRenders = ['render1' => $adjustmentRender1, 'render2' => $adjustmentRender2];
+        $this->rendererPool->expects($this->once())
+            ->method('getAdjustmentRenders')
+            ->will($this->returnValue($adjustmentRenders));
+
+        $this->model->toHtml();
+    }
+
+    public function testGetDisplayValueExiting()
+    {
+        $displayValue = 5.99;
+        $this->model->setDisplayValue($displayValue);
+        $this->assertEquals($displayValue, $this->model->getDisplayValue());
+    }
+
+    public function testGetDisplayValue()
+    {
+        $amountValue = 100.99;
+        $this->amount->expects($this->once())
+            ->method('getValue')
+            ->will($this->returnValue($amountValue));
+        $this->assertEquals($amountValue, $this->model->getDisplayValue());
+    }
+
+    public function testGetAmount()
+    {
+        $this->assertEquals($this->amount, $this->model->getAmount());
+    }
+
+    public function testGetSealableItem()
+    {
+        $this->assertEquals($this->saleableItemMock, $this->model->getSaleableItem());
+    }
+
+    public function testGetPrice()
+    {
+        $this->assertEquals($this->priceMock, $this->model->getPrice());
+    }
+
+    public function testAdjustmentsHtml()
+    {
+        $adjustmentHtml1 = 'adjustment_1_html';
+        $adjustmentHtml2 = 'adjustment_2_html';
+        $data = ['key1' => 'data1', 'css_classes' => 'class1 class2'];
+        $expectedData = [
+            'key1' => 'data1',
+            'css_classes' => 'class1 class2',
+            'module_name' => null,
+            'adjustment_css_classes' => 'class1 class2 render1 render2'
+        ];
+
+        $this->model->setData($data);
+
+        $this->assertFalse($this->model->hasAdjustmentsHtml());
+
+        $adjustmentRender1 = $this->getAdjustmentRenderMock($expectedData, $adjustmentHtml1, 'adjustment_code1');
+        $adjustmentRender2 = $this->getAdjustmentRenderMock($expectedData, $adjustmentHtml2, 'adjustment_code2');
+        $adjustmentRenders = ['render1' => $adjustmentRender1, 'render2' => $adjustmentRender2];
         $this->rendererPool->expects($this->once())
             ->method('getAdjustmentRenders')
-            ->will($this->returnValue($adjustmentRender));
+            ->will($this->returnValue($adjustmentRenders));
 
         $this->model->toHtml();
+
+        $this->assertTrue($this->model->hasAdjustmentsHtml());
+
+        $this->assertEquals($adjustmentHtml1 . $adjustmentHtml2, $this->model->getAdjustmentsHtml());
+    }
+
+    protected function getAdjustmentRenderMock($data = [], $html = '', $code = 'adjustment_code')
+    {
+        $adjustmentRender = $this->getMockForAbstractClass(
+            'Magento\Framework\Pricing\Render\AdjustmentRenderInterface'
+        );
+        $adjustmentRender->expects($this->once())
+            ->method('render')
+            ->with($this->model, $data)
+            ->will($this->returnValue($html));
+        $adjustmentRender->expects($this->any())
+            ->method('getAdjustmentCode')
+            ->will($this->returnValue($code));
+        return $adjustmentRender;
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/LayoutTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/LayoutTest.php
index f209c01f1591851942974d8737c0dbd32c4ac813..4174071558f4f6fd824b3f05d80da59ff397746e 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/LayoutTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/LayoutTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/PriceBoxTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/PriceBoxTest.php
index 0a5371a40a8623cd2176066b8aee4ac9a92e5677..b754207575375f426d28cccdbcea0b2a9e61cc8d 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/PriceBoxTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/PriceBoxTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -103,15 +106,15 @@ class PriceBoxTest extends \PHPUnit_Framework_TestCase
 
     /**
      * @param array $data
-     * @param string $priceType
+     * @param string $priceCode
      * @param array $cssClasses
      * @dataProvider toHtmlDataProvider
      */
-    public function testToHtml($data, $priceType, $cssClasses)
+    public function testToHtml($data, $priceCode, $cssClasses)
     {
         $this->price->expects($this->once())
-            ->method('getPriceType')
-            ->will($this->returnValue($priceType));
+            ->method('getPriceCode')
+            ->will($this->returnValue($priceCode));
 
         $priceBox = $this->objectManager->getObject('Magento\Framework\Pricing\Render\PriceBox', array(
             'context' => $this->context,
@@ -129,12 +132,12 @@ class PriceBoxTest extends \PHPUnit_Framework_TestCase
         return array(
             array(
                 'data' => [],
-                'price_type' => 'test_price',
+                'price_code' => 'test_price',
                 'css_classes' => 'price-test_price'
             ),
             array(
                 'data' => ['css_classes' => 'some_css_class'],
-                'price_type' => 'test_price',
+                'price_code' => 'test_price',
                 'css_classes' => 'some_css_class price-test_price'
         ));
     }
@@ -152,21 +155,20 @@ class PriceBoxTest extends \PHPUnit_Framework_TestCase
     public function testGetPriceType()
     {
         $priceCode = 'test_price';
-        $quantity = 1.;
 
         $price = $this->getMock('Magento\Framework\Pricing\Price\PriceInterface');
 
         $priceInfo = $this->getMock('Magento\Framework\Pricing\PriceInfoInterface');
         $priceInfo->expects($this->once())
             ->method('getPrice')
-            ->with($priceCode, $quantity)
+            ->with($priceCode)
             ->will($this->returnValue($price));
 
         $this->saleable->expects($this->once())
             ->method('getPriceInfo')
             ->will($this->returnValue($priceInfo));
 
-        $this->assertEquals($price, $this->model->getPriceType($priceCode, $quantity));
+        $this->assertEquals($price, $this->model->getPriceType($priceCode));
     }
 
     public function testRenderAmount()
@@ -190,4 +192,59 @@ class PriceBoxTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals($resultHtml, $this->model->renderAmount($amount, $arguments));
     }
+
+    public function testGetPriceIdHasDataPriceId()
+    {
+        $priceId = 'data_price_id';
+        $this->model->setData('price_id', $priceId);
+        $this->assertEquals($priceId, $this->model->getPriceId());
+    }
+
+    /**
+     * @dataProvider getPriceIdProvider
+     * @param string $prefix
+     * @param string $suffix
+     * @param string $defaultPrefix
+     * @param string $defaultSuffix
+     */
+    public function testGetPriceId($prefix, $suffix, $defaultPrefix, $defaultSuffix)
+    {
+        $priceId = 'price_id';
+        $this->saleable->expects($this->once())
+            ->method('getId')
+            ->will($this->returnValue($priceId));
+
+        if (!empty($prefix)) {
+            $this->model->setData('price_id_prefix', $prefix);
+            $expectedPriceId = $prefix . $priceId;
+        } else {
+            $expectedPriceId = $defaultPrefix . $priceId;
+        }
+        if (!empty($suffix)) {
+            $this->model->setData('price_id_suffix', $suffix);
+            $expectedPriceId = $expectedPriceId . $suffix;
+        } else {
+            $expectedPriceId = $expectedPriceId . $defaultSuffix;
+        }
+
+        $this->assertEquals($expectedPriceId, $this->model->getPriceId($defaultPrefix, $defaultSuffix));
+    }
+
+    public function getPriceIdProvider()
+    {
+        return [
+            ['prefix', 'suffix', 'default_prefix', 'default_suffix'],
+            ['prefix', 'suffix', 'default_prefix', ''],
+            ['prefix', 'suffix', '', 'default_suffix'],
+            ['prefix', '', 'default_prefix', 'default_suffix'],
+            ['', 'suffix', 'default_prefix', 'default_suffix'],
+            ['', '', 'default_prefix', 'default_suffix'],
+            ['prefix', 'suffix', '', '']
+        ];
+    }
+
+    public function testGetRendererPool()
+    {
+        $this->assertEquals($this->rendererPool, $this->model->getRendererPool());
+    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/RendererPoolTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/RendererPoolTest.php
index e066f510368a1174ef6b0d8bb04cba66b065961d..5d584727f49096bbccd6c63f224b427177216109 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/RendererPoolTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/Render/RendererPoolTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -273,7 +276,7 @@ class RendererPoolTest extends \PHPUnit_Framework_TestCase
             ->method('getTypeId')
             ->will($this->returnValue($type));
         $this->priceMock->expects($this->once())
-            ->method('getPriceType')
+            ->method('getPriceCode')
             ->will($this->returnValue($priceCode));
 
         $testedClass = $this->createTestedEntity($data);
@@ -311,7 +314,7 @@ class RendererPoolTest extends \PHPUnit_Framework_TestCase
             ->method('getTypeId')
             ->will($this->returnValue($type));
         $this->priceMock->expects($this->once())
-            ->method('getPriceType')
+            ->method('getPriceCode')
             ->will($this->returnValue($priceCode));
 
         $contextMock = $this->getMockBuilder('Magento\Framework\View\Element\Template\Context')
@@ -366,7 +369,7 @@ class RendererPoolTest extends \PHPUnit_Framework_TestCase
             ->method('getTypeId')
             ->will($this->returnValue($type));
         $this->priceMock->expects($this->once())
-            ->method('getPriceType')
+            ->method('getPriceCode')
             ->will($this->returnValue($priceCode));
 
         $blockMock = $this->getMockBuilder('Magento\Framework\Pricing\Render\Amount')
@@ -407,7 +410,7 @@ class RendererPoolTest extends \PHPUnit_Framework_TestCase
             ->method('getTypeId')
             ->will($this->returnValue($typeId));
         $this->priceMock->expects($this->once())
-            ->method('getPriceType')
+            ->method('getPriceCode')
             ->will($this->returnValue($priceCode));
 
         $code = 'test_code';
@@ -433,7 +436,7 @@ class RendererPoolTest extends \PHPUnit_Framework_TestCase
             ->method('getTypeId')
             ->will($this->returnValue($typeId));
         $this->priceMock->expects($this->once())
-            ->method('getPriceType')
+            ->method('getPriceCode')
             ->will($this->returnValue($priceCode));
 
         $code = 'test_code';
@@ -482,7 +485,7 @@ class RendererPoolTest extends \PHPUnit_Framework_TestCase
             ->method('getTypeId')
             ->will($this->returnValue($typeId));
         $this->priceMock->expects($this->once())
-            ->method('getPriceType')
+            ->method('getPriceCode')
             ->will($this->returnValue($priceCode));
 
         $blockMock = $this->getMockBuilder('Magento\Framework\View\Element\Template')
@@ -535,7 +538,7 @@ class RendererPoolTest extends \PHPUnit_Framework_TestCase
             ->method('getTypeId')
             ->will($this->returnValue($type));
         $this->priceMock->expects($this->once())
-            ->method('getPriceType')
+            ->method('getPriceCode')
             ->will($this->returnValue($priceCode));
 
         $blockMock = $this->getMockBuilder('Magento\Framework\Pricing\Render\Amount')
diff --git a/dev/tests/unit/testsuite/Magento/Framework/Pricing/RenderTest.php b/dev/tests/unit/testsuite/Magento/Framework/Pricing/RenderTest.php
index 5bcae14ab0b0331d611fa2537b8508ab4953f303..49f234f22efa90ca5780060157c34e3909889878 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/Pricing/RenderTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/Pricing/RenderTest.php
@@ -18,6 +18,9 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @subpackage  unit_tests
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -218,4 +221,18 @@ class RenderTest extends \PHPUnit_Framework_TestCase
         $result = $this->model->renderAmount($this->amount, $this->price, $this->saleableItem, $arguments);
         $this->assertEquals($expectedResult, $result);
     }
+
+    /**
+     * @expectedException \RuntimeException
+     * @expectedExceptionMessage Wrong Price Rendering layout configuration. Factory block is missed
+     */
+    public function testAmountRenderNoRenderPool()
+    {
+        $this->priceLayout->expects($this->once())
+            ->method('getBlock')
+            ->with('render.product.prices')
+            ->will($this->returnValue(false));
+
+        $this->model->renderAmount($this->amount, $this->price, $this->saleableItem);
+    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/ProfilerTest.php b/dev/tests/unit/testsuite/Magento/Framework/ProfilerTest.php
index c3f65d50af350174b45acf4719e71d3bdc407729..e965ede1037c7219cff930124964663718cd463a 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/ProfilerTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/ProfilerTest.php
@@ -217,7 +217,7 @@ class ProfilerTest extends \PHPUnit_Framework_TestCase
     public function testClearTimer()
     {
         $driver = $this->_getDriverMock();
-        $driver->expects($this->once())->method('clear')->with('timer');
+        $driver->expects($this->at(0))->method('clear')->with('timer');
 
         \Magento\Framework\Profiler::add($driver);
         \Magento\Framework\Profiler::clear('timer');
diff --git a/dev/tests/unit/testsuite/Magento/Framework/View/Design/Fallback/FactoryTest.php b/dev/tests/unit/testsuite/Magento/Framework/View/Design/Fallback/FactoryTest.php
index e4a76de7c7cd12c494cbcd334b588202ec829d79..6d82b49df06c19037aee019aaee0b3d63a75f28a 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/View/Design/Fallback/FactoryTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/View/Design/Fallback/FactoryTest.php
@@ -161,7 +161,8 @@ class FactoryTest extends \PHPUnit_Framework_TestCase
                 array(
                     '/area/current_theme_path/namespace_module',
                     '/area/parent_theme_path/namespace_module',
-                    '/namespace/module/view/area'
+                    '/namespace/module/view/area',
+                    '/namespace/module/view/base'
                 )
             ),
             'non-modular' => array(
@@ -214,7 +215,8 @@ class FactoryTest extends \PHPUnit_Framework_TestCase
                     '/area/parent_theme_path/i18n/en_US/namespace_module',
                     '/area/parent_theme_path/namespace_module',
                     '/namespace/module/view/area/i18n/en_US',
-                    '/namespace/module/view/area'
+                    '/namespace/module/view/area',
+                    '/namespace/module/view/base'
                 )
             ),
             'modular non-localized' => array(
@@ -222,7 +224,8 @@ class FactoryTest extends \PHPUnit_Framework_TestCase
                 array(
                     '/area/current_theme_path/namespace_module',
                     '/area/parent_theme_path/namespace_module',
-                    '/namespace/module/view/area'
+                    '/namespace/module/view/area',
+                    '/namespace/module/view/base'
                 )
             ),
             'non-modular localized' => array(
diff --git a/dev/tests/unit/testsuite/Magento/Framework/View/Design/FileResolution/Strategy/Fallback/CachingProxyTest.php b/dev/tests/unit/testsuite/Magento/Framework/View/Design/FileResolution/Strategy/Fallback/CachingProxyTest.php
index b3a532f370f01844cff1431b731ab245333ab9c3..372c5b1c378db1fb16bdf9d7a88d150a5e532625 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/View/Design/FileResolution/Strategy/Fallback/CachingProxyTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/View/Design/FileResolution/Strategy/Fallback/CachingProxyTest.php
@@ -87,7 +87,7 @@ class CachingProxyTest extends \PHPUnit_Framework_TestCase
             false
         );
 
-        $this->themeModel = \PHPUnit_Framework_MockObject_Generator::getMock(
+        $this->themeModel = $this->getMock(
             'Magento\Core\Model\Theme',
             array(),
             array(),
@@ -206,9 +206,9 @@ class CachingProxyTest extends \PHPUnit_Framework_TestCase
      *
      * @return array
      */
-    public static function proxyMethodsDataProvider()
+    public function proxyMethodsDataProvider()
     {
-        $themeModel = \PHPUnit_Framework_MockObject_Generator::getMock(
+        $themeModel = $this->getMock(
             'Magento\Core\Model\Theme',
             array(),
             array(),
diff --git a/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/FactoryTest.php b/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/FactoryTest.php
index 873f336384ebdaea90818392393984e66986e8dd..ce8e6177f68f8e2e7a9b16f7c9e92a9e9d80b4a9 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/FactoryTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/FactoryTest.php
@@ -45,16 +45,21 @@ class FactoryTest extends \PHPUnit_Framework_TestCase
     {
         $theme = $this->getMockForAbstractClass('Magento\Framework\View\Design\ThemeInterface');
         $file = new \Magento\Framework\View\Layout\File(__FILE__, 'Fixture_Module', $theme);
-        $this->_objectManager->expects(
-            $this->once()
-        )->method(
-            'create'
-        )->with(
-            'Magento\Framework\View\Layout\File',
-            $this->identicalTo(array('filename' => __FILE__, 'module' => 'Fixture_Module', 'theme' => $theme))
-        )->will(
-            $this->returnValue($file)
-        );
-        $this->assertSame($file, $this->_model->create(__FILE__, 'Fixture_Module', $theme));
+        $isBase = true;
+        $this->_objectManager->expects($this->once())
+            ->method('create')
+            ->with(
+                'Magento\Framework\View\Layout\File',
+                $this->identicalTo(
+                    array(
+                        'filename' => __FILE__,
+                        'module' => 'Fixture_Module',
+                        'theme' => $theme,
+                        'isBase' => $isBase
+                    )
+                )
+            )
+            ->will($this->returnValue($file));
+        $this->assertSame($file, $this->_model->create(__FILE__, 'Fixture_Module', $theme, $isBase));
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/BaseTest.php b/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/BaseTest.php
index 070735b2fdc3dc597282404d67b2956a7ce3a617..2857d02078d8665d363294ad162489019df4807b 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/BaseTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/BaseTest.php
@@ -21,107 +21,111 @@
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
-namespace Magento\Framework\View\Layout\File\Source;
 
-use Magento\Framework\Filesystem\Directory\Read;
-use Magento\Framework\View\Layout\File\Factory;
+namespace Magento\Framework\View\Layout\File\Source;
 
+/**
+ * Class for testing Magento\View\Layout\File\Source\Base
+ */
 class BaseTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var Base
+     * @var \Magento\Framework\View\Layout\File\Source\Base|\PHPUnit_Framework_MockObject_MockObject
      */
-    private $model;
+    protected $class;
 
     /**
-     * @var Read | \PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Filesystem\Directory\ReadInterface|\PHPUnit_Framework_MockObject_MockObject
      */
-    private $directory;
+    protected $modulesDirectoryMock;
 
     /**
-     * @var Factory | \PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\View\Layout\File\Factory|\PHPUnit_Framework_MockObject_MockObject
      */
-    private $fileFactory;
+    protected $fileFactoryMock;
 
-    protected function setUp()
+    /**
+     * Set up mocks
+     */
+    public function setUp()
     {
-        $this->directory = $this->getMock('Magento\Framework\Filesystem\Directory\Read', array(), array(), '', false);
-        $filesystem = $this->getMock(
+        $filesystemMock = $this->getMock(
             'Magento\Framework\App\Filesystem',
-            array('getDirectoryRead', '__wakeup'),
-            array(),
+            ['getDirectoryRead', 'getAbsolutePath'],
+            [],
             '',
             false
         );
-        $filesystem->expects(
-            $this->once()
-        )->method(
-            'getDirectoryRead'
-        )->with(
-            \Magento\Framework\App\Filesystem::MODULES_DIR
-        )->will(
-            $this->returnValue($this->directory)
+        $this->fileFactoryMock = $this->getMock('Magento\Framework\View\Layout\File\Factory', [], [], '', false);
+        $this->modulesDirectoryMock = $this->getMock(
+            'Magento\Framework\Filesystem\Directory\ReadInterface', 
+            [], 
+            [], 
+            '', 
+            false
         );
 
-        $this->fileFactory = $this->getMock('Magento\Framework\View\Layout\File\Factory', array(), array(), '', false);
-        $this->model = new Base($filesystem, $this->fileFactory);
+        $filesystemMock->expects($this->once())
+            ->method('getDirectoryRead')
+            ->will($this->returnValue($this->modulesDirectoryMock));
+
+        $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $this->class = $objectManager->getObject(
+            'Magento\Framework\View\Layout\File\Source\Base',
+            [
+                'filesystem' => $filesystemMock,
+                'fileFactory' => $this->fileFactoryMock
+            ]
+        );
     }
 
     /**
-     * @param array $files
-     * @param string $filePath
-     *
-     * @dataProvider dataProvider
+     * Test for method getFiles
      */
-    public function testGetFiles($files, $filePath)
+    public function testGetFiles()
     {
-        $theme = $this->getMockForAbstractClass('Magento\Framework\View\Design\ThemeInterface');
-        $theme->expects($this->once())->method('getArea')->will($this->returnValue('area'));
+        $fileName = 'somefile.xml';
+        $fileRightPath = '/namespace/module/view/base/layout/' . $fileName;
+        $themeFileRightPath = '/namespace/module/view/area_code/layout/' . $fileName;
+        $fileWrongPath = '/namespace/module/view/' . $fileName;
+        $themeFileWrongPath = '/namespace/module/view/area_code/' . $fileName;
+        $areaCode = 'area_code';
+        $sharedFiles = [
+            $fileRightPath,
+            $fileWrongPath,
+        ];
+        $themeFiles = [
+            $themeFileRightPath,
+            $themeFileWrongPath,
+        ];
+        $themeMock = $this->getMock('Magento\Framework\View\Design\ThemeInterface', [], [], '', false);
 
-        $handlePath = 'code/Module/%s/view/area/layout/%s.xml';
-        $returnKeys = array();
-        foreach ($files as $file) {
-            $returnKeys[] = sprintf($handlePath, $file['module'], $file['handle']);
-        }
+        $this->modulesDirectoryMock->expects($this->any())
+            ->method('search')
+            ->will($this->returnValueMap(
+                    [
+                        ["*/*/view/base/layout/*.xml", null, $sharedFiles],
+                        ["*/*/view/$areaCode/layout/*.xml", null, $themeFiles],
+                    ]
+                ));
+        $this->modulesDirectoryMock->expects($this->any())
+            ->method('getAbsolutePath')
+            ->will($this->returnArgument(0));
+        $themeMock->expects($this->once())
+            ->method('getArea')
+            ->will($this->returnValue($areaCode));
 
-        $this->directory->expects($this->once())->method('search')->will($this->returnValue($returnKeys));
-        $this->directory->expects($this->any())->method('getAbsolutePath')->will($this->returnArgument(0));
+        $this->fileFactoryMock->expects($this->at(0))
+            ->method('create')
+            ->with($this->equalTo($fileRightPath), $this->equalTo('namespace_module'))
+            ->will($this->returnValue($fileRightPath));
+        $this->fileFactoryMock->expects($this->at(1))
+            ->method('create')
+            ->with($this->equalTo($themeFileRightPath), $this->equalTo('namespace_module'))
+            ->will($this->returnValue($themeFileRightPath));
 
-        $checkResult = array();
-        foreach ($files as $key => $file) {
-            $moduleName = 'Module_' . $file['module'];
-            $checkResult[$key] = new \Magento\Framework\View\Layout\File($file['handle'] . '.xml', $moduleName, $theme);
-
-            $this->fileFactory->expects(
-                $this->at($key)
-            )->method(
-                'create'
-            )->with(
-                sprintf($handlePath, $file['module'], $file['handle']),
-                $moduleName
-            )->will(
-                $this->returnValue($checkResult[$key])
-            );
-        }
-
-        $this->assertSame($checkResult, $this->model->getFiles($theme, $filePath));
-    }
-
-    /**
-     * @return array
-     */
-    public function dataProvider()
-    {
-        return array(
-            array(
-                array(
-                    array('handle' => '1', 'module' => 'One'),
-                    array('handle' => '2', 'module' => 'One'),
-                    array('handle' => '3', 'module' => 'Two')
-                ),
-                '*'
-            ),
-            array(array(array('handle' => 'preset/4', 'module' => 'Four')), 'preset/4')
-        );
+        $expected = [$fileRightPath, $themeFileRightPath];
+        $result = $this->class->getFiles($themeMock);
+        $this->assertEquals($expected, $result);
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/Override/BaseTest.php b/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/Override/BaseTest.php
index da3be7dd3ed424c5d3e8d9a72ad6c641ba6be45a..f1bb3872e36106bb54057c082af7ba390cf83b67 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/Override/BaseTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/Override/BaseTest.php
@@ -89,16 +89,10 @@ class BaseTest extends \PHPUnit_Framework_TestCase
         $checkResult = array();
         foreach ($files as $key => $file) {
             $checkResult[$key] = new \Magento\Framework\View\Layout\File($file['handle'] . '.xml', $file['module']);
-            $this->fileFactory->expects(
-                $this->at($key)
-            )->method(
-                'create'
-            )->with(
-                sprintf($handlePath, $file['module'], $file['handle']),
-                $file['module']
-            )->will(
-                $this->returnValue($checkResult[$key])
-            );
+            $this->fileFactory->expects($this->at($key))
+                ->method('create')
+                ->with(sprintf($handlePath, $file['module'], $file['handle']), $file['module'])
+                ->will($this->returnValue($checkResult[$key]));
         }
 
         $this->assertSame($checkResult, $this->model->getFiles($theme, $filePath));
diff --git a/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/Override/ThemeTest.php b/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/Override/ThemeTest.php
index e43c5e86708d4b1441c287b8eaf91cba2b80491e..660b29e300724f4068a66ddb4f3bd7ddda1e201e 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/Override/ThemeTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/View/Layout/File/Source/Override/ThemeTest.php
@@ -86,18 +86,16 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
 
         $fileOne = new \Magento\Framework\View\Layout\File('1.xml', 'Module_One', $parentTheme);
         $fileTwo = new \Magento\Framework\View\Layout\File('2.xml', 'Module_Two', $grandparentTheme);
-        $this->_fileFactory->expects(
-            $this->exactly(2)
-        )->method(
-            'create'
-        )->will(
-            $this->returnValueMap(
-                array(
-                    array($filePathOne, 'Module_One', $parentTheme, $fileOne),
-                    array($filePathTwo, 'Module_Two', $grandparentTheme, $fileTwo)
+        $this->_fileFactory->expects($this->exactly(2))
+            ->method('create')
+            ->will(
+                $this->returnValueMap(
+                    array(
+                        array($filePathOne, 'Module_One', $parentTheme, false, $fileOne),
+                        array($filePathTwo, 'Module_Two', $grandparentTheme, false, $fileTwo)
+                    )
                 )
-            )
-        );
+            );
 
         $this->assertSame(array($fileOne, $fileTwo), $this->_model->getFiles($theme));
     }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/View/Layout/FileTest.php b/dev/tests/unit/testsuite/Magento/Framework/View/Layout/FileTest.php
index 008f9a4f389e749857d9bfe65c7080c5bef8d0b0..88ff925e8635862f8cc43533abd5026e94ecda33 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/View/Layout/FileTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/View/Layout/FileTest.php
@@ -38,7 +38,7 @@ class FileTest extends \PHPUnit_Framework_TestCase
     protected function setUp()
     {
         $this->_theme = $this->getMockForAbstractClass('Magento\Framework\View\Design\ThemeInterface');
-        $this->_model = new \Magento\Framework\View\Layout\File(__FILE__, 'Fixture_TestModule', $this->_theme);
+        $this->_model = new \Magento\Framework\View\Layout\File(__FILE__, 'Fixture_TestModule', $this->_theme, true);
     }
 
     public function testGetFilename()
@@ -65,7 +65,7 @@ class FileTest extends \PHPUnit_Framework_TestCase
     {
         $this->_theme->expects($this->once())->method('getFullPath')->will($this->returnValue('theme_name'));
         $this->assertSame(
-            'theme:theme_name|module:Fixture_TestModule|file:FileTest.php',
+            'base|theme:theme_name|module:Fixture_TestModule|file:FileTest.php',
             $this->_model->getFileIdentifier()
         );
     }
diff --git a/dev/tests/unit/testsuite/Magento/Framework/View/UrlTest.php b/dev/tests/unit/testsuite/Magento/Framework/View/UrlTest.php
index afab68b1f2336b38af2123919030ab0538c40335..94d43aa65172909f6bc2e1776f962fb45198a5ef 100644
--- a/dev/tests/unit/testsuite/Magento/Framework/View/UrlTest.php
+++ b/dev/tests/unit/testsuite/Magento/Framework/View/UrlTest.php
@@ -119,9 +119,9 @@ class UrlTest extends \PHPUnit_Framework_TestCase
     /**
      * @return array
      */
-    public static function getViewFileUrlProductionModeDataProvider()
+    public function getViewFileUrlProductionModeDataProvider()
     {
-        $usualTheme = \PHPUnit_Framework_MockObject_Generator::getMock(
+        $usualTheme = $this->getMock(
             'Magento\Framework\View\Design\ThemeInterface',
             array(),
             array(),
diff --git a/dev/tests/unit/testsuite/Magento/GoogleAdwords/Model/Config/Source/LanguageTest.php b/dev/tests/unit/testsuite/Magento/GoogleAdwords/Model/Config/Source/LanguageTest.php
deleted file mode 100644
index fb03364a428ccd467028545abff912fc9b2851c7..0000000000000000000000000000000000000000
--- a/dev/tests/unit/testsuite/Magento/GoogleAdwords/Model/Config/Source/LanguageTest.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-namespace Magento\GoogleAdwords\Model\Config\Source;
-
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
- * @SuppressWarnings(PHPMD.LongVariable)
- */
-class LanguageTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $_helperMock;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $_localeMock;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $_localeModelMock;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $_uppercaseFilterMock;
-
-    /**
-     * @var \Magento\GoogleAdwords\Model\Config\Source\Language
-     */
-    protected $_model;
-
-    protected function setUp()
-    {
-        $this->_helperMock = $this->getMock('Magento\GoogleAdwords\Helper\Data', array(), array(), '', false);
-        $this->_localeMock = $this->getMock('Zend_Locale', array(), array(), '', false);
-        $this->_localeModelMock = $this->getMock(
-            'Magento\Framework\Locale\ResolverInterface',
-            array(),
-            array(),
-            '',
-            false
-        );
-        $this->_localeModelMock->expects(
-            $this->once()
-        )->method(
-            'getLocale'
-        )->will(
-            $this->returnValue($this->_localeMock)
-        );
-        $this->_uppercaseFilterMock = $this->getMock(
-            'Magento\GoogleAdwords\Model\Filter\UppercaseTitle',
-            array(),
-            array(),
-            '',
-            false
-        );
-
-        $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
-        $this->_model = $objectManager->getObject(
-            'Magento\GoogleAdwords\Model\Config\Source\Language',
-            array(
-                'localeResolver' => $this->_localeModelMock,
-                'helper' => $this->_helperMock,
-                'uppercaseFilter' => $this->_uppercaseFilterMock
-            )
-        );
-    }
-
-    public function testToOptionArray()
-    {
-        $languageCodes = array('languageCode1', 'languageCode2');
-        $langToLocalesMap = array('languageCode1' => 'localeCode1', 'languageCode2' => 'localeCode2');
-        $expectedLanguages = array(
-            array(
-                'value' => 'languageCode1',
-                'label' => 'TranslationForSpecifiedLanguage1 / translationForDefaultLanguage1 (languageCode1)'
-            ),
-            array(
-                'value' => 'languageCode2',
-                'label' => 'TranslationForSpecifiedLanguage2 / translationForDefaultLanguage2 (languageCode2)'
-            )
-        );
-
-        $this->_helperMock->expects(
-            $this->once()
-        )->method(
-            'getLanguageCodes'
-        )->will(
-            $this->returnValue($languageCodes)
-        );
-        $this->_helperMock->expects($this->atLeastOnce())->method('convertLanguageCodeToLocaleCode')->will(
-            $this->returnCallback(
-                function ($languageCode) use ($langToLocalesMap) {
-                    return $langToLocalesMap[$languageCode];
-                }
-            )
-        );
-
-        $localeMock = $this->_localeMock;
-        $localeMock::staticExpects(
-            $this->at(0)
-        )->method(
-            'getTranslation'
-        )->with(
-            'localeCode1',
-            'language',
-            'languageCode1'
-        )->will(
-            $this->returnValue('translationForSpecifiedLanguage1')
-        );
-
-        $localeMock::staticExpects(
-            $this->at(1)
-        )->method(
-            'getTranslation'
-        )->with(
-            'localeCode1',
-            'language'
-        )->will(
-            $this->returnValue('translationForDefaultLanguage1')
-        );
-
-        $localeMock::staticExpects(
-            $this->at(2)
-        )->method(
-            'getTranslation'
-        )->with(
-            'localeCode2',
-            'language',
-            'languageCode2'
-        )->will(
-            $this->returnValue('translationForSpecifiedLanguage2')
-        );
-
-        $localeMock::staticExpects(
-            $this->at(3)
-        )->method(
-            'getTranslation'
-        )->with(
-            'localeCode2',
-            'language'
-        )->will(
-            $this->returnValue('translationForDefaultLanguage2')
-        );
-
-        $this->_uppercaseFilterMock->expects(
-            $this->at(0)
-        )->method(
-            'filter'
-        )->with(
-            'translationForSpecifiedLanguage1'
-        )->will(
-            $this->returnValue('TranslationForSpecifiedLanguage1')
-        );
-
-        $this->_uppercaseFilterMock->expects(
-            $this->at(1)
-        )->method(
-            'filter'
-        )->with(
-            'translationForSpecifiedLanguage2'
-        )->will(
-            $this->returnValue('TranslationForSpecifiedLanguage2')
-        );
-
-        $this->assertEquals($expectedLanguages, $this->_model->toOptionArray());
-    }
-}
diff --git a/dev/tests/unit/testsuite/Magento/GroupedProduct/Block/Product/View/Type/GroupedTest.php b/dev/tests/unit/testsuite/Magento/GroupedProduct/Block/Product/View/Type/GroupedTest.php
index 34f79e375a1c5540aaa03973deb415c02c45b985..9beb7e0ff88bcc057e5daee4a6b9440108e5afac 100644
--- a/dev/tests/unit/testsuite/Magento/GroupedProduct/Block/Product/View/Type/GroupedTest.php
+++ b/dev/tests/unit/testsuite/Magento/GroupedProduct/Block/Product/View/Type/GroupedTest.php
@@ -45,16 +45,6 @@ class GroupedTest extends \PHPUnit_Framework_TestCase
      */
     protected $configuredValueMock;
 
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $blockMock;
-
-    /**
-     * @var string
-     */
-    protected $defaultTemplate = 'product/view/tierprices.phtml';
-
     protected function setUp()
     {
         $helper = new \Magento\TestFramework\Helper\ObjectManager($this);
@@ -88,23 +78,11 @@ class GroupedTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
-        // mocks for getTierPriceHtml method
-        $methods = array(
-            'setTemplate',
-            'setProduct',
-            'setListClass',
-            'setShowDetailedPrice',
-            'setCanDisplayQty',
-            'toHtml'
-        );
-        $this->blockMock = $this->getMock('Magento\Catalog\Block\Product\Price', $methods, array(), '', false);
         $layout = $this->getMock('Magento\Framework\View\LayoutInterface');
-        $layout->expects($this->any())->method('createBlock')->will($this->returnValue($this->blockMock));
         $this->groupedView = $helper->getObject(
             'Magento\GroupedProduct\Block\Product\View\Type\Grouped',
             array(
-                'data' => array('product' => $this->productMock, 'tier_price_template' => $this->defaultTemplate),
-                'priceBlockTypes' => array('product_id' => array('block' => $this->blockMock)),
+                'data' => array('product' => $this->productMock),
                 'layout' => $layout
             )
         );
@@ -184,64 +162,4 @@ class GroupedTest extends \PHPUnit_Framework_TestCase
         $this->groupedView->setPreconfiguredValue();
     }
 
-    /**
-     * @param null|PHPUnit_Framework_MockObject_MockObject $price
-     * @dataProvider getTierPriceHtmlDataProvider
-     */
-    public function testGetTierPriceHtml($price)
-    {
-        $this->productMock->expects($this->any())->method('getTypeId')->will($this->returnValue('product_id'));
-        $this->blockMock->expects(
-            $this->once()
-        )->method(
-            'setTemplate'
-        )->with(
-            $this->defaultTemplate
-        )->will(
-            $this->returnValue($this->blockMock)
-        );
-        $this->blockMock->expects(
-            $this->once()
-        )->method(
-            'setProduct'
-        )->with(
-            $this->productMock
-        )->will(
-            $this->returnValue($this->blockMock)
-        );
-        $this->blockMock->expects(
-            $this->once()
-        )->method(
-            'setListClass'
-        )->with(
-            'tier prices grouped items'
-        )->will(
-            $this->returnValue($this->blockMock)
-        );
-        $this->blockMock->expects(
-            $this->once()
-        )->method(
-            'setShowDetailedPrice'
-        )->with(
-            false
-        )->will(
-            $this->returnValue($this->blockMock)
-        );
-        $this->blockMock->expects(
-            $this->once()
-        )->method(
-            'setCanDisplayQty'
-        )->with(
-            false
-        )->will(
-            $this->returnValue($this->blockMock)
-        );
-        $this->blockMock->expects($this->once())->method('toHtml')->will($this->returnValue('expected'));
-        $this->assertEquals('expected', $this->groupedView->getTierPriceHtml($price));
-    }
-
-    public function getTierPriceHtmlDataProvider()
-    {
-        return array('if_use_default_value_for_method' => array(null), 'if_pice_exist' => array($this->productMock));
-    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/GroupedProduct/Pricing/Price/FinalPriceTest.php b/dev/tests/unit/testsuite/Magento/GroupedProduct/Pricing/Price/FinalPriceTest.php
index a0d8f021457bfb02726a8d3bafdd614a68be9b83..59e72c8710e23080871b29d825392213e1c545f9 100644
--- a/dev/tests/unit/testsuite/Magento/GroupedProduct/Pricing/Price/FinalPriceTest.php
+++ b/dev/tests/unit/testsuite/Magento/GroupedProduct/Pricing/Price/FinalPriceTest.php
@@ -34,93 +34,101 @@ class FinalPriceTest extends \PHPUnit_Framework_TestCase
      */
     protected $finalPrice;
 
-    /**
-     * @var \Magento\GroupedProduct\Model\Product\Type\Grouped|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $typeInstanceMock;
-
     /**
      * @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $salableItemMock;
+    protected $saleableItemMock;
 
     /**
      * @var \Magento\Framework\Pricing\Adjustment\Calculator|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $calculatorMock;
 
-    /**
-     * @var \Magento\Framework\Pricing\PriceInfo\Base|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $priceInfoMock;
-
-    /**
-     * @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $productMock;
-
-    /**
-     * @var \Magento\Framework\Pricing\Amount\AmountInterface|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $amountMock;
-
-    /**
-     * @var \Magento\Catalog\Pricing\Price\FinalPrice|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $priceTypeMock;
-
     /**
      * Setup
      */
     public function setUp()
     {
-        $this->salableItemMock =  $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
-        $this->productMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
-        $this->amountMock = $this->getMock('Magento\Framework\Pricing\Amount\Base', [], [], '', false);
+        $this->saleableItemMock =  $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
         $this->calculatorMock = $this->getMock('Magento\Framework\Pricing\Adjustment\Calculator', [], [], '', false);
-        $this->priceInfoMock = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
-        $this->typeInstanceMock = $this->getMock('Magento\GroupedProduct\Model\Product\Type\Grouped',
-            [], [], '', false);
-        $this->priceTypeMock = $this->getMock('Magento\Catalog\Pricing\Price\FinalPrice', [], [], '', false);
 
         $this->finalPrice = new \Magento\GroupedProduct\Pricing\Price\FinalPrice
         (
-            $this->salableItemMock,
+            $this->saleableItemMock,
+            null,
             $this->calculatorMock
         );
     }
 
     public function testGetMinProduct()
     {
-        $valueMap = [
-            [90],
-            [70]
-        ];
-        $this->salableItemMock->expects($this->once())
+        $product1 = $this->getProductMock(10);
+        $product2 = $this->getProductMock(20);
+
+        $typeInstanceMock = $this->getMock(
+            'Magento\GroupedProduct\Model\Product\Type\Grouped',
+            [],
+            [],
+            '',
+            false
+        );
+        $typeInstanceMock->expects($this->once())
+            ->method('getAssociatedProducts')
+            ->with($this->equalTo($this->saleableItemMock))
+            ->will($this->returnValue([$product1, $product2]));
+
+        $this->saleableItemMock->expects($this->once())
             ->method('getTypeInstance')
-            ->will($this->returnValue($this->typeInstanceMock));
+            ->will($this->returnValue($typeInstanceMock));
+
+        $this->assertEquals($product1, $this->finalPrice->getMinProduct());
+    }
 
-        $this->typeInstanceMock->expects($this->once())
+    public function testGetValue()
+    {
+        $product1 = $this->getProductMock(10);
+        $product2 = $this->getProductMock(20);
+
+        $typeInstanceMock = $this->getMock(
+            'Magento\GroupedProduct\Model\Product\Type\Grouped',
+            [],
+            [],
+            '',
+            false
+        );
+        $typeInstanceMock->expects($this->once())
             ->method('getAssociatedProducts')
-            ->with($this->equalTo($this->salableItemMock))
-            ->will($this->returnValue([$this->productMock, $this->productMock]));
+            ->with($this->equalTo($this->saleableItemMock))
+            ->will($this->returnValue([$product1, $product2]));
 
-        $this->productMock->expects($this->exactly(2))
-            ->method('setQty')
-            ->with($this->equalTo(\Magento\Framework\Pricing\PriceInfoInterface::PRODUCT_QUANTITY_DEFAULT));
+        $this->saleableItemMock->expects($this->once())
+            ->method('getTypeInstance')
+            ->will($this->returnValue($typeInstanceMock));
 
-        $this->productMock->expects($this->exactly(2))
-            ->method('getPriceInfo')
-            ->will($this->returnValue($this->priceInfoMock));
+        $this->assertEquals(10, $this->finalPrice->getValue());
+    }
 
-        $this->priceInfoMock->expects($this->exactly(2))
+    protected function getProductMock($price)
+    {
+        $priceTypeMock = $this->getMock('Magento\Catalog\Pricing\Price\FinalPrice', [], [], '', false);
+        $priceTypeMock->expects($this->any())
+            ->method('getValue')
+            ->will($this->returnValue($price));
+
+        $priceInfoMock = $this->getMock('Magento\Framework\Pricing\PriceInfo\Base', [], [], '', false);
+        $priceInfoMock->expects($this->any())
             ->method('getPrice')
-            ->with($this->equalTo(\Magento\Catalog\Pricing\Price\FinalPriceInterface::PRICE_TYPE_FINAL))
-            ->will($this->returnValue($this->priceTypeMock));
+            ->with($this->equalTo(\Magento\Catalog\Pricing\Price\FinalPrice::PRICE_CODE))
+            ->will($this->returnValue($priceTypeMock));
 
-        $this->priceTypeMock->expects($this->exactly(2))
-            ->method('getValue')
-            ->will($this->returnValueMap($valueMap));
-        $this->assertEquals($this->finalPrice->getMinProduct(), $this->productMock);
+        $productMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
+        $productMock->expects($this->any())
+            ->method('setQty')
+            ->with($this->equalTo(\Magento\Framework\Pricing\PriceInfoInterface::PRODUCT_QUANTITY_DEFAULT));
+        $productMock->expects($this->any())
+            ->method('getPriceInfo')
+            ->will($this->returnValue($priceInfoMock));
+
+        return $productMock;
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/PageCache/Model/ObserverTest.php b/dev/tests/unit/testsuite/Magento/PageCache/Model/ObserverTest.php
index ea6301b5cf1d8fe3628250a5ad2bd391f970c234..a24398ce6f40653114d00be1d0d73fb92ffce347 100644
--- a/dev/tests/unit/testsuite/Magento/PageCache/Model/ObserverTest.php
+++ b/dev/tests/unit/testsuite/Magento/PageCache/Model/ObserverTest.php
@@ -110,7 +110,7 @@ class ObserverTest extends \PHPUnit_Framework_TestCase
             false,
             true,
             true,
-            array('getTtl', 'isScopePrivate', 'getNameInLayout', 'getUrl')
+            array('getData', 'isScopePrivate', 'getNameInLayout', 'getUrl')
         );
         $this->_transport = new \Magento\Framework\Object(array('output' => 'test output html'));
         $this->_observerObject = $this->getMock('\Magento\Store\Model\Store', array(), array(), '', false);
@@ -158,14 +158,13 @@ class ObserverTest extends \PHPUnit_Framework_TestCase
             );
 
             if ($varnishIsEnabled) {
-                $this->_blockMock->setTtl($blockTtl);
-                $this->_blockMock->expects(
-                    $this->any()
-                )->method(
-                    'getUrl'
-                )->will(
-                    $this->returnValue('page_cache/block/wrapesi/with/handles/and/other/stuff')
-                );
+                $this->_blockMock->expects($this->once())
+                    ->method('getData')
+                    ->with('ttl')
+                    ->will($this->returnValue($blockTtl));
+                $this->_blockMock->expects($this->any())
+                    ->method('getUrl')
+                    ->will($this->returnValue('page_cache/block/wrapesi/with/handles/and/other/stuff'));
             }
             if ($scopeIsPrivate) {
                 $this->_blockMock->expects(
diff --git a/dev/tests/unit/testsuite/Magento/Paypal/Model/IpnTest.php b/dev/tests/unit/testsuite/Magento/Paypal/Model/IpnTest.php
index 5fd842f57db4e1d5138c5c98e64d3192481c156a..4f34b2077d6c392e71d95a39072d20661aba8621 100644
--- a/dev/tests/unit/testsuite/Magento/Paypal/Model/IpnTest.php
+++ b/dev/tests/unit/testsuite/Magento/Paypal/Model/IpnTest.php
@@ -96,6 +96,9 @@ class IpnTest extends \PHPUnit_Framework_TestCase
 
         $testMethod = new \ReflectionMethod('Magento\Paypal\Model\Ipn', '_registerPaymentAuthorization');
         $testMethod->setAccessible(true);
+        $this->markTestIncomplete(
+            'MAGETWO-23755: "Fatal error: Using $this when not in object context" is observed under PHPUnit4'
+        );
         $testMethod->invoke($this->_ipn);
     }
 
diff --git a/dev/tests/unit/testsuite/Magento/Rss/Block/Catalog/CategoryTest.php b/dev/tests/unit/testsuite/Magento/Rss/Block/Catalog/CategoryTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..4ecf1663791d8ee1a07f3fa1ed364fa53f162b55
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Rss/Block/Catalog/CategoryTest.php
@@ -0,0 +1,147 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Rss\Block\Catalog;
+
+/**
+ * Test for rendering price html in rss templates
+ *
+ * @package Magento\Rss\Block\Catalog
+ */
+class CategoryTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Rss\Block\Catalog\Category
+     */
+    protected $block;
+
+    /**
+     * @var \Magento\Catalog\Helper\Image
+     */
+    protected $imageHelperMock;
+
+    /**
+     * Set up mock objects for tested class
+     */
+    public function setUp()
+    {
+        $templateContextMock = $this->getMock('Magento\Framework\View\Element\Template\Context', [], [], '', false);
+        $this->imageHelperMock = $this->getMock('Magento\Catalog\Helper\Image', [], [], '', false);
+        $eventManagerMock = $this->getMock('Magento\Framework\Event\ManagerInterface', [], [], '', false);
+        $requestMock = $this->getMock('Magento\Framework\App\RequestInterface', [], [], '', false);
+
+        $templateContextMock->expects($this->once())
+            ->method('getEventManager')
+            ->will($this->returnValue($eventManagerMock));
+        $templateContextMock->expects($this->once())
+            ->method('getRequest')
+            ->will($this->returnValue($requestMock));
+
+        $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $this->block = $objectManager->getObject(
+            'Magento\Rss\Block\Catalog\Category',
+            [
+                'context' => $templateContextMock,
+                'imageHelper' => $this->imageHelperMock,
+            ]
+        );
+    }
+
+    /**
+     * Test for method addNewItemXmlCallback
+     */
+    public function testAddNewItemXmlCallback()
+    {
+        $priceHtmlForTest = '<div class="price">Price is 10 for example</div>';
+        $productMock = $this->getMock(
+            'Magento\Catalog\Model\Product',
+            ['getProductUrl', 'getDescription', 'getAllowedInRss', 'getName', '__wakeup'],
+            [],
+            '',
+            false
+        );
+        $rssObjMock = $this->getMock('Magento\Rss\Model\Rss', [], [], '', false);
+        $layoutMock = $this->getMockForAbstractClass(
+            'Magento\Framework\View\LayoutInterface',
+            [],
+            '',
+            true,
+            true,
+            true,
+            ['getBlock']
+        );
+        $priceRendererMock = $this->getMock('Magento\Framework\Pricing\Render', ['render'], [], '', false);
+        $productTitle = 'Product title';
+        $productUrl = '<a href="http://product.url">Product Url</a>';
+        $imgThumbSrc = 'http://source-for-thumbnail';
+        $productDescription = 'Product description';
+        $description = '<table><tr><td><a href="' . $productUrl . '"><img src="' . $imgThumbSrc .
+            '" border="0" align="left" height="75" width="75"></a></td><td  style="text-decoration:none;">' .
+            $productDescription . $priceHtmlForTest . '</td></tr></table>';
+
+        $productMock->expects($this->exactly(2))
+            ->method('getProductUrl')
+            ->will($this->returnValue($productUrl));
+        $productMock->expects($this->once())
+            ->method('getDescription')
+            ->will($this->returnValue($productDescription));
+        $productMock->expects($this->any())
+            ->method('getAllowedInRss')
+            ->will($this->returnValue(true));
+        $productMock->expects($this->once())
+            ->method('getName')
+            ->will($this->returnValue($productTitle));
+        $this->imageHelperMock->expects($this->once())
+            ->method('init')
+            ->will($this->returnSelf());
+        $this->imageHelperMock->expects($this->once())
+            ->method('resize')
+            ->will($this->returnValue($imgThumbSrc));
+        $layoutMock->expects($this->once())
+            ->method('getBlock')
+            ->will($this->returnValue($priceRendererMock));
+        $priceRendererMock->expects($this->once())
+            ->method('render')
+            ->will($this->returnValue($priceHtmlForTest));
+
+        $expectedData = [
+            'title' => $productTitle,
+            'link' => $productUrl,
+            'description' => $description
+        ];
+        $rssObjMock->expects($this->once())
+            ->method('_addEntry')
+            ->with($expectedData)
+            ->will($this->returnSelf());
+
+
+        $args = [
+            'product' => $productMock,
+            'rssObj' => $rssObjMock
+        ];
+
+        $this->block->setLayout($layoutMock);
+        $this->assertNull($this->block->addNewItemXmlCallback($args));
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Rss/Block/Catalog/NewCatalogTest.php b/dev/tests/unit/testsuite/Magento/Rss/Block/Catalog/NewCatalogTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..bb580235022a25f7cb0250b9b4ee483cb3623f82
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Rss/Block/Catalog/NewCatalogTest.php
@@ -0,0 +1,149 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Rss\Block\Catalog;
+
+/**
+ * Test for rendering price html in rss templates
+ *
+ * @package Magento\Rss\Block\Catalog
+ */
+class NewCatalogTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Rss\Block\Catalog\NewCatalog
+     */
+    protected $block;
+
+    /**
+     * @var \Magento\Catalog\Helper\Image
+     */
+    protected $imageHelperMock;
+
+    /**
+     * Set up mock objects for tested class
+     */
+    public function setUp()
+    {
+        $templateContextMock = $this->getMock('Magento\Framework\View\Element\Template\Context', [], [], '', false);
+        $this->imageHelperMock = $this->getMock('Magento\Catalog\Helper\Image', [], [], '', false);
+
+        $eventManagerMock = $this->getMock('Magento\Framework\Event\ManagerInterface', [], [], '', false);
+        $requestMock = $this->getMock('Magento\Framework\App\RequestInterface', [], [], '', false);
+
+        $templateContextMock->expects($this->once())
+            ->method('getEventManager')
+            ->will($this->returnValue($eventManagerMock));
+        $templateContextMock->expects($this->once())
+            ->method('getRequest')
+            ->will($this->returnValue($requestMock));
+
+        $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $this->block = $objectManager->getObject(
+            'Magento\Rss\Block\Catalog\NewCatalog',
+            [
+                'context' => $templateContextMock,
+                'imageHelper' => $this->imageHelperMock,
+            ]
+        );
+    }
+
+    /**
+     * Test for method addNewItemXmlCallback
+     */
+    public function testAddNewItemXmlCallback()
+    {
+        $priceHtmlForTest = '<div class="price">Price is 10 for example</div>';
+        $productMock = $this->getMock(
+            'Magento\Catalog\Model\Product',
+            ['getProductUrl', 'getDescription', 'getAllowedInRss', 'getName', '__wakeup'],
+            [],
+            '',
+            false
+        );
+        $rssObjMock = $this->getMock('Magento\Rss\Model\Rss', [], [], '', false);
+        $layoutMock = $this->getMockForAbstractClass(
+            'Magento\Framework\View\LayoutInterface',
+            [],
+            '',
+            true,
+            true,
+            true,
+            ['getBlock']
+        );
+        $priceRendererMock = $this->getMock('Magento\Framework\Pricing\Render', ['render'], [], '', false);
+        $productTitle = 'Product title';
+        $productUrl = '<a href="http://product.url">Product Url</a>';
+        $imgThumbSrc = 'http://source-for-thumbnail';
+        $productDescription = 'Product description';
+        $description = '<table><tr><td><a href="' . $productUrl . '"><img src="' . $imgThumbSrc .
+            '" border="0" align="left" height="75" width="75"></a></td><td  style="text-decoration:none;">' .
+            $productDescription . $priceHtmlForTest . '</td></tr></table>';
+
+        $productMock->expects($this->exactly(2))
+            ->method('getProductUrl')
+            ->will($this->returnValue($productUrl));
+        $productMock->expects($this->once())
+            ->method('getDescription')
+            ->will($this->returnValue($productDescription));
+        $productMock->expects($this->any())
+            ->method('getAllowedInRss')
+            ->will($this->returnValue(true));
+        $productMock->expects($this->once())
+            ->method('getName')
+            ->will($this->returnValue($productTitle));
+        $this->imageHelperMock->expects($this->once())
+            ->method('init')
+            ->will($this->returnSelf());
+        $this->imageHelperMock->expects($this->once())
+            ->method('resize')
+            ->will($this->returnValue($imgThumbSrc));
+        $layoutMock->expects($this->once())
+            ->method('getBlock')
+            ->will($this->returnValue($priceRendererMock));
+        $priceRendererMock->expects($this->once())
+            ->method('render')
+            ->will($this->returnValue($priceHtmlForTest));
+
+        $expectedData = [
+            'title' => $productTitle,
+            'link' => $productUrl,
+            'description' => $description
+        ];
+        $rssObjMock->expects($this->once())
+            ->method('_addEntry')
+            ->with($expectedData)
+            ->will($this->returnSelf());
+
+
+        $args = [
+            'product' => $productMock,
+            'rssObj' => $rssObjMock,
+            'row' => ''
+        ];
+
+        $this->block->setLayout($layoutMock);
+        $this->assertNull($this->block->addNewItemXmlCallback($args));
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Rss/Block/Catalog/SpecialTest.php b/dev/tests/unit/testsuite/Magento/Rss/Block/Catalog/SpecialTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..bb3d6b308a7c76529259b9595f76781b3da28f5c
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Rss/Block/Catalog/SpecialTest.php
@@ -0,0 +1,271 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Rss\Block\Catalog;
+
+use \Magento\Framework\Pricing\PriceCurrencyInterface;
+
+/**
+ * Test for rendering price html in rss templates
+ *
+ * @package Magento\Rss\Block\Catalog
+ */
+class SpecialTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Rss\Block\Catalog\Special
+     */
+    protected $block;
+
+    /**
+     * @var \Magento\Catalog\Helper\Image
+     */
+    protected $imageHelperMock;
+
+    /**
+     * @var \Magento\Store\Model\Store
+     */
+    protected $storeMock;
+
+    /**
+     * @var \Magento\Catalog\Model\ProductFactory
+     */
+    protected $productFactoryMock;
+
+    /**
+     * @var \Magento\Rss\Model\RssFactory
+     */
+    protected $rssFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Model\Resource\Iterator
+     */
+    protected $resourceIteratorMock;
+
+    /**
+     * @var \Magento\Catalog\Helper\Data
+     */
+    protected $catalogHelperMock;
+
+    /**
+     * @var \Magento\Framework\Pricing\PriceCurrencyInterface
+     */
+    protected $priceCurrencyMock;
+
+    /**
+     * Set up mock objects for tested class
+     *
+     * @return void
+     */
+    public function setUp()
+    {
+        $templateContextMock = $this->getMock('Magento\Framework\View\Element\Template\Context', [], [], '', false);
+        $this->catalogHelperMock = $this->getMock('Magento\Catalog\Helper\Data', [], [], '', false);
+        $this->priceCurrencyMock = $this->getMockForAbstractClass(
+            'Magento\Framework\Pricing\PriceCurrencyInterface',
+            [],
+            '',
+            true,
+            true,
+            true,
+            ['convertAndFormat']
+        );
+        $this->rssFactoryMock = $this->getMock('Magento\Rss\Model\RssFactory', ['create'], [], '', false);
+        $this->productFactoryMock = $this->getMock('Magento\Catalog\Model\ProductFactory', ['create'], [], '', false);
+        $this->resourceIteratorMock = $this->getMock('Magento\Framework\Model\Resource\Iterator', [], [], '', false);
+        $this->imageHelperMock = $this->getMock('Magento\Catalog\Helper\Image', [], [], '', false);
+
+        $eventManagerMock = $this->getMock('Magento\Framework\Event\ManagerInterface', [], [], '', false);
+        $requestMock = $this->getMock('Magento\Framework\App\RequestInterface', [], [], '', false);
+        $storeManagerMock = $this->getMock('Magento\Store\Model\StoreManagerInterface');
+        $urlBuilderMock = $this->getMock('Magento\Framework\UrlInterface', [], [], '', false);
+        $this->storeMock = $this->getMock('Magento\Store\Model\Store', [], [], '', false);
+        $scopeConfigMock = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface', [], [], '', false);
+        $cacheStateMock = $this->getMock('Magento\Framework\App\Cache\StateInterface', [], [], '', false);
+
+        $templateContextMock->expects($this->any())
+            ->method('getRequest')
+            ->will($this->returnValue($requestMock));
+        $templateContextMock->expects($this->any())
+            ->method('getScopeConfig')
+            ->will($this->returnValue($scopeConfigMock));
+        $templateContextMock->expects($this->any())
+            ->method('getCacheState')
+            ->will($this->returnValue($cacheStateMock));
+        $templateContextMock->expects($this->any())
+            ->method('getEventManager')
+            ->will($this->returnValue($eventManagerMock));
+        $templateContextMock->expects($this->any())
+            ->method('getUrlBuilder')
+            ->will($this->returnValue($urlBuilderMock));
+        $templateContextMock->expects($this->any())
+            ->method('getStoreManager')
+            ->will($this->returnValue($storeManagerMock));
+        $storeManagerMock->expects($this->any())
+            ->method('getStore')
+            ->will($this->returnValue($this->storeMock));
+        $this->storeMock->expects($this->any())
+            ->method('getId')
+            ->will($this->returnValue(0));
+
+        $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $this->block = $objectManager->getObject(
+            'Magento\Rss\Block\Catalog\Special',
+            [
+                'context' => $templateContextMock,
+                'catalogData' => $this->catalogHelperMock,
+                'priceCurrency' => $this->priceCurrencyMock,
+                'productFactory' => $this->productFactoryMock,
+                'rssFactory' => $this->rssFactoryMock,
+                'resourceIterator' => $this->resourceIteratorMock,
+                'imageHelper' => $this->imageHelperMock,
+            ]
+        );
+    }
+
+    /**
+     * Test for method _toHtml
+     *
+     * @return void
+     */
+    public function testToHtml()
+    {
+        $productMock = $this->getMock(
+            'Magento\Catalog\Model\Product',
+            ['getProductUrl', 'getDescription', 'getAllowedPriceInRss', 'getName', '__wakeup', 'getResourceCollection'],
+            [],
+            '',
+            false
+        );
+        $productCollectionMock = $this->getMock(
+            'Magento\Catalog\Model\Resource\Product\CollectionFactory',
+            ['addPriceDataFieldFilter', 'addPriceData', 'addAttributeToSelect', 'addAttributeToSort', 'getSelect'],
+            [],
+            '',
+            false
+        );
+        $rssObjMock = $this->getMock('Magento\Rss\Model\Rss', [], [], '', false);
+        $productUrl = '<a href="http://product.url">Product Url</a>';
+        $imgThumbSrc = 'http://source-for-thumbnail';
+        $productTitle = 'Product title';
+        $basePriceFormatted = '<span class="price">$10.00</span>';
+        $finalPriceFormatted = '<span class="price">$20.00</span>';
+        $productDescription = '<table><tr>' .
+            '<td><a href="' . $productUrl . '"><img src="' . $imgThumbSrc .
+            '" alt="" border="0" align="left" height="75" width="75" /></a></td>' .
+            '<td style="text-decoration:none;"><p>Price: ' . $basePriceFormatted . ' Special Price: ' .
+            $finalPriceFormatted . '</p></td></tr></table>';
+        $expectedData = [
+            'title' => $productTitle,
+            'link' => $productUrl,
+            'description' => $productDescription
+        ];
+        $expectedResult = new \Magento\Framework\Object(['rss_feed' => '<xml>Feed of the rss</xml>']);
+
+        $this->addMocks();
+        $this->productFactoryMock->expects($this->once())
+            ->method('create')
+            ->will($this->returnValue($productMock));
+        $productMock->expects($this->once())
+            ->method('getResourceCollection')
+            ->will($this->returnValue($productCollectionMock));
+        $productCollectionMock->expects($this->once())
+            ->method('addPriceDataFieldFilter')
+            ->will($this->returnSelf());
+        $productCollectionMock->expects($this->once())
+            ->method('addPriceData')
+            ->will($this->returnSelf());
+        $productCollectionMock->expects($this->once())
+            ->method('addAttributeToSelect')
+            ->will($this->returnSelf());
+        $productCollectionMock->expects($this->once())
+            ->method('addAttributeToSort')
+            ->will($this->returnSelf());
+        $this->rssFactoryMock->expects($this->once())
+            ->method('create')
+            ->will($this->returnValue($rssObjMock));
+        $productMock->expects($this->exactly(2))
+            ->method('getProductUrl')
+            ->will($this->returnValue($productUrl));
+        $this->imageHelperMock->expects($this->once())
+            ->method('resize')
+            ->will($this->returnValue($imgThumbSrc));
+        $productMock->expects($this->any())
+            ->method('getAllowedPriceInRss')
+            ->will($this->returnValue(true));
+        $productMock->expects($this->once())
+            ->method('getName')
+            ->will($this->returnValue($productTitle));
+        $this->priceCurrencyMock->expects($this->exactly(2))
+            ->method('convertAndFormat')
+            ->will($this->returnValueMap(
+                [
+                    [10, true, PriceCurrencyInterface::DEFAULT_PRECISION, null, null, $basePriceFormatted],
+                    [20, true, PriceCurrencyInterface::DEFAULT_PRECISION, null, null, $finalPriceFormatted],
+                ]
+            )
+        );
+        $rssObjMock->expects($this->once())
+            ->method('_addEntry')
+            ->with($expectedData)
+            ->will($this->returnSelf());
+        $rssObjMock->expects($this->once())
+            ->method('createRssXml')
+            ->will($this->returnValue($expectedResult));
+        $this->assertEquals($expectedResult, $this->block->toHtml());
+    }
+
+    /**
+     * Additional function to break up mocks initialization
+     *
+     * @return void
+     */
+    protected function addMocks()
+    {
+
+        $resIteratorcallback = function () {
+            $arguments = func_get_args();
+            $arguments[2]['results'] = [
+                ['use_special' => false, 'price' => 10, 'final_price' => 20]
+            ];
+        };
+
+        $this->storeMock->expects($this->once())
+            ->method('getWebsiteId')
+            ->will($this->returnValue(0));
+        $this->storeMock->expects($this->once())
+            ->method('getFrontendName')
+            ->will($this->returnValue('store name'));
+
+        $this->catalogHelperMock->expects($this->once())
+            ->method('canApplyMsrp')
+            ->will($this->returnValue(false));
+        $this->resourceIteratorMock->expects($this->once())
+            ->method('walk')
+            ->will($this->returnCallback($resIteratorcallback));
+        $this->imageHelperMock->expects($this->once())
+            ->method('init')
+            ->will($this->returnSelf());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Rss/Block/WishlistTest.php b/dev/tests/unit/testsuite/Magento/Rss/Block/WishlistTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..55fc7279aaef692b79773edad6ba779ec40ac361
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Rss/Block/WishlistTest.php
@@ -0,0 +1,404 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Rss\Block;
+
+/**
+ * Test for rendering price html in rss templates
+ *
+ * @package Magento\Rss\Block
+ */
+class WishlistTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Rss\Block\Catalog\Category
+     */
+    protected $block;
+
+    /**
+     * @var \Magento\Catalog\Model\ProductFactory
+     */
+    protected $productFactoryMock;
+
+    /**
+     * @var \Magento\Rss\Model\RssFactory
+     */
+    protected $rssFactoryMock;
+
+    /**
+     * @var \Magento\UrlInterface
+     */
+    protected $urlBuilderMock;
+
+    /**
+     * @var \Magento\Core\Helper\Data
+     */
+    protected $coreHelperMock;
+
+    /**
+     * @var \Magento\Wishlist\Helper\Data
+     */
+    protected $wishlistHelperMock;
+
+    /**
+     * @var \Magento\Framework\App\Config\ScopeConfigInterface
+     */
+    protected $storeConfigMock;
+
+    /**
+     * @var \Magento\Catalog\Helper\Image
+     */
+    protected $imageHelperMock;
+
+    /**
+     * @var \Magento\Catalog\Helper\Output
+     */
+    protected $catalogOutputMock;
+
+    /**
+     * Set up mock objects for tested class
+     *
+     * @return void
+     */
+    public function setUp()
+    {
+        $templateContextMock = $this->getMock('Magento\Catalog\Block\Product\Context', [], [], '', false);
+        $this->coreHelperMock = $this->getMock('Magento\Core\Helper\Data', [], [], '', false);
+        $this->catalogOutputMock = $this->getMock('Magento\Catalog\Helper\Output', [], [], '', false);
+        $wishlistFactoryMock = $this->getMock('Magento\Wishlist\Model\WishlistFactory', [], [], '', false);
+        $this->rssFactoryMock = $this->getMock('Magento\Rss\Model\RssFactory', ['create'], [], '', false);
+        $eventManagerMock = $this->getMock('Magento\Framework\Event\ManagerInterface', [], [], '', false);
+        $cacheStateMock = $this->getMock('Magento\Framework\App\Cache\StateInterface', [], [], '', false);
+        $this->productFactoryMock = $this->getMock(
+            'Magento\Catalog\Model\ProductFactory',
+            ['create', '__wakeup'],
+            [],
+            '',
+            false
+        );
+        $this->wishlistHelperMock = $this->getMock(
+            'Magento\Wishlist\Helper\Data',
+            ['getWishlist', 'getCustomer', 'getCustomerName'],
+            [],
+            '',
+            false
+        );
+        $this->urlBuilderMock = $this->getMockForAbstractClass(
+            'Magento\Framework\UrlInterface',
+            [],
+            '',
+            true,
+            true,
+            true,
+            ['getUrl']
+        );
+        $this->storeConfigMock = $this->getMockForAbstractClass(
+            'Magento\Framework\App\Config\ScopeConfigInterface',
+            [],
+            '',
+            true,
+            true,
+            true,
+            ['getConfig']
+        );
+        $this->imageHelperMock = $this->getMock('Magento\Catalog\Helper\Image', [], [], '', false);
+
+        $templateContextMock->expects($this->once())
+            ->method('getEventManager')
+            ->will($this->returnValue($eventManagerMock));
+        $templateContextMock->expects($this->once())
+            ->method('getCacheState')
+            ->will($this->returnValue($cacheStateMock));
+        $templateContextMock->expects($this->once())
+            ->method('getImageHelper')
+            ->will($this->returnValue($this->imageHelperMock));
+        $templateContextMock->expects($this->once())
+            ->method('getWishlistHelper')
+            ->will($this->returnValue($this->wishlistHelperMock));
+        $templateContextMock->expects($this->once())
+            ->method('getScopeConfig')
+            ->will($this->returnValue($this->storeConfigMock));
+        $templateContextMock->expects($this->once())
+            ->method('getUrlBuilder')
+            ->will($this->returnValue($this->urlBuilderMock));
+
+        $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $this->block = $objectManager->getObject(
+            'Magento\Rss\Block\Wishlist',
+            [
+                'context' => $templateContextMock,
+                'productFactory' => $this->productFactoryMock,
+                'coreData' => $this->coreHelperMock,
+                'wishlistFactory' => $wishlistFactoryMock,
+                'rssFactory' => $this->rssFactoryMock,
+                'outputHelper' => $this->catalogOutputMock
+            ]
+        );
+    }
+
+    /**
+     * Test for method _toHtml
+     */
+    public function testToHtml()
+    {
+        $wishlistId = 1;
+        $customerName = 'Customer Name';
+        $title = "$customerName's Wishlist";
+        $rssObjMock = $this->getMock('Magento\Rss\Model\Rss', [], [], '', false);
+        $wishlistModelMock = $this->getMock(
+            'Magento\Wishlist\Model\Wishlist',
+            ['getId', '__wakeup', 'getCustomerId', 'getItemCollection'],
+            [],
+            '',
+            false
+        );
+        $customerServiceMock = $this->getMock('Magento\Customer\Service\V1\Data\Customer', [], [], '', false);
+        $wishlistSharingUrl = 'wishlist/shared/index/1';
+        $locale = 'en_US';
+        $productUrl = 'http://product.url/';
+        $productName = 'Product name';
+        $expectedHeaders = [
+            'title' => $title,
+            'description' => $title,
+            'link' => $wishlistSharingUrl,
+            'charset' => 'UTF-8',
+            'language' => $locale
+        ];
+
+
+        $this->rssFactoryMock->expects($this->once())
+            ->method('create')
+            ->will($this->returnValue($rssObjMock));
+        $this->wishlistHelperMock->expects($this->once())
+            ->method('getWishlist')
+            ->will($this->returnValue($wishlistModelMock));
+        $this->wishlistHelperMock->expects($this->once())
+            ->method('getCustomer')
+            ->will($this->returnValue($customerServiceMock));
+        $this->wishlistHelperMock->expects($this->once())
+            ->method('getCustomerName')
+            ->will($this->returnValue($customerName));
+        $wishlistModelMock->expects($this->once())
+            ->method('getId')
+            ->will($this->returnValue($wishlistId));
+        $this->urlBuilderMock->expects($this->once())
+            ->method('getUrl')
+            ->will($this->returnValue($wishlistSharingUrl));
+        $this->storeConfigMock->expects($this->any())
+            ->method('getValue')
+            ->will($this->returnValueMap(
+                    [
+                        [
+                            'advanced/modules_disable_output/Magento_Rss',
+                            \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
+                            null,
+                            null
+                        ],
+                        [
+                            'general/locale/code',
+                            \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
+                            null,
+                            $locale
+                        ]
+                    ]
+                )
+            );
+
+        $staticArgs = [
+            'productName' => $productName,
+            'productUrl' => $productUrl
+        ];
+        $description = $this->processWishlistItemDescription($wishlistModelMock, $staticArgs);
+        $expectedEntry = [
+            'title' => $productName,
+            'link' => $productUrl,
+            'description' => $description
+        ];
+        $rssString = '';
+
+        $rssObjMock->expects($this->once())
+            ->method('_addHeader')
+            ->with($expectedHeaders)
+            ->will($this->returnSelf());
+        $rssObjMock->expects($this->once())
+            ->method('_addEntry')
+            ->with($expectedEntry);
+        $rssObjMock->expects($this->once())
+            ->method('createRssXml')
+            ->will($this->returnValue($rssString));
+
+        $this->assertEquals($rssString, $this->block->toHtml());
+    }
+
+    /**
+     * Additional function to process forming description for wishlist item
+     *
+     * @param \Magento\Wishlist\Model\Wishlist $wishlistModelMock
+     * @param array $staticArgs
+     * @return string
+     */
+    protected function processWishlistItemDescription($wishlistModelMock, $staticArgs)
+    {
+        $imgThumbSrc = 'http://source-for-thumbnail';
+        $priceHtmlForTest = '<div class="price">Price is 10 for example</div>';
+        $productDescription = 'Product description';
+        $productShortDescription = 'Product short description';
+
+        $wishlistItem = $this->getMock('Magento\Wishlist\Model\Item', [], [], '', false);
+        $wishlistItemsCollection = [
+            $wishlistItem
+        ];
+        $productMock = $this->getMock(
+            'Magento\Catalog\Model\Product',
+            [
+                'getAllowedInRss',
+                'getAllowedPriceInRss',
+                'getDescription',
+                'getShortDescription',
+                'getName',
+                'getVisibleInSiteVisibilities',
+                'getUrlModel',
+                '__wakeup'
+            ],
+            [],
+            '',
+            false
+        );
+        $urlModelMock = $this->getMock('Magento\Catalog\Model\Product\Url', [], [], '', false);
+        $layoutMock = $this->getMockForAbstractClass(
+            'Magento\Framework\View\LayoutInterface',
+            [],
+            '',
+            true,
+            true,
+            true,
+            ['getBlock']
+        );
+
+        $wishlistModelMock->expects($this->once())
+            ->method('getItemCollection')
+            ->will($this->returnValue($wishlistItemsCollection));
+        $wishlistItem->expects($this->once())
+            ->method('getProduct')
+            ->will($this->returnValue($productMock));
+        $productMock->expects($this->once())
+            ->method('getUrlModel')
+            ->will($this->returnValue($urlModelMock));
+        $productMock->expects($this->once())
+            ->method('getAllowedPriceInRss')
+            ->will($this->returnValue($urlModelMock));
+        $urlModelMock->expects($this->once())
+            ->method('getUrl')
+            ->will($this->returnValue($staticArgs['productUrl']));
+        $productMock->expects($this->once())
+            ->method('getName')
+            ->will($this->returnValue($staticArgs['productName']));
+        $productMock->expects($this->once())
+            ->method('getAllowedInRss')
+            ->will($this->returnValue(true));
+        $productMock->expects($this->once())
+            ->method('getVisibleInSiteVisibilities')
+            ->will($this->returnValue(true));
+        $this->imageHelperMock->expects($this->once())
+            ->method('init')
+            ->will($this->returnSelf());
+        $this->imageHelperMock->expects($this->once())
+            ->method('resize')
+            ->will($this->returnValue($imgThumbSrc));
+        $priceRendererMock = $this->getMock('Magento\Framework\Pricing\Render', ['render'], [], '', false);
+
+        $layoutMock->expects($this->once())
+            ->method('getBlock')
+            ->will($this->returnValue($priceRendererMock));
+        $priceRendererMock->expects($this->once())
+            ->method('render')
+            ->will($this->returnValue($priceHtmlForTest));
+        $productMock->expects($this->any())
+            ->method('getDescription')
+            ->will($this->returnValue($productDescription));
+        $productMock->expects($this->any())
+            ->method('getShortDescription')
+            ->will($this->returnValue($productShortDescription));
+        $this->catalogOutputMock->expects($this->any())
+            ->method('productAttribute')
+            ->will($this->returnArgument(1));
+
+        $this->block->setLayout($layoutMock);
+        $description = '<table><tr><td><a href="' . $staticArgs['productUrl'] . '"><img src="' . $imgThumbSrc .
+            '" border="0" align="left" height="75" width="75"></a></td><td style="text-decoration:none;">' .
+            $productShortDescription . '<p>' . $priceHtmlForTest . '</p><p>Comment: ' . $productDescription . '<p>' .
+            '</td></tr></table>';
+
+        return $description;
+    }
+
+    /**
+     * Test for method _toHtml for the case, when wishlist is absent
+     */
+    public function testToHtmlWithoutWishlist()
+    {
+        $url = 'http://base.url/index';
+        $rssString = '<xml>Some empty xml</xml>';
+        $rssObjMock = $this->getMock('Magento\Rss\Model\Rss', [], [], '', false);
+        $customerServiceMock = $this->getMock('Magento\Customer\Service\V1\Data\Customer', [], [], '', false);
+        $wishlistModelMock = $this->getMock(
+            'Magento\Wishlist\Model\Wishlist',
+            ['getId', '__wakeup', 'getCustomerId'],
+            [],
+            '',
+            false
+        );
+        $expectedHeaders = [
+            'title' => __('We cannot retrieve the wish list.'),
+            'description' => __('We cannot retrieve the wish list.'),
+            'link' => $url,
+            'charset' => 'UTF-8'
+        ];
+
+        $this->rssFactoryMock->expects($this->once())
+            ->method('create')
+            ->will($this->returnValue($rssObjMock));
+        $this->wishlistHelperMock->expects($this->once())
+            ->method('getWishlist')
+            ->will($this->returnValue($wishlistModelMock));
+        $wishlistModelMock->expects($this->once())
+            ->method('getId')
+            ->will($this->returnValue(false));
+        $this->urlBuilderMock->expects($this->once())
+            ->method('getUrl')
+            ->will($this->returnValue($url));
+        $this->wishlistHelperMock->expects($this->once())
+            ->method('getCustomer')
+            ->will($this->returnValue($customerServiceMock));
+        $rssObjMock->expects($this->once())
+            ->method('_addHeader')
+            ->with($expectedHeaders)
+            ->will($this->returnSelf());
+        $rssObjMock->expects($this->once())
+            ->method('createRssXml')
+            ->will($this->returnValue($rssString));
+
+        $this->assertEquals($rssString, $this->block->toHtml());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/OrderTest.php b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/OrderTest.php
index db247adb1ffb6aacf8f94c7a738daa204062508d..afb5d98498f7e77229a5e254c9eed622f4ed3b37 100644
--- a/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/OrderTest.php
+++ b/dev/tests/unit/testsuite/Magento/Sales/Controller/Adminhtml/OrderTest.php
@@ -79,16 +79,32 @@ class OrderTest extends \PHPUnit_Framework_TestCase
             $this->getMock('\Magento\Framework\App\Action\Title', array('__wakeup', 'add'), array(), '', false);
         $viewMock = $this->getMockForAbstractClass('\Magento\Framework\App\ViewInterface');
 
+        /**
+         * @TODO:
+         *  - Methods of object under test MUST NOT be mocked
+         *  - Protected properties MUST NOT be set from outside, inject via context passed to constructor instead
+         */
         $this->_controllerMock = $this->getMockBuilder(
-            '\Magento\Sales\Controller\Adminhtml\Stub\Order'
+            '\Magento\Sales\Controller\Adminhtml\Order'
         )->disableOriginalConstructor()->setMethods(
             array('__wakeup', '_initOrder', '_initAction', '__', 'renderLayout', '_redirect')
         )->getMock();
         $this->_controllerMock->expects($this->any())->method('__')->will($this->returnArgument(0));
 
-        $this->_controllerMock->_title = $titleMock;
-        $this->_controllerMock->_view = $viewMock;
-        $this->_controllerMock->messageManager = $this->_messageMock;
+        $reflectionProperty = new \ReflectionProperty('\Magento\Sales\Controller\Adminhtml\Order', '_title');
+        $reflectionProperty->setAccessible(true);
+        $reflectionProperty->setValue($this->_controllerMock, $titleMock);
+        $reflectionProperty->setAccessible(false);
+
+        $reflectionProperty = new \ReflectionProperty('\Magento\Sales\Controller\Adminhtml\Order', '_view');
+        $reflectionProperty->setAccessible(true);
+        $reflectionProperty->setValue($this->_controllerMock, $viewMock);
+        $reflectionProperty->setAccessible(false);
+
+        $reflectionProperty = new \ReflectionProperty('\Magento\Sales\Controller\Adminhtml\Order', 'messageManager');
+        $reflectionProperty->setAccessible(true);
+        $reflectionProperty->setValue($this->_controllerMock, $this->_messageMock);
+        $reflectionProperty->setAccessible(false);
     }
 
     /**
diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Quote/ItemTest.php b/dev/tests/unit/testsuite/Magento/Sales/Model/Quote/ItemTest.php
index 73bc9bc7ab8b079ce7c44cf4eda0b643065af1ca..c9e41f6ce4b4c2944663e926e7170afcf1856223 100644
--- a/dev/tests/unit/testsuite/Magento/Sales/Model/Quote/ItemTest.php
+++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Quote/ItemTest.php
@@ -36,12 +36,12 @@ class ItemTest extends \PHPUnit_Framework_TestCase
     private $localeFormat;
 
     /**
-     * @var \Magento\Model\Context
+     * @var \Magento\Framework\Model\Context
      */
     private $modelContext;
 
     /**
-     * @var \Magento\Event\ManagerInterface
+     * @var \Magento\Framework\Event\ManagerInterface
      */
     private $eventDispatcher;
 
@@ -81,7 +81,7 @@ class ItemTest extends \PHPUnit_Framework_TestCase
             ->setMethods(['getEventDispatcher'])
             ->getMock();
 
-        $this->eventDispatcher = $this->getMockBuilder('Magento\Event\ManagerInterface')
+        $this->eventDispatcher = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface')
             ->disableOriginalConstructor()
             ->setMethods(['dispatch'])
             ->getMock();
diff --git a/dev/tests/unit/testsuite/Magento/Store/Model/Storage/DbTest.php b/dev/tests/unit/testsuite/Magento/Store/Model/Storage/DbTest.php
index 01ffe65308f6414f58687ceefabf4b0348b3379e..5afae729e73fc8ccad0d766f73c54ecd53bda7cf 100644
--- a/dev/tests/unit/testsuite/Magento/Store/Model/Storage/DbTest.php
+++ b/dev/tests/unit/testsuite/Magento/Store/Model/Storage/DbTest.php
@@ -190,7 +190,7 @@ class DbTest extends \PHPUnit_Framework_TestCase
         $websiteCode = 'website_code';
         $groupId = 1;
         $storeId = 1;
-        $storeCode = \Magento\Store\Model\Store::DEFAULT_CODE;
+        $storeCode = 'store_code';
         $websiteCollection =
             $this->getMock('\Magento\Store\Model\Resource\Website\Collection', array(), array(), '', false, false);
         $websiteCollection->expects($this->any())->method('setLoadDefault')->with(true);
@@ -266,7 +266,6 @@ class DbTest extends \PHPUnit_Framework_TestCase
         $this->prepareMockForReinit();
         $this->_model->reinitStores();
         $this->assertSame($this->_storeMock, $this->_model->getStore(true));
-
     }
 
     public function testReinitStores()
@@ -294,7 +293,7 @@ class DbTest extends \PHPUnit_Framework_TestCase
         $this->_model->reinitStores();
         $this->assertSame($expected, $this->_model->getStores());
 
-        $expected = array(\Magento\Store\Model\Store::DEFAULT_CODE => $this->_storeMock);
+        $expected = array('store_code' => $this->_storeMock);
         $this->assertSame($expected, $this->_model->getStores(false, true));
     }
 
diff --git a/dev/tests/unit/testsuite/Magento/Tax/Pricing/AdjustmentTest.php b/dev/tests/unit/testsuite/Magento/Tax/Pricing/AdjustmentTest.php
index ff9dd0242fd2e7ed36181428257bb2f3d7321ece..74ea74b8a9059fd6e87fd0f067bd227b65908d10 100644
--- a/dev/tests/unit/testsuite/Magento/Tax/Pricing/AdjustmentTest.php
+++ b/dev/tests/unit/testsuite/Magento/Tax/Pricing/AdjustmentTest.php
@@ -24,49 +24,46 @@
 
 namespace Magento\Tax\Pricing;
 
-use Magento\Tax\Helper\Data as TaxHelper;
 use Magento\Framework\Pricing\Object\SaleableInterface;
 
 class AdjustmentTest extends \PHPUnit_Framework_TestCase
 {
+    /**
+     * @var Adjustment
+     */
+    protected $adjustment;
+
+    /**
+     * @var \Magento\Tax\Helper\Data | \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $taxHelper;
+
+    /**
+     * @var int
+     */
+    protected $sortOrder = 5;
+
+    public function setUp()
+    {
+        $this->taxHelper = $this->getMock('Magento\Tax\Helper\Data', [], [], '', false);
+        $this->adjustment = new Adjustment($this->taxHelper, $this->sortOrder);
+    }
+
     public function testGetAdjustmentCode()
     {
-        // Instantiate/mock objects
-        /** @var TaxHelper $taxHelper */
-        $taxHelper = $this->getMockBuilder('Magento\Tax\Helper\Data')->disableOriginalConstructor()
-            ->setMethods(array())
-            ->getMock();
-        $model = new Adjustment($taxHelper);
-
-        // Run tested method
-        $code = $model->getAdjustmentCode();
-
-        // Check expectations
-        $this->assertNotEmpty($code);
+        $this->assertEquals(Adjustment::ADJUSTMENT_CODE, $this->adjustment->getAdjustmentCode());
     }
 
     /**
-     * @param bool $isPriceIncludesTax
+     * @param bool $expectedResult
      * @dataProvider isIncludedInBasePriceDataProvider
      */
-    public function testIsIncludedInBasePrice($isPriceIncludesTax)
+    public function testIsIncludedInBasePrice($expectedResult)
     {
-        // Instantiate/mock objects
-        /** @var TaxHelper|\PHPUnit_Framework_MockObject_MockObject $taxHelper */
-        $taxHelper = $this->getMockBuilder('Magento\Tax\Helper\Data')->disableOriginalConstructor()
-            ->setMethods(array('priceIncludesTax'))
-            ->getMock();
-        $model = new Adjustment($taxHelper);
-
-        // Avoid execution of irrelevant functionality
-        $taxHelper->expects($this->any())->method('priceIncludesTax')->will($this->returnValue($isPriceIncludesTax));
-
-        // Run tested method
-        $result = $model->isIncludedInBasePrice();
-
-        // Check expectations
-        $this->assertInternalType('bool', $result);
-        $this->assertEquals($isPriceIncludesTax, $result);
+        $this->taxHelper->expects($this->once())
+            ->method('priceIncludesTax')
+            ->will($this->returnValue($expectedResult));
+        $this->assertEquals($expectedResult, $this->adjustment->isIncludedInBasePrice());
     }
 
     public function isIncludedInBasePriceDataProvider()
@@ -79,27 +76,16 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
      */
     public function testIsIncludedInDisplayPrice($displayPriceIncludingTax, $displayBothPrices, $expectedResult)
     {
-        // Instantiate/mock objects
-        /** @var TaxHelper|\PHPUnit_Framework_MockObject_MockObject $taxHelper */
-        $taxHelper = $this->getMockBuilder('Magento\Tax\Helper\Data')->disableOriginalConstructor()
-            ->setMethods(array('displayPriceIncludingTax', 'displayBothPrices'))
-            ->getMock();
-
-        // Avoid execution of irrelevant functionality
-        $taxHelper->expects($this->any())
+        $this->taxHelper->expects($this->once())
             ->method('displayPriceIncludingTax')
             ->will($this->returnValue($displayPriceIncludingTax));
-        $taxHelper->expects($this->any())
-            ->method('displayBothPrices')
-            ->will($this->returnValue($displayBothPrices));
+        if (!$displayPriceIncludingTax) {
+            $this->taxHelper->expects($this->once())
+                ->method('displayBothPrices')
+                ->will($this->returnValue($displayBothPrices));
+        }
 
-        $model = new Adjustment($taxHelper);
-        // Run tested method
-        $result = $model->isIncludedInDisplayPrice();
-
-        // Check expectations
-        $this->assertInternalType('bool', $result);
-        $this->assertEquals($expectedResult, $result);
+        $this->assertEquals($expectedResult, $this->adjustment->isIncludedInDisplayPrice());
     }
 
     /**
@@ -124,30 +110,17 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
      */
     public function testExtractAdjustment($isPriceIncludesTax, $amount, $price, $expectedResult)
     {
-        // Instantiate/mock objects
-        /** @var TaxHelper|\PHPUnit_Framework_MockObject_MockObject $taxHelper */
-        $taxHelper = $this->getMockBuilder('Magento\Tax\Helper\Data')->disableOriginalConstructor()
-            ->setMethods(array('priceIncludesTax', 'getPrice'))
-            ->getMock();
-        /** @var SaleableInterface|\PHPUnit_Framework_MockObject_MockObject $taxHelper */
-        $object = $this->getMockBuilder('Magento\Framework\Pricing\Object\SaleableInterface')->getMock();
-        $model = new Adjustment($taxHelper);
+        $object = $this->getMockForAbstractClass('Magento\Framework\Pricing\Object\SaleableInterface');
 
-                // Avoid execution of irrelevant functionality
-        $taxHelper->expects($this->any())
+        $this->taxHelper->expects($this->any())
             ->method('priceIncludesTax')
             ->will($this->returnValue($isPriceIncludesTax));
-        $taxHelper->expects($this->any())
+        $this->taxHelper->expects($this->any())
             ->method('getPrice')
             ->with($object, $amount)
             ->will($this->returnValue($price));
 
-        // Run tested method
-        $result = $model->extractAdjustment($amount, $object);
-
-        // Check expectations
-        $this->assertInternalType('float', $result);
-        $this->assertEquals($expectedResult, $result);
+        $this->assertEquals($expectedResult, $this->adjustment->extractAdjustment($amount, $object));
     }
 
     public function extractAdjustmentDataProvider()
@@ -169,30 +142,17 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
      */
     public function testApplyAdjustment($isPriceIncludesTax, $amount, $price, $expectedResult)
     {
-        // Instantiate/mock objects
-        /** @var TaxHelper|\PHPUnit_Framework_MockObject_MockObject $taxHelper */
-        $taxHelper = $this->getMockBuilder('Magento\Tax\Helper\Data')->disableOriginalConstructor()
-            ->setMethods(array('priceIncludesTax', 'getPrice'))
-            ->getMock();
-        /** @var SaleableInterface|\PHPUnit_Framework_MockObject_MockObject $taxHelper */
         $object = $this->getMockBuilder('Magento\Framework\Pricing\Object\SaleableInterface')->getMock();
-        $model = new Adjustment($taxHelper);
 
-        // Avoid execution of irrelevant functionality
-        $taxHelper->expects($this->any())
+        $this->taxHelper->expects($this->any())
             ->method('priceIncludesTax')
             ->will($this->returnValue($isPriceIncludesTax));
-        $taxHelper->expects($this->any())
+        $this->taxHelper->expects($this->any())
             ->method('getPrice')
             ->with($object, $amount, !$isPriceIncludesTax)
             ->will($this->returnValue($price));
 
-        // Run tested method
-        $result = $model->applyAdjustment($amount, $object);
-
-        // Check expectations
-        $this->assertInternalType('float', $result);
-        $this->assertEquals($expectedResult, $result);
+        $this->assertEquals($expectedResult, $this->adjustment->applyAdjustment($amount, $object));
     }
 
     /**
@@ -207,20 +167,26 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
         ];
     }
 
-    public function testIsExcludedWith()
+    /**
+     * @dataProvider isExcludedWithDataProvider
+     * @param string $adjustmentCode
+     * @param bool $expectedResult
+     */
+    public function testIsExcludedWith($adjustmentCode, $expectedResult)
     {
-        $adjustmentCode = 'some_random_adjustment_code123';
-
-        // Instantiate/mock objects
-        /** @var TaxHelper|\PHPUnit_Framework_MockObject_MockObject $taxHelper */
-        $taxHelper = $this->getMockBuilder('Magento\Tax\Helper\Data')->disableOriginalConstructor()->getMock();
-        $model = new Adjustment($taxHelper);
+        $this->assertEquals($expectedResult, $this->adjustment->isExcludedWith($adjustmentCode));
+    }
 
-        // Run tested method
-        $result = $model->isExcludedWith($adjustmentCode);
+    public function isExcludedWithDataProvider()
+    {
+        return [
+            [Adjustment::ADJUSTMENT_CODE, true],
+            ['not_tax', false]
+        ];
+    }
 
-        // Check expectations
-        $this->assertInternalType('bool', $result);
-        $this->assertFalse($result);
+    public function testGetSortOrder()
+    {
+        $this->assertEquals($this->sortOrder, $this->adjustment->getSortOrder());
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Tax/Pricing/Price/Plugin/AttributePriceTest.php b/dev/tests/unit/testsuite/Magento/Tax/Pricing/Price/Plugin/AttributePriceTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..106743426db353497778bba5d204cb9188c63d5b
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Tax/Pricing/Price/Plugin/AttributePriceTest.php
@@ -0,0 +1,175 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Tax\Pricing\Price\Plugin;
+
+/**
+ * Class AttributePrice
+ *
+ * @package Magento\Tax\Pricing\Price\Plugin
+ */
+class AttributePriceTest extends \PHPUnit_Framework_TestCase
+{
+    /** @var \Magento\Tax\Helper\Data|\PHPUnit_Framework_MockObject_MockObject */
+    protected $taxHelperMock;
+
+    /** @var \Magento\Tax\Model\Calculation|\PHPUnit_Framework_MockObject_MockObject */
+    protected $calculationMock;
+
+    /** @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject */
+    protected $productMock;
+
+    /** @var \Magento\Framework\Pricing\PriceInfo\Base|\PHPUnit_Framework_MockObject_MockObject */
+    protected $priceInfoMock;
+
+    /** @var \Magento\Tax\Pricing\Adjustment|\PHPUnit_Framework_MockObject_MockObject */
+    protected $adjustmentMock;
+
+    /** @var  \Magento\Tax\Pricing\Price\Plugin\AttributePrice */
+    protected $plugin;
+
+    /** @var \Magento\Object|\PHPUnit_Framework_MockObject_MockObject */
+    protected $rateRequestMock;
+
+    /** @var \Magento\ConfigurableProduct\Pricing\Price\AttributePrice|\PHPUnit_Framework_MockObject_MockObject */
+    protected $attributePriceMock;
+
+    /**
+     * Test setup
+     */
+    public function setUp()
+    {
+        $this->taxHelperMock = $this->getMock(
+            'Magento\Tax\Helper\Data',
+            ['displayPriceIncludingTax', 'displayBothPrices'],
+            [],
+            '',
+            false,
+            false
+        );
+        $this->calculationMock = $this->getMock(
+            'Magento\Tax\Model\Calculation',
+            ['getRate', 'getRateRequest', '__wakeup'],
+            [],
+            '',
+            false,
+            false
+        );
+        $this->productMock = $this->getMock(
+            'Magento\Catalog\Model\Product',
+            ['__wakeup', 'getTaxClassId', 'getPriceInfo'],
+            [],
+            '',
+            false,
+            false
+        );
+        $this->priceInfoMock = $this->getMock(
+            'Magento\Framework\Pricing\PriceInfo\Base',
+            ['getAdjustment'],
+            [],
+            '',
+            false,
+            false
+        );
+        $this->adjustmentMock = $this->getMock(
+            'Magento\Tax\Pricing\Adjustment',
+            ['isIncludedInBasePrice'],
+            [],
+            '',
+            false,
+            false
+        );
+        $this->rateRequestMock = $this->getMock(
+            'Magento\Object',
+            ['setProductClassId', '__wakeup'],
+            [],
+            '',
+            false,
+            false
+        );
+        $this->attributePriceMock = $this->getMock(
+            'Magento\ConfigurableProduct\Pricing\Price\AttributePrice',
+            [],
+            [],
+            '',
+            false,
+            false
+        );
+
+        $this->plugin = new \Magento\Tax\Pricing\Price\Plugin\AttributePrice(
+            $this->taxHelperMock,
+            $this->calculationMock
+        );
+
+
+    }
+
+    /**
+     * test for method afterPrepareAdjustmentConfig
+     */
+    public function testAfterPrepareAdjustmentConfig()
+    {
+        $this->productMock->expects($this->once())
+            ->method('getTaxClassId')
+            ->will($this->returnValue('tax-class-id'));
+        $this->calculationMock->expects($this->exactly(2))
+            ->method('getRateRequest')
+            ->will($this->returnValue($this->rateRequestMock));
+        $this->calculationMock->expects($this->exactly(2))
+            ->method('getRate')
+            ->with($this->equalTo($this->rateRequestMock))
+            ->will($this->returnValue(99.10));
+        $this->productMock->expects($this->once())
+            ->method('getPriceInfo')
+            ->will($this->returnValue($this->priceInfoMock));
+        $this->priceInfoMock->expects($this->once())
+            ->method('getAdjustment')
+            ->with($this->equalTo(\Magento\Tax\Pricing\Adjustment::ADJUSTMENT_CODE))
+            ->will($this->returnValue($this->adjustmentMock));
+        $this->adjustmentMock->expects($this->once())
+            ->method('isIncludedInBasePrice')
+            ->will($this->returnValue(true));
+        $this->taxHelperMock->expects($this->once())
+            ->method('displayPriceIncludingTax')
+            ->will($this->returnValue(true));
+        $this->taxHelperMock->expects($this->once())
+            ->method('displayBothPrices')
+            ->will($this->returnValue(true));
+
+        $expected = [
+            'product' => $this->productMock,
+            'defaultTax' => 99.10,
+            'currentTax' => 99.10,
+            'includeTax' => true,
+            'showIncludeTax' => true,
+            'showBothPrices' => true
+        ];
+
+        $this->assertEquals($expected, $this->plugin->afterPrepareAdjustmentConfig($this->attributePriceMock, [
+            'product' => $this->productMock,
+            'defaultTax' => 0,
+            'currentTax' => 0
+        ]));
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Tax/Pricing/Render/AdjustmentTest.php b/dev/tests/unit/testsuite/Magento/Tax/Pricing/Render/AdjustmentTest.php
index 1050a4d33339884bb7098cccdfc604d4b9b21311..34febddc00268222712964f5b44fac7ce4a6ab6c 100644
--- a/dev/tests/unit/testsuite/Magento/Tax/Pricing/Render/AdjustmentTest.php
+++ b/dev/tests/unit/testsuite/Magento/Tax/Pricing/Render/AdjustmentTest.php
@@ -36,14 +36,14 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
     /**
      * Price currency model mock
      *
-     * @var \Magento\Directory\Model\PriceCurrency
+     * @var \Magento\Directory\Model\PriceCurrency | \PHPUnit_Framework_MockObject_MockObject
      */
     protected $priceCurrencyMock;
 
     /**
      * Price helper mock
      *
-     * @var \Magento\Tax\Helper\Data
+     * @var \Magento\Tax\Helper\Data | \PHPUnit_Framework_MockObject_MockObject
      */
     protected $taxHelperMock;
 
@@ -104,7 +104,7 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
      */
     public function testGetAdjustmentCode()
     {
-        $this->assertEquals(\Magento\Tax\Pricing\Adjustment::CODE, $this->model->getAdjustmentCode());
+        $this->assertEquals(\Magento\Tax\Pricing\Adjustment::ADJUSTMENT_CODE, $this->model->getAdjustmentCode());
     }
 
     /**
@@ -292,4 +292,93 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals($expectedResult, $result);
     }
+
+    public function testGetHtmlExcluding()
+    {
+        $arguments = [];
+        $totalDisplayValue = 10.0;
+        $taxAdjustment = 2.0;
+        $displayValue = 8.0;
+
+        $amountRender = $this->getMockForAbstractClass('Magento\Framework\Pricing\Render\AmountRenderInterface');
+        $amountMock = $this->getMockForAbstractClass('Magento\Framework\Pricing\Amount\AmountInterface');
+        $amountMock->expects($this->once())
+            ->method('getAdjustmentAmount')
+            ->with(\Magento\Tax\Pricing\Adjustment::ADJUSTMENT_CODE)
+            ->will($this->returnValue($taxAdjustment));
+
+        $this->taxHelperMock->expects($this->once())
+            ->method('displayBothPrices')
+            ->will($this->returnValue(false));
+        $this->taxHelperMock->expects($this->once())
+            ->method('displayPriceExcludingTax')
+            ->will($this->returnValue(true));
+
+        $amountRender->expects($this->at(0))
+            ->method('getDisplayValue')
+            ->will($this->returnValue($totalDisplayValue));
+        $amountRender->expects($this->at(1))
+            ->method('getAmount')
+            ->will($this->returnValue($amountMock));
+        $amountRender->expects($this->at(2))
+            ->method('setDisplayValue')
+            ->with($displayValue);
+
+        $this->model->render($amountRender, $arguments);
+    }
+
+    public function testGetHtmlBoth()
+    {
+        $arguments = [];
+        $totalDisplayValue = 10.0;
+        $taxAdjustment = 2.0;
+        $displayValue = 8.0;
+        $this->model->setZone(\Magento\Framework\Pricing\Render::ZONE_ITEM_VIEW);
+
+        $amountRender = $this->getMock(
+            'Magento\Framework\Pricing\Render\Amount',
+            [
+                'setPriceDisplayLabel',
+                'setPriceId',
+                'getSaleableItem',
+                'getDisplayValue',
+                'getAmount',
+                'setDisplayValue'
+            ],
+            [],
+            '',
+            false
+        );
+        $amountMock = $this->getMockForAbstractClass('Magento\Framework\Pricing\Amount\AmountInterface');
+        $amountMock->expects($this->once())
+            ->method('getAdjustmentAmount')
+            ->with(\Magento\Tax\Pricing\Adjustment::ADJUSTMENT_CODE)
+            ->will($this->returnValue($taxAdjustment));
+        $product = $this->getMockForAbstractClass('Magento\Framework\Pricing\Object\SaleableInterface');
+        $product->expects($this->once())
+            ->method('getId');
+
+        $this->taxHelperMock->expects($this->once())
+            ->method('displayBothPrices')
+            ->will($this->returnValue(true));
+
+        $amountRender->expects($this->at(0))
+            ->method('setPriceDisplayLabel');
+        $amountRender->expects($this->at(1))
+            ->method('getSaleableItem')
+            ->will($this->returnValue($product));
+        $amountRender->expects($this->at(2))
+            ->method('setPriceId');
+        $amountRender->expects($this->at(3))
+            ->method('getDisplayValue')
+            ->will($this->returnValue($totalDisplayValue));
+        $amountRender->expects($this->at(4))
+            ->method('getAmount')
+            ->will($this->returnValue($amountMock));
+        $amountRender->expects($this->at(5))
+            ->method('setDisplayValue')
+            ->with($displayValue);
+
+        $this->model->render($amountRender, $arguments);
+    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Usps/Model/CarrierTest.php b/dev/tests/unit/testsuite/Magento/Usps/Model/CarrierTest.php
index 442dc5377519ec6a2c9103bfd7af24f7be5adf60..3c1021d7132f59aefdad925d483232d0a604aaa6 100644
--- a/dev/tests/unit/testsuite/Magento/Usps/Model/CarrierTest.php
+++ b/dev/tests/unit/testsuite/Magento/Usps/Model/CarrierTest.php
@@ -165,8 +165,10 @@ class CarrierTest extends \PHPUnit_Framework_TestCase
             $this->returnValue(file_get_contents(__DIR__ . '/_files/success_usps_response_rates.xml'))
         );
         // for setRequest
-        $request_params = include __DIR__ . '/_files/rates_request_data.php';
-        $request = $this->_helper->getObject('Magento\Sales\Model\Quote\Address\RateRequest', $request_params);
+        $request = $this->_helper->getObject(
+            'Magento\Sales\Model\Quote\Address\RateRequest',
+            require __DIR__ . '/_files/rates_request_data.php'
+        );
 
         $this->assertNotEmpty($this->_model->collectRates($request)->getAllRates());
     }
@@ -180,8 +182,10 @@ class CarrierTest extends \PHPUnit_Framework_TestCase
         )->will(
             $this->returnValue(file_get_contents(__DIR__ . '/_files/success_usps_response_return_shipment.xml'))
         );
-        $request_params = include __DIR__ . '/_files/return_shipment_request_data.php';
-        $request = $this->_helper->getObject('Magento\Shipping\Model\Shipment\ReturnShipment', $request_params);
+        $request = $this->_helper->getObject(
+            'Magento\Shipping\Model\Shipment\ReturnShipment',
+            require __DIR__ . '/_files/return_shipment_request_data.php'
+        );
         $this->assertNotEmpty($this->_model->returnOfShipment($request)->getInfo()[0]['tracking_number']);
     }
 
diff --git a/dev/tests/unit/testsuite/Magento/Weee/Pricing/AdjustmentTest.php b/dev/tests/unit/testsuite/Magento/Weee/Pricing/AdjustmentTest.php
index 0edb70d9d4e3704a3493edad811d6a6d0974d78c..9e711679a93b9b86ce2b91c6eed10585c463a674 100644
--- a/dev/tests/unit/testsuite/Magento/Weee/Pricing/AdjustmentTest.php
+++ b/dev/tests/unit/testsuite/Magento/Weee/Pricing/AdjustmentTest.php
@@ -29,34 +29,35 @@ use Magento\Framework\Pricing\Object\SaleableInterface;
 
 class AdjustmentTest extends \PHPUnit_Framework_TestCase
 {
+    /**
+     * @var Adjustment
+     */
+    protected $adjustment;
+
+    /**
+     * @var \Magento\Weee\Helper\Data | \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $weeeHelper;
+
+    /**
+     * @var int
+     */
+    protected $sortOrder = 5;
+
+    public function setUp()
+    {
+        $this->weeeHelper = $this->getMock('Magento\Weee\Helper\Data', [], [], '', false);
+        $this->adjustment = new Adjustment($this->weeeHelper, $this->sortOrder);
+    }
+
     public function testGetAdjustmentCode()
     {
-        // Instantiate/mock objects
-        /** @var WeeeHelper $weeHelper */
-        $weeHelper = $this->getMockBuilder('Magento\Weee\Helper\Data')->disableOriginalConstructor()
-            ->setMethods(array())
-            ->getMock();
-        $model = new Adjustment($weeHelper);
-
-        // Run tested method
-        $code = $model->getAdjustmentCode();
-
-        // Check expectations
-        $this->assertNotEmpty($code);
+        $this->assertEquals(Adjustment::ADJUSTMENT_CODE, $this->adjustment->getAdjustmentCode());
     }
 
     public function testIsIncludedInBasePrice()
     {
-        // Instantiate/mock objects
-        /** @var WeeeHelper|\PHPUnit_Framework_MockObject_MockObject $weeeHelper */
-        $weeeHelper = $this->getMockBuilder('Magento\Weee\Helper\Data')->disableOriginalConstructor()->getMock();
-        $model = new Adjustment($weeeHelper);
-
-        // Run tested method
-        $result = $model->isIncludedInBasePrice();
-
-        // Check expectations
-        $this->assertInternalType('bool', $result);
+        $this->assertFalse($this->adjustment->isIncludedInBasePrice());
     }
 
     /**
@@ -64,34 +65,17 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
      */
     public function testIsIncludedInDisplayPrice($expectedResult)
     {
-        // Instantiate/mock objects
-        /** @var WeeeHelper|\PHPUnit_Framework_MockObject_MockObject $weeeHelper */
-        $weeeHelper = $this->getMockBuilder('Magento\Weee\Helper\Data')->disableOriginalConstructor()
-            ->setMethods(array('typeOfDisplay'))
-            ->getMock();
-        $model = new Adjustment($weeeHelper);
-
-        // Avoid execution of irrelevant functionality
-        $weeeHelper->expects($this->any())
+        $displayTypes = [
+            \Magento\Weee\Model\Tax::DISPLAY_INCL,
+            \Magento\Weee\Model\Tax::DISPLAY_INCL_DESCR,
+            \Magento\Weee\Model\Tax::DISPLAY_EXCL_DESCR_INCL
+        ];
+        $this->weeeHelper->expects($this->any())
             ->method('typeOfDisplay')
-            ->with(
-                $this->equalTo(
-                    [
-                        \Magento\Weee\Model\Tax::DISPLAY_INCL,
-                        \Magento\Weee\Model\Tax::DISPLAY_INCL_DESCR,
-                        \Magento\Weee\Model\Tax::DISPLAY_EXCL_DESCR_INCL,
-                        4
-                    ]
-                )
-            )
+            ->with($displayTypes)
             ->will($this->returnValue($expectedResult));
 
-        // Run tested method
-        $result = $model->isIncludedInDisplayPrice();
-
-        // Check expectations
-        $this->assertInternalType('bool', $result);
-        $this->assertEquals($expectedResult, $result);
+        $this->assertEquals($expectedResult, $this->adjustment->isIncludedInDisplayPrice());
     }
 
     /**
@@ -109,26 +93,14 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
      */
     public function testExtractAdjustment($amount, $expectedResult)
     {
-        // Instantiate/mock objects
-        /** @var WeeeHelper|\PHPUnit_Framework_MockObject_MockObject $weeeHelper */
-        $weeeHelper = $this->getMockBuilder('Magento\Weee\Helper\Data')->disableOriginalConstructor()
-            ->setMethods(array('getAmount'))
-            ->getMock();
-        /** @var SaleableInterface|\PHPUnit_Framework_MockObject_MockObject $saleableItem */
-        $saleableItem = $this->getMockBuilder('Magento\Framework\Pricing\Object\SaleableInterface')->getMock();
-        $model = new Adjustment($weeeHelper);
-
-        // Avoid execution of irrelevant functionality
-        $weeeHelper->expects($this->any())
+        $saleableItem = $this->getMockForAbstractClass('Magento\Framework\Pricing\Object\SaleableInterface');
+
+        $this->weeeHelper->expects($this->any())
             ->method('getAmount')
+            ->with($saleableItem)
             ->will($this->returnValue($amount));
 
-        // Run tested method
-        $result = $model->extractAdjustment('anything_here', $saleableItem);
-
-        // Check expectations
-        $this->assertInternalType('float', $result);
-        $this->assertEquals($expectedResult, $result);
+        $this->assertEquals($expectedResult, $this->adjustment->extractAdjustment($amount, $saleableItem));
     }
 
     /**
@@ -150,26 +122,13 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
      */
     public function testApplyAdjustment($amount, $amountOld, $expectedResult)
     {
-        // Instantiate/mock objects
-        /** @var WeeeHelper|\PHPUnit_Framework_MockObject_MockObject $weeeHelper */
-        $weeeHelper = $this->getMockBuilder('Magento\Weee\Helper\Data')->disableOriginalConstructor()
-            ->setMethods(array('getAmount'))
-            ->getMock();
-        /** @var SaleableInterface|\PHPUnit_Framework_MockObject_MockObject $taxHelper */
-        $object = $this->getMockBuilder('Magento\Framework\Pricing\Object\SaleableInterface')->getMock();
-        $model = new Adjustment($weeeHelper);
-
-        // Avoid execution of irrelevant functionality
-        $weeeHelper->expects($this->any())
+        $object = $this->getMockForAbstractClass('Magento\Framework\Pricing\Object\SaleableInterface');
+
+        $this->weeeHelper->expects($this->any())
             ->method('getAmount')
             ->will($this->returnValue($amountOld));
 
-        // Run tested method
-        $result = $model->applyAdjustment($amount, $object);
-
-        // Check expectations
-        $this->assertInternalType('float', $result);
-        $this->assertEquals($expectedResult, $result);
+        $this->assertEquals($expectedResult, $this->adjustment->applyAdjustment($amount, $object));
     }
 
     /**
@@ -184,20 +143,44 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
         ];
     }
 
-    public function testIsExcludedWith()
+    /**
+     * @dataProvider isExcludedWithDataProvider
+     * @param string $adjustmentCode
+     * @param bool $expectedResult
+     */
+    public function testIsExcludedWith($adjustmentCode, $expectedResult)
     {
-        $adjustmentCode = 'some_random_adjustment_code123';
+        $this->assertEquals($expectedResult, $this->adjustment->isExcludedWith($adjustmentCode));
+    }
 
-        // Instantiate/mock objects
-        /** @var WeeeHelper|\PHPUnit_Framework_MockObject_MockObject $weeeHelper */
-        $weeeHelper = $this->getMockBuilder('Magento\Weee\Helper\Data')->disableOriginalConstructor()->getMock();
-        $model = new Adjustment($weeeHelper);
+    public function isExcludedWithDataProvider()
+    {
+        return [
+            ['weee', true],
+            ['tax', true],
+            ['not_tax_and_not_weee', false]
+        ];
+    }
 
-        // Run tested method
-        $result = $model->isExcludedWith($adjustmentCode);
+    /**
+     * @dataProvider getSortOrderProvider
+     * @param bool $isTaxable
+     * @param int $expectedResult
+     */
+    public function testGetSortOrder($isTaxable, $expectedResult)
+    {
+        $this->weeeHelper->expects($this->any())
+            ->method('isTaxable')
+            ->will($this->returnValue($isTaxable));
+
+        $this->assertEquals($expectedResult, $this->adjustment->getSortOrder());
+    }
 
-        // Check expectations
-        $this->assertInternalType('bool', $result);
-        $this->assertFalse($result);
+    public function getSortOrderProvider()
+    {
+        return [
+            [true, $this->sortOrder],
+            [false, -1]
+        ];
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Weee/Pricing/Render/AdjustmentTest.php b/dev/tests/unit/testsuite/Magento/Weee/Pricing/Render/AdjustmentTest.php
index 0b75a622ed6909db93af0cf9412219ef08fbd1ec..ca5c52ed5b9f95e9a6fd02485ce828a177853bde 100644
--- a/dev/tests/unit/testsuite/Magento/Weee/Pricing/Render/AdjustmentTest.php
+++ b/dev/tests/unit/testsuite/Magento/Weee/Pricing/Render/AdjustmentTest.php
@@ -103,7 +103,7 @@ class AdjustmentTest extends \PHPUnit_Framework_TestCase
      */
     public function testGetAdjustmentCode()
     {
-        $this->assertEquals(\Magento\Weee\Pricing\Adjustment::CODE, $this->model->getAdjustmentCode());
+        $this->assertEquals(\Magento\Weee\Pricing\Adjustment::ADJUSTMENT_CODE, $this->model->getAdjustmentCode());
     }
 
     /**
diff --git a/dev/tools/Magento/Tools/Dependency/generate/bootstrap.php b/dev/tools/Magento/Tools/Dependency/generate/bootstrap.php
index feed42696b77abbd291b89948d50b3eee677c2e2..88d4e6ed57b5d7daa012983f1295cb0bfa5de8c5 100644
--- a/dev/tools/Magento/Tools/Dependency/generate/bootstrap.php
+++ b/dev/tools/Magento/Tools/Dependency/generate/bootstrap.php
@@ -25,10 +25,6 @@
 define('BP', realpath(__DIR__ . '/../../../../../../') . '/');
 
 require_once BP . 'app/autoload.php';
-\Magento\Framework\Autoload\IncludePath::addIncludePath(
-    array(
-        BP . 'dev/tests/static/framework',
-        BP . 'dev/tools',
-        BP . '/lib'
-    )
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(
+    array(BP . 'dev/tests/static/framework', BP . 'dev/tools', BP . '/lib')
 );
diff --git a/dev/tools/Magento/Tools/Di/compiler.php b/dev/tools/Magento/Tools/Di/compiler.php
index 00ed524ed74fa9d7ae9c6d0ec12288f704e41863..c9e9cfb26c4237ddf3d026e866080ac5084f8fb0 100644
--- a/dev/tools/Magento/Tools/Di/compiler.php
+++ b/dev/tools/Magento/Tools/Di/compiler.php
@@ -49,7 +49,7 @@ try {
     $opt->parse();
 
     $generationDir = $opt->getOption('generation') ? $opt->getOption('generation') : $rootDir . '/var/generation';
-    \Magento\Framework\Autoload\IncludePath::addIncludePath($generationDir);
+    (new \Magento\Framework\Autoload\IncludePath())->addIncludePath($generationDir);
 
     $diDir = $opt->getOption('di') ? $opt->getOption('di') : $rootDir . '/var/di';
     $compiledFile = $diDir . '/definitions.php';
diff --git a/dev/tools/Magento/Tools/Di/entity_generator.php b/dev/tools/Magento/Tools/Di/entity_generator.php
index 9e04221f156688ae1ac32fbc33bdfa0182ca6e58..84ab6640ec8fdbae52ff44fd48ee18226b5a069f 100644
--- a/dev/tools/Magento/Tools/Di/entity_generator.php
+++ b/dev/tools/Magento/Tools/Di/entity_generator.php
@@ -73,7 +73,7 @@ try {
     exit($example);
 }
 
-\Magento\Framework\Autoload\IncludePath::addIncludePath($generationDir);
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath($generationDir);
 
 //reinit generator with correct generation path
 $io = new \Magento\Framework\Code\Generator\Io(new \Magento\Framework\Filesystem\Driver\File(), null, $generationDir);
diff --git a/dev/tools/Magento/Tools/Layout/xmlUpdater.php b/dev/tools/Magento/Tools/Layout/xmlUpdater.php
index 385577a07dd38e0f3f76f8ea009d99ef5bf2c0c4..89c4522dd41cac75fd2894752fcb4a26e1afc512 100644
--- a/dev/tools/Magento/Tools/Layout/xmlUpdater.php
+++ b/dev/tools/Magento/Tools/Layout/xmlUpdater.php
@@ -26,7 +26,7 @@ $basePath = realpath(__DIR__ . '/../../../../../');
 require_once $basePath . '/app/autoload.php';
 require __DIR__ . '/Formatter.php';
 
-\Magento\Framework\Autoload\IncludePath::addIncludePath(array($basePath . '/lib'));
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(array($basePath . '/lib'));
 
 try {
     $opt = new \Zend_Console_Getopt(
diff --git a/dev/tools/Magento/Tools/Migration/Acl/db.php b/dev/tools/Magento/Tools/Migration/Acl/db.php
index 85f3bdf94039e50c176535e35e88bb7e0df602c4..abf7626b4b3cdd00f779f673a6608c15149344f5 100644
--- a/dev/tools/Magento/Tools/Migration/Acl/db.php
+++ b/dev/tools/Magento/Tools/Migration/Acl/db.php
@@ -26,7 +26,7 @@
 
 $rootDir = realpath(__DIR__ . '/../../../..');
 require $rootDir . '/app/autoload.php';
-\Magento\Framework\Autoload\IncludePath::addIncludePath(array($rootDir . '/lib', $rootDir . '/dev'));
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(array($rootDir . '/lib', $rootDir . '/dev'));
 $defaultReportFile = 'report.log';
 
 try {
diff --git a/dev/tools/Magento/Tools/Migration/system_config.php b/dev/tools/Magento/Tools/Migration/system_config.php
index 0229cb8465ee1b277eea2263e06f551923767f41..0a75b4414ad64e239aaa7ef8243e56a526e2b269 100644
--- a/dev/tools/Magento/Tools/Migration/system_config.php
+++ b/dev/tools/Magento/Tools/Migration/system_config.php
@@ -23,7 +23,6 @@
  * @copyright  Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
-
 use Magento\Framework\Autoload\IncludePath;
 use Magento\Tools\Migration\System\Configuration\Formatter;
 use Magento\Tools\Migration\System\Configuration\Generator;
@@ -40,7 +39,7 @@ use Magento\Tools\Migration\System\Configuration\Logger as Logger;
 
 $rootDir = realpath(__DIR__ . '../../../../../../');
 require __DIR__ . '/../../../../../app/autoload.php';
-IncludePath::addIncludePath(array($rootDir . '/lib', $rootDir . '/dev/tools'));
+(new IncludePath())->addIncludePath(array($rootDir . '/lib', $rootDir . '/dev'));
 $defaultReportFile = 'report.log';
 
 try {
diff --git a/dev/tools/Magento/Tools/View/generator.php b/dev/tools/Magento/Tools/View/generator.php
index 6146d28c124c8ca46121765f85fcde8b056d9f7c..cc7d2193f934fcff5d3be28dd6c106f10c14d5f1 100644
--- a/dev/tools/Magento/Tools/View/generator.php
+++ b/dev/tools/Magento/Tools/View/generator.php
@@ -28,7 +28,7 @@
  */
 
 require __DIR__ . '/../../../../../app/bootstrap.php';
-\Magento\Framework\Autoload\IncludePath::addIncludePath(__DIR__ . '/../../../');
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(__DIR__ . '/../../../');
 
 /**
  * Command line usage help
diff --git a/dev/tools/bootstrap.php b/dev/tools/bootstrap.php
index 7dc8a7ab85e48d2021c46f6ad1182895e520a062..851c4dd51fd19f6bb0181e81cb16d11104a53979 100644
--- a/dev/tools/bootstrap.php
+++ b/dev/tools/bootstrap.php
@@ -23,7 +23,7 @@
  */
 require_once __DIR__ . '/../../app/autoload.php';
 define('BP', __DIR__ . '/../..');
-\Magento\Framework\Autoload\IncludePath::addIncludePath(
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(
     array(
         BP . '/app/code',
         BP . '/lib',
diff --git a/dev/tools/layout/xml-updater.php b/dev/tools/layout/xml-updater.php
index d8f78e3b800ecdc218c62fb34fc045790e652d83..6179cb4edb690bc648ad54376c80f4f0da068da9 100644
--- a/dev/tools/layout/xml-updater.php
+++ b/dev/tools/layout/xml-updater.php
@@ -26,7 +26,7 @@ $basePath = realpath(__DIR__ . '/../../../');
 require_once $basePath . '/app/autoload.php';
 require __DIR__ . '/Formatter.php';
 
-\Magento\Framework\Autoload\IncludePath::addIncludePath(array(
+(new \Magento\Framework\Autoload\IncludePath())->addIncludePath(array(
     $basePath . '/lib',
 ));
 
diff --git a/lib/Magento/Framework/App/Http.php b/lib/Magento/Framework/App/Http.php
index 7b580f0c9b4e5445bedaf2402c97e7a57e44fbe7..7048fd52ddfa223962e40d735ce2da124f1051d7 100644
--- a/lib/Magento/Framework/App/Http.php
+++ b/lib/Magento/Framework/App/Http.php
@@ -144,7 +144,7 @@ class Http implements \Magento\Framework\AppInterface
                         }
                     }
                     require_once $this->_filesystem->getPath(Filesystem::PUB_DIR) . '/errors/report.php';
-                    $processor = new \Error_Processor($this->_response);
+                    $processor = new \Magento\Framework\Error\Processor($this->_response);
                     $processor->saveReport($reportData);
                     $this->_response = $processor->processReport();
                 }
diff --git a/lib/Magento/Framework/App/ObjectManagerFactory.php b/lib/Magento/Framework/App/ObjectManagerFactory.php
index 7e4db4d5e85394cb53a1cec0c02b684a576a1d67..583e8b40dcadf81b9be2de21d3bf4e3d1d4fb2ed 100644
--- a/lib/Magento/Framework/App/ObjectManagerFactory.php
+++ b/lib/Magento/Framework/App/ObjectManagerFactory.php
@@ -73,7 +73,7 @@ class ObjectManagerFactory
         ) ? $arguments[Filesystem::PARAM_APP_DIRS] : array();
         $directoryList = new DirectoryList($rootDir, $directories);
 
-        \Magento\Framework\Autoload\IncludePath::addIncludePath(
+        (new \Magento\Framework\Autoload\IncludePath())->addIncludePath(
             array($directoryList->getDir(Filesystem::GENERATION_DIR))
         );
 
diff --git a/lib/Magento/Framework/AppInterface.php b/lib/Magento/Framework/AppInterface.php
index 27d31ec50a9c8b6cdc78d6feed3b42d5cac8c4e1..aa8866c27a1513d5abe7dbf44bb035075bcc1252 100644
--- a/lib/Magento/Framework/AppInterface.php
+++ b/lib/Magento/Framework/AppInterface.php
@@ -35,7 +35,7 @@ interface AppInterface
     /**
      * Magento version
      */
-    const VERSION = '2.0.0.0-dev75';
+    const VERSION = '2.0.0.0-dev76';
 
     /**
      * Launch application
diff --git a/lib/Magento/Framework/Autoload/IncludePath.php b/lib/Magento/Framework/Autoload/IncludePath.php
index 2fe513e6cafb125cec3f763871a5aef4418e0ef7..9c01fcad1a05216e91a1812ced032f565771880a 100644
--- a/lib/Magento/Framework/Autoload/IncludePath.php
+++ b/lib/Magento/Framework/Autoload/IncludePath.php
@@ -38,9 +38,9 @@ class IncludePath
      * @param string $class
      * @return string|bool
      */
-    public static function getFile($class)
+    public function getFile($class)
     {
-        $relativePath = self::getFilePath($class);
+        $relativePath = $this->getFilePath($class);
         return stream_resolve_include_path($relativePath);
     }
 
@@ -51,7 +51,7 @@ class IncludePath
      * @param string $class
      * @return string
      */
-    public static function getFilePath($class)
+    public function getFilePath($class)
     {
         if (strpos($class, self::NS_SEPARATOR) !== false) {
             $class = ltrim(str_replace(self::NS_SEPARATOR, '_', $class), '_');
@@ -66,7 +66,7 @@ class IncludePath
      * @param bool $prepend Whether to prepend paths or to append them
      * @return void
      */
-    public static function addIncludePath($path, $prepend = true)
+    public function addIncludePath($path, $prepend = true)
     {
         $includePathExtra = implode(PATH_SEPARATOR, (array)$path);
         $includePath = get_include_path();
@@ -85,9 +85,9 @@ class IncludePath
      * @param string $class
      * @return void
      */
-    public static function load($class)
+    public function load($class)
     {
-        $file = self::getFile($class);
+        $file = $this->getFile($class);
         if ($file) {
             include $file;
         }
diff --git a/lib/Magento/Framework/Code/Generator.php b/lib/Magento/Framework/Code/Generator.php
index 9f0804de25ecf567ae0663a53f935f2bac7126c6..058a23f7ed9148567496fee067a7cc235f90b94e 100644
--- a/lib/Magento/Framework/Code/Generator.php
+++ b/lib/Magento/Framework/Code/Generator.php
@@ -107,7 +107,7 @@ class Generator
 
         // check if file already exists
         $autoloader = $this->_autoloader;
-        if ($autoloader::getFile($className)) {
+        if ($autoloader->getFile($className)) {
             return self::GENERATION_SKIP;
         }
 
diff --git a/lib/Magento/Framework/Code/Generator/Autoloader.php b/lib/Magento/Framework/Code/Generator/Autoloader.php
index e8701863f41d354b859ca050a4eea5323fb17c8f..c98b83ac674f0d049bf8413edd1c637222b6301a 100644
--- a/lib/Magento/Framework/Code/Generator/Autoloader.php
+++ b/lib/Magento/Framework/Code/Generator/Autoloader.php
@@ -48,7 +48,7 @@ class Autoloader
     {
         if (!class_exists($className)) {
             if (\Magento\Framework\Code\Generator::GENERATION_SUCCESS === $this->_generator->generateClass($className)) {
-                \Magento\Framework\Autoload\IncludePath::load($className);
+                (new \Magento\Framework\Autoload\IncludePath())->load($className);
             }
         }
     }
diff --git a/lib/Magento/Framework/Code/Generator/EntityAbstract.php b/lib/Magento/Framework/Code/Generator/EntityAbstract.php
index c57eb698c7f2f6fb605272149cb6342685e4ca59..6f1cb6c1f62f87f1fb18f0cc91e84e8bc1fff53b 100644
--- a/lib/Magento/Framework/Code/Generator/EntityAbstract.php
+++ b/lib/Magento/Framework/Code/Generator/EntityAbstract.php
@@ -288,13 +288,13 @@ abstract class EntityAbstract
             $filePath = stream_resolve_include_path(str_replace('_', '/', $controllerPath) . '.php');
             $isSourceClassValid = !empty($filePath);
         } else {
-            $isSourceClassValid = $autoloader::getFile($sourceClassName);
+            $isSourceClassValid = $autoloader->getFile($sourceClassName);
         }
 
         if (!$isSourceClassValid) {
             $this->_addError('Source class ' . $sourceClassName . ' doesn\'t exist.');
             return false;
-        } elseif ($autoloader::getFile($resultClassName)) {
+        } elseif ($autoloader->getFile($resultClassName)) {
             $this->_addError('Result class ' . $resultClassName . ' already exists.');
             return false;
         } elseif (!$this->_ioObject->makeGenerationDirectory()) {
diff --git a/lib/Magento/Framework/Code/Generator/Io.php b/lib/Magento/Framework/Code/Generator/Io.php
index 57ff61a71d0da15028a01967f97e7c0687655957..5f4e0c85fe39a68b884d0c36e0a75eab9747b1c1 100644
--- a/lib/Magento/Framework/Code/Generator/Io.php
+++ b/lib/Magento/Framework/Code/Generator/Io.php
@@ -107,7 +107,7 @@ class Io
     public function getResultFileName($className)
     {
         $autoloader = $this->_autoloader;
-        $resultFileName = $autoloader::getFilePath($className);
+        $resultFileName = $autoloader->getFilePath($className);
         return $this->_generationDirectory . $resultFileName;
     }
 
diff --git a/lib/Magento/Framework/Data/Form/Element/Label.php b/lib/Magento/Framework/Data/Form/Element/Label.php
index 94fda10b579c51e3c9f9afa044237d12bf682e21..5308d0b3d1c2eac52b37bda9b1673bafa4ec489f 100644
--- a/lib/Magento/Framework/Data/Form/Element/Label.php
+++ b/lib/Magento/Framework/Data/Form/Element/Label.php
@@ -59,8 +59,7 @@ class Label extends \Magento\Framework\Data\Form\Element\AbstractElement
     public function getElementHtml()
     {
         $html = $this->getBold() ? '<div class="control-value special">' : '<div class="control-value">';
-        $html .= $this->getEscapedValue();
-        $html .= $this->getBold() ? '</div>' : '</div>';
+        $html .= $this->getEscapedValue() . '</div>';
         $html .= $this->getAfterElementHtml();
         return $html;
     }
diff --git a/lib/Magento/Framework/Data/Form/Element/Note.php b/lib/Magento/Framework/Data/Form/Element/Note.php
index 91667b72ea96e3a9d0d3328ddf25efc2f34e0bd4..e4d7448632dd3a635af587f21eee8150e259f5c0 100644
--- a/lib/Magento/Framework/Data/Form/Element/Note.php
+++ b/lib/Magento/Framework/Data/Form/Element/Note.php
@@ -58,8 +58,13 @@ class Note extends AbstractElement
      */
     public function getElementHtml()
     {
-        $html = '<div id="' . $this->getHtmlId() . '" class="control-value">' . $this->getText() . '</div>';
-        $html .= $this->getAfterElementHtml();
+        $html = $this->getBeforeElementHtml()
+            . '<div id="'
+            . $this->getHtmlId()
+            . '" class="control-value">'
+            . $this->getText()
+            . '</div>'
+            . $this->getAfterElementHtml();
         return $html;
     }
 }
diff --git a/lib/Magento/Framework/Filesystem/File/ReadFactory.php b/lib/Magento/Framework/Filesystem/File/ReadFactory.php
index 83860377a334d892e4668c50c6c98c7aa0961c00..c3cef19a6cfddd80252094a4595f0117c79083bd 100644
--- a/lib/Magento/Framework/Filesystem/File/ReadFactory.php
+++ b/lib/Magento/Framework/Filesystem/File/ReadFactory.php
@@ -50,7 +50,8 @@ class ReadFactory
      */
     public function create($path, $protocol = null, DriverInterface $driver = null)
     {
-        $driver = $protocol ? $this->driverFactory->get($protocol, get_class($driver)) : $driver;
+        $driverClassName = is_null($driver) ? null : get_class($driver);
+        $driver = $protocol ? $this->driverFactory->get($protocol, $driverClassName) : $driver;
         return new \Magento\Framework\Filesystem\File\Read($path, $driver);
     }
 }
diff --git a/lib/Magento/Framework/Less/File/Source/Base.php b/lib/Magento/Framework/Less/File/Source/Base.php
index 42b50514f7227e55568774b248ce3f1f1a554804..2f03cd47f09f59744e348a4d7ecc4b35f70b40c9 100644
--- a/lib/Magento/Framework/Less/File/Source/Base.php
+++ b/lib/Magento/Framework/Less/File/Source/Base.php
@@ -79,7 +79,7 @@ class Base implements SourceInterface
                 continue;
             }
             $moduleFull = "{$matches['namespace']}_{$matches['module']}";
-            $result[] = $this->fileFactory->create($filename, $moduleFull, $theme);
+            $result[] = $this->fileFactory->create($filename, $moduleFull);
         }
         return $result;
     }
diff --git a/lib/Magento/Framework/Less/File/Source/Theme.php b/lib/Magento/Framework/Less/File/Source/Theme.php
index bf2f648195a9d0eb063c161aff12bab175df9a4d..8f76b7c0fc0a3b399396d213fe8fad4659e556c2 100644
--- a/lib/Magento/Framework/Less/File/Source/Theme.php
+++ b/lib/Magento/Framework/Less/File/Source/Theme.php
@@ -75,7 +75,7 @@ class Theme implements SourceInterface
             if (!preg_match($pattern, $filename, $matches)) {
                 continue;
             }
-            $result[] = $this->fileFactory->create($filename, $matches['moduleName'], $theme);
+            $result[] = $this->fileFactory->create($filename, $matches['moduleName']);
         }
 
         return $result;
diff --git a/lib/Magento/Framework/Pricing/Adjustment/AdjustmentInterface.php b/lib/Magento/Framework/Pricing/Adjustment/AdjustmentInterface.php
index a5398106eb74a0b650cf53ca45861e0992d3691a..456c5ba99bfae00fae255a497bee6c6c6df2af26 100644
--- a/lib/Magento/Framework/Pricing/Adjustment/AdjustmentInterface.php
+++ b/lib/Magento/Framework/Pricing/Adjustment/AdjustmentInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/lib/Magento/Framework/Pricing/Adjustment/Calculator.php b/lib/Magento/Framework/Pricing/Adjustment/Calculator.php
index ae19f54451471b4128058a25f2a795c8f39b3023..3c71b2e50f30e889ca45e94bedc10d5f9b912f8d 100644
--- a/lib/Magento/Framework/Pricing/Adjustment/Calculator.php
+++ b/lib/Magento/Framework/Pricing/Adjustment/Calculator.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -46,6 +48,9 @@ class Calculator implements CalculatorInterface
     }
 
     /**
+     * Retrieve Amount object based on given float amount, product and exclude option.
+     * It is possible to pass "true" or adjustment code to exclude all or specific adjustment from an amount.
+     *
      * @param float|string $amount
      * @param SaleableInterface $saleableItem
      * @param null|bool|string $exclude
diff --git a/lib/Magento/Framework/Pricing/Adjustment/CalculatorInterface.php b/lib/Magento/Framework/Pricing/Adjustment/CalculatorInterface.php
index c7dca4ea6afa8b00b10906965f1358a4598309a4..1ce2dee55f85e0a5d58949f8a7cea13b7244e6f1 100644
--- a/lib/Magento/Framework/Pricing/Adjustment/CalculatorInterface.php
+++ b/lib/Magento/Framework/Pricing/Adjustment/CalculatorInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/lib/Magento/Framework/Pricing/Adjustment/Collection.php b/lib/Magento/Framework/Pricing/Adjustment/Collection.php
index 7c0f33fdadbb0e6a7a48ef1bc0c33a4b468e1225..7bc6a43b27e1b7b9e1b375d9e8b8cc6614b78d42 100644
--- a/lib/Magento/Framework/Pricing/Adjustment/Collection.php
+++ b/lib/Magento/Framework/Pricing/Adjustment/Collection.php
@@ -18,14 +18,14 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 
 namespace Magento\Framework\Pricing\Adjustment;
 
-use Magento\Framework\Pricing\Adjustment\AdjustmentInterface;
-
 /**
  * Adjustment collection model
  */
diff --git a/lib/Magento/Framework/Pricing/Adjustment/Factory.php b/lib/Magento/Framework/Pricing/Adjustment/Factory.php
index 107a8d7f8b57ba4853077b8c126b248d70005136..8192001c7d4119fe7602f8736fb28731ac3443a3 100644
--- a/lib/Magento/Framework/Pricing/Adjustment/Factory.php
+++ b/lib/Magento/Framework/Pricing/Adjustment/Factory.php
@@ -56,12 +56,12 @@ class Factory
      */
     public function create($className, array $arguments = [])
     {
-        $price = $this->objectManager->create($className, $arguments);
-        if (!$price instanceof AdjustmentInterface) {
+        $adjustment = $this->objectManager->create($className, $arguments);
+        if (!$adjustment instanceof AdjustmentInterface) {
             throw new \InvalidArgumentException(
                 $className . ' doesn\'t implement \Magento\Framework\Pricing\Adjustment\AdjustmentInterface'
             );
         }
-        return $price;
+        return $adjustment;
     }
 }
diff --git a/lib/Magento/Framework/Pricing/Adjustment/Pool.php b/lib/Magento/Framework/Pricing/Adjustment/Pool.php
index dd6a7733b44ac7b3919038dc32eaf3ddeabe784b..64d94aa307ebd6e78c2658101a9444a027ba5adf 100644
--- a/lib/Magento/Framework/Pricing/Adjustment/Pool.php
+++ b/lib/Magento/Framework/Pricing/Adjustment/Pool.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/lib/Magento/Framework/Pricing/Amount/AmountInterface.php b/lib/Magento/Framework/Pricing/Amount/AmountInterface.php
index d8140403a2a138d334505c924dc525650b4f3b93..c84698ac19d65702ba9ace62ba45934940d8c672 100644
--- a/lib/Magento/Framework/Pricing/Amount/AmountInterface.php
+++ b/lib/Magento/Framework/Pricing/Amount/AmountInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/lib/Magento/Framework/Pricing/Amount/Base.php b/lib/Magento/Framework/Pricing/Amount/Base.php
index 02876f2c2b8bae92112a0601cef51b47bc6b9e9e..1b3b2f0bcfddc2a6c929412b430d15f77fd465e8 100644
--- a/lib/Magento/Framework/Pricing/Amount/Base.php
+++ b/lib/Magento/Framework/Pricing/Amount/Base.php
@@ -173,11 +173,9 @@ class Base implements AmountInterface
     {
         $this->baseAmount = $this->amount;
         $this->totalAdjustmentAmount = 0.;
-        if ($this->adjustmentAmounts) {
-            foreach ($this->adjustmentAmounts as $amount) {
-                $this->baseAmount -= $amount;
-                $this->totalAdjustmentAmount += $amount;
-            }
+        foreach ($this->adjustmentAmounts as $amount) {
+            $this->baseAmount -= $amount;
+            $this->totalAdjustmentAmount += $amount;
         }
     }
 }
diff --git a/lib/Magento/Framework/Pricing/Object/SaleableInterface.php b/lib/Magento/Framework/Pricing/Object/SaleableInterface.php
index ab93e715a4c2f5fdc7dcc66216b382c50808fccc..5e9a6ac8fe36d6609d4a01dfc8873f69210c026b 100644
--- a/lib/Magento/Framework/Pricing/Object/SaleableInterface.php
+++ b/lib/Magento/Framework/Pricing/Object/SaleableInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -25,28 +27,35 @@
 namespace Magento\Framework\Pricing\Object;
 
 /**
- * //@TODO Templates invoke methods that are not defined in the interface:
- *  getProductUrl():
- *      /app\code\Magento\Catalog\view\frontend\product\price\final_price.phtml
- *      /app\code\Magento\Catalog\view\frontend\product\price\msrp_item.phtml
- *
- *  getId() - /app\code\Magento\Catalog\view\frontend\product\price\final_price.phtml
- *  getMsrp() - /app\code\Magento\Catalog\view\frontend\product\price\msrp_item.phtml
+ * Interface SaleableInterface
  */
 interface SaleableInterface
 {
     /**
+     * Returns PriceInfo container of saleable item
+     *
      * @return \Magento\Framework\Pricing\PriceInfoInterface
      */
     public function getPriceInfo();
 
     /**
+     * Returns type identifier of saleable item
+     *
      * @return string
      */
     public function getTypeId();
 
     /**
+     * Returns identifier of saleable item
+     *
      * @return int
      */
     public function getId();
+
+    /**
+     * Returns quantity of saleable item
+     *
+     * @return float
+     */
+    public function getQty();
 }
diff --git a/lib/Magento/Framework/Pricing/Price/AbstractPrice.php b/lib/Magento/Framework/Pricing/Price/AbstractPrice.php
new file mode 100644
index 0000000000000000000000000000000000000000..d00f8f38eb21ba478a0564586ebce6ebf82ec022
--- /dev/null
+++ b/lib/Magento/Framework/Pricing/Price/AbstractPrice.php
@@ -0,0 +1,134 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Framework\Pricing\Price;
+
+use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Framework\Pricing\Amount\AmountInterface;
+use Magento\Framework\Pricing\Adjustment\CalculatorInterface;
+use Magento\Framework\Pricing\PriceInfoInterface;
+
+/**
+ * Class AbstractPrice
+ * Should be the base for creating any Price type class
+ */
+abstract class AbstractPrice implements PriceInterface
+{
+    /**
+     * Default price type
+     */
+    const PRICE_CODE = 'abstract_price';
+
+    /**
+     * @var AmountInterface
+     */
+    protected $amount;
+
+    /**
+     * @var \Magento\Framework\Pricing\Adjustment\Calculator
+     */
+    protected $calculator;
+
+    /**
+     * @var SaleableInterface
+     */
+    protected $product;
+
+    /**
+     * @var string
+     */
+    protected $priceType;
+
+    /**
+     * @var float
+     */
+    protected $quantity;
+
+    /**
+     * @var PriceInfoInterface
+     */
+    protected $priceInfo;
+
+    /**
+     * @var bool|float
+     */
+    protected $value;
+
+    /**
+     * @param SaleableInterface $saleableItem
+     * @param float $quantity
+     * @param CalculatorInterface $calculator
+     */
+    public function __construct(
+        SaleableInterface $saleableItem,
+        $quantity,
+        CalculatorInterface $calculator
+    ) {
+        $this->product = $saleableItem;
+        $this->quantity = $quantity;
+        $this->calculator = $calculator;
+        $this->priceInfo = $saleableItem->getPriceInfo();
+    }
+
+    /**
+     * Get price value
+     *
+     * @return float|bool
+     */
+    abstract public function getValue();
+
+    /**
+     * Get Price Amount object
+     *
+     * @return AmountInterface
+     */
+    public function getAmount()
+    {
+        if (null === $this->amount) {
+            $this->amount = $this->calculator->getAmount($this->getValue(), $this->product);
+        }
+        return $this->amount;
+    }
+
+    /**
+     * @param float $amount
+     * @param null|bool|string $exclude
+     * @return AmountInterface|bool|float
+     */
+    public function getCustomAmount($amount = null, $exclude = null)
+    {
+        $amount = (null === $amount) ? $this->getValue() : $amount;
+        return $this->calculator->getAmount($amount, $this->product, $exclude);
+    }
+
+    /**
+     * Get price type code
+     *
+     * @return string
+     */
+    public function getPriceCode()
+    {
+        return static::PRICE_CODE;
+    }
+}
diff --git a/lib/Magento/Framework/Pricing/Price/BasePriceProviderInterface.php b/lib/Magento/Framework/Pricing/Price/BasePriceProviderInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..00634ae0f4840fff05aeac7e9bfbc4327a9875c2
--- /dev/null
+++ b/lib/Magento/Framework/Pricing/Price/BasePriceProviderInterface.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @category    Magento
+ * @package     Magento_Pricing
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Framework\Pricing\Price;
+
+/**
+ * Interface BasePriceProviderInterface
+ */
+interface BasePriceProviderInterface
+{
+
+}
diff --git a/lib/Magento/Framework/Pricing/Price/Collection.php b/lib/Magento/Framework/Pricing/Price/Collection.php
new file mode 100644
index 0000000000000000000000000000000000000000..ba2cb3af39eefd7f574f12ef91dbb003d415bc69
--- /dev/null
+++ b/lib/Magento/Framework/Pricing/Price/Collection.php
@@ -0,0 +1,149 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Framework\Pricing\Price;
+
+use \Magento\Framework\ObjectManager;
+use \Magento\Framework\Pricing\Object\SaleableInterface;
+
+/**
+ * Class Collection
+ */
+class Collection implements \Iterator
+{
+    /**
+     * @var Pool
+     */
+    protected $pool;
+
+    /**
+     * @var \Magento\Framework\Pricing\Object\SaleableInterface
+     */
+    protected $saleableItem;
+
+    /**
+     * @var \Magento\Framework\Pricing\Price\Factory
+     */
+    protected $priceFactory;
+
+    /**
+     * @var float
+     */
+    protected $quantity;
+
+    /**
+     * @var array
+     */
+    protected $contains;
+
+    /**
+     * @var array
+     */
+    protected $excludes;
+
+    /**
+     * Constructor
+     *
+     * @param SaleableInterface $saleableItem
+     * @param Factory $priceFactory
+     * @param Pool $pool
+     * @param float $quantity
+     */
+    public function __construct(
+        SaleableInterface $saleableItem,
+        Factory $priceFactory,
+        Pool $pool,
+        $quantity
+    ) {
+        $this->saleableItem = $saleableItem;
+        $this->priceFactory = $priceFactory;
+        $this->pool = $pool;
+        $this->quantity = $quantity;
+    }
+
+    /**
+     * Reset the Collection to the first element
+     *
+     * @return mixed|void
+     */
+    public function rewind()
+    {
+        return $this->pool->rewind();
+    }
+
+    /**
+     * Return the current element
+     *
+     * @return \Magento\Framework\Pricing\Price\PriceInterface
+     */
+    public function current()
+    {
+        return $this->get($this->key());
+    }
+
+    /**
+     * Return the key of the current element
+     *
+     * @return string
+     */
+    public function key()
+    {
+        return $this->pool->key();
+    }
+
+    /**
+     * Move forward to next element
+     *
+     * @return mixed|void
+     */
+    public function next()
+    {
+        return $this->pool->next();
+    }
+
+    /**
+     * Checks if current position is valid
+     *
+     * @return bool
+     */
+    public function valid()
+    {
+        return $this->pool->valid();
+    }
+
+    /**
+     * Returns price model by code
+     *
+     * @param string $code
+     * @return PriceInterface
+     */
+    public function get($code)
+    {
+        return $this->priceFactory->create(
+            $this->saleableItem,
+            $this->pool[$code],
+            $this->quantity
+        );
+    }
+}
diff --git a/lib/Magento/Framework/Pricing/Price/Factory.php b/lib/Magento/Framework/Pricing/Price/Factory.php
index 0fb0056269c4dea82f8bbbf52d6dfceeb5bf73b3..22897b2d173daa148b874411dc4f8ff9d56f963d 100644
--- a/lib/Magento/Framework/Pricing/Price/Factory.php
+++ b/lib/Magento/Framework/Pricing/Price/Factory.php
@@ -51,16 +51,16 @@ class Factory
     /**
      * Create Price object for particular product
      *
-     * @param SaleableInterface $salableItem
+     * @param SaleableInterface $saleableItem
      * @param string $className
      * @param float $quantity
      * @param array $arguments
      * @throws \InvalidArgumentException
      * @return \Magento\Framework\Pricing\Price\PriceInterface
      */
-    public function create(SaleableInterface $salableItem, $className, $quantity, array $arguments = [])
+    public function create(SaleableInterface $saleableItem, $className, $quantity, array $arguments = [])
     {
-        $arguments['salableItem'] = $salableItem;
+        $arguments['saleableItem'] = $saleableItem;
         $arguments['quantity'] = $quantity;
         $price = $this->objectManager->create($className, $arguments);
         if (!$price instanceof PriceInterface) {
diff --git a/lib/Magento/Framework/Pricing/Price/Pool.php b/lib/Magento/Framework/Pricing/Price/Pool.php
new file mode 100644
index 0000000000000000000000000000000000000000..c42c39a3873fa9b941ed705d5cb3728c965a4951
--- /dev/null
+++ b/lib/Magento/Framework/Pricing/Price/Pool.php
@@ -0,0 +1,162 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magentocommerce.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magentocommerce.com for more information.
+ *
+ * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+namespace Magento\Framework\Pricing\Price;
+
+/**
+ * Class Pool
+ */
+class Pool implements \Iterator, \ArrayAccess
+{
+    /**
+     * @var \Magento\Framework\Pricing\Price\PriceInterface[]
+     */
+    protected $prices;
+
+    /**
+     * @param array $prices
+     * @param \Iterator $target
+     */
+    public function __construct(
+        array $prices,
+        \Iterator $target = null
+    ) {
+        $this->prices = $prices;
+        foreach ($target ?: [] as $code => $class) {
+            if (empty($this->prices[$code])) {
+                $this->prices[$code] = $class;
+            }
+        }
+    }
+
+    /**
+     * Reset the Collection to the first element
+     *
+     * @return mixed
+     */
+    public function rewind()
+    {
+        return reset($this->prices);
+    }
+
+    /**
+     * Return the current element
+     *
+     * @return mixed
+     */
+    public function current()
+    {
+        return current($this->prices);
+    }
+
+    /**
+     * Return the key of the current element
+     *
+     * @return string
+     */
+    public function key()
+    {
+        return key($this->prices);
+    }
+
+    /**
+     * Move forward to next element
+     *
+     * @return mixed
+     */
+    public function next()
+    {
+        return next($this->prices);
+    }
+
+    /**
+     * Checks if current position is valid
+     *
+     * @return bool
+     */
+    public function valid()
+    {
+        return (bool)$this->key();
+    }
+
+    /**
+     * Returns price class by code
+     *
+     * @param string $code
+     * @return string
+     */
+    public function get($code)
+    {
+        return $this->prices[$code];
+    }
+
+    /**
+     * The value to set.
+     *
+     * @param string $offset
+     * @param string $value
+     * @return void
+     */
+    public function offsetSet($offset, $value)
+    {
+        if (is_null($offset)) {
+            $this->prices[] = $value;
+        } else {
+            $this->prices[$offset] = $value;
+        }
+    }
+
+    /**
+     * The return value will be casted to boolean if non-boolean was returned.
+     *
+     * @param string $offset
+     * @return bool
+     */
+    public function offsetExists($offset)
+    {
+        return isset($this->prices[$offset]);
+    }
+
+    /**
+     * The offset to unset.
+     *
+     * @param string $offset
+     * @return void
+     */
+    public function offsetUnset($offset)
+    {
+        unset($this->prices[$offset]);
+    }
+
+    /**
+     * The offset to retrieve.
+     *
+     * @param string $offset
+     * @return string
+     */
+    public function offsetGet($offset)
+    {
+        return isset($this->prices[$offset]) ? $this->prices[$offset] : null;
+    }
+}
diff --git a/lib/Magento/Framework/Pricing/Price/PriceInterface.php b/lib/Magento/Framework/Pricing/Price/PriceInterface.php
index f38b6973ae54c1974bdc897634f4a1ac01392d9a..066d65fd877a870976850aeec054782d28813e97 100644
--- a/lib/Magento/Framework/Pricing/Price/PriceInterface.php
+++ b/lib/Magento/Framework/Pricing/Price/PriceInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -36,7 +38,7 @@ interface PriceInterface
      *
      * @return string
      */
-    public function getPriceType();
+    public function getPriceCode();
 
     /**
      * Get price value
diff --git a/lib/Magento/Framework/Pricing/PriceComposite.php b/lib/Magento/Framework/Pricing/PriceComposite.php
deleted file mode 100644
index e9a9f9b771e03224f3e45f4f4b0edba5622ae0d0..0000000000000000000000000000000000000000
--- a/lib/Magento/Framework/Pricing/PriceComposite.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
- * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
- */
-
-namespace Magento\Framework\Pricing;
-
-use Magento\Framework\Pricing\Object\SaleableInterface;
-use Magento\Framework\Pricing\Price\Factory as PriceFactory;
-use Magento\Framework\Pricing\Price\PriceInterface;
-
-/**
- * Composite price model
- */
-class PriceComposite
-{
-    /**
-     * @var PriceFactory
-     */
-    protected $priceFactory;
-
-    /**
-     * @var array
-     */
-    protected $metadata;
-
-    /**
-     * @param PriceFactory $priceFactory
-     * @param array $metadata
-     */
-    public function __construct(PriceFactory $priceFactory, array $metadata = [])
-    {
-        $this->priceFactory = $priceFactory;
-        $this->metadata = $metadata;
-    }
-
-    /**
-     * @return array
-     */
-    public function getPriceCodes()
-    {
-        return array_keys($this->metadata);
-    }
-
-    /**
-     * Returns metadata for prices
-     *
-     * @return array
-     */
-    public function getMetadata()
-    {
-        return $this->metadata;
-    }
-
-    /**
-     * @param SaleableInterface $salableItem
-     * @param string $priceCode
-     * @param float $quantity
-     * @return PriceInterface
-     * @throws \InvalidArgumentException
-     */
-    public function createPriceObject(SaleableInterface $salableItem, $priceCode, $quantity)
-    {
-        if (!isset($this->metadata[$priceCode])) {
-            throw new \InvalidArgumentException($priceCode . ' is not registered in prices list');
-        }
-        $className = $this->metadata[$priceCode]['class'];
-        return $this->priceFactory->create($salableItem, $className, $quantity);
-    }
-}
diff --git a/lib/Magento/Framework/Pricing/PriceCurrencyInterface.php b/lib/Magento/Framework/Pricing/PriceCurrencyInterface.php
index 621bc80d65da2c2a4f98a8985a639946ceb05422..91a446753b3c790d34630d923357ce97c6bd0bc4 100644
--- a/lib/Magento/Framework/Pricing/PriceCurrencyInterface.php
+++ b/lib/Magento/Framework/Pricing/PriceCurrencyInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/lib/Magento/Framework/Pricing/PriceInfo/Base.php b/lib/Magento/Framework/Pricing/PriceInfo/Base.php
index 00e4645b03a944da8435bd045873978188180036..18751c3f389236272a0fc2ad959d1ac829013f46 100644
--- a/lib/Magento/Framework/Pricing/PriceInfo/Base.php
+++ b/lib/Magento/Framework/Pricing/PriceInfo/Base.php
@@ -24,33 +24,23 @@
 
 namespace Magento\Framework\Pricing\PriceInfo;
 
-use Magento\Framework\Pricing\Amount\AmountFactory;
 use Magento\Framework\Pricing\PriceInfoInterface;
-use Magento\Framework\Pricing\PriceComposite;
 use Magento\Framework\Pricing\Price\PriceInterface;
 use Magento\Framework\Pricing\Adjustment\Collection;
 use Magento\Framework\Pricing\Adjustment\AdjustmentInterface;
-use Magento\Framework\Pricing\Object\SaleableInterface;
+use Magento\Framework\Pricing\Price\Collection as PriceCollection;
 
 /**
+ * Class Base
  * Price info base model
+ * @package Magento\Framework\Pricing\PriceInfo
  */
 class Base implements PriceInfoInterface
 {
     /**
-     * @var SaleableInterface
+     * @var PriceCollection
      */
-    protected $saleableItem;
-
-    /**
-     * @var PriceComposite
-     */
-    protected $prices;
-
-    /**
-     * @var PriceInterface[]
-     */
-    protected $priceInstances;
+    protected $priceCollection;
 
     /**
      * @var Collection
@@ -58,85 +48,36 @@ class Base implements PriceInfoInterface
     protected $adjustmentCollection;
 
     /**
-     * @var float
-     */
-    protected $quantity;
-
-    /**
-     * @var AmountFactory
-     */
-    protected $amountFactory;
-
-    /**
-     * @param SaleableInterface $saleableItem
-     * @param PriceComposite $prices
+     * @param PriceCollection $prices
      * @param Collection $adjustmentCollection
-     * @param AmountFactory $amountFactory
-     * @param float $quantity
      */
     public function __construct(
-        SaleableInterface $saleableItem,
-        PriceComposite $prices,
-        Collection $adjustmentCollection,
-        AmountFactory $amountFactory,
-        $quantity = self::PRODUCT_QUANTITY_DEFAULT
+        PriceCollection $prices,
+        Collection $adjustmentCollection
     ) {
-        $this->saleableItem = $saleableItem;
-        $this->prices = $prices;
         $this->adjustmentCollection = $adjustmentCollection;
-        $this->amountFactory = $amountFactory;
-        $this->quantity = $quantity;
+        $this->priceCollection = $prices;
     }
 
     /**
-     * @return PriceInterface[]
+     * Returns array of prices
+     *
+     * @return PriceCollection
      */
     public function getPrices()
     {
-        // check if all prices initialized
-        $this->initPrices();
-        return $this->priceInstances;
+        return $this->priceCollection;
     }
 
     /**
-     * Init price types
+     * Returns price by code
      *
-     * @return $this
-     */
-    protected function initPrices()
-    {
-        $prices = $this->prices->getPriceCodes();
-        foreach ($prices as $code) {
-            if (!isset($this->priceInstances[$code])) {
-                $this->priceInstances[$code] = $this->prices->createPriceObject(
-                    $this->saleableItem,
-                    $code,
-                    $this->quantity
-                );
-            }
-        }
-        return $this;
-    }
-
-    /**
      * @param string $priceCode
-     * @param float|null $quantity
      * @return PriceInterface
      */
-    public function getPrice($priceCode, $quantity = null)
+    public function getPrice($priceCode)
     {
-        if (!isset($this->priceInstances[$priceCode]) && $quantity === null) {
-            $this->priceInstances[$priceCode] = $this->prices->createPriceObject(
-                $this->saleableItem,
-                $priceCode,
-                $this->quantity
-            );
-            return $this->priceInstances[$priceCode];
-        } elseif (isset($this->priceInstances[$priceCode]) && $quantity === null) {
-            return $this->priceInstances[$priceCode];
-        } else {
-            return $this->prices->createPriceObject($this->saleableItem, $priceCode, $quantity);
-        }
+        return $this->priceCollection->get($priceCode);
     }
 
     /**
@@ -160,23 +101,4 @@ class Base implements PriceInfoInterface
     {
         return $this->adjustmentCollection->getItemByCode($adjustmentCode);
     }
-
-    /**
-     * Returns prices included in base price
-     *
-     * @return array
-     */
-    public function getPricesIncludedInBase()
-    {
-        $prices = [];
-        foreach ($this->prices->getMetadata() as $code => $price) {
-            if (isset($price['include_in_base_price']) && $price['include_in_base_price']) {
-                $priceModel = $this->getPrice($code, $this->quantity);
-                if ($priceModel->getValue() !== false) {
-                    $prices[] = $priceModel;
-                }
-            }
-        }
-        return $prices;
-    }
 }
diff --git a/lib/Magento/Framework/Pricing/PriceInfo/Factory.php b/lib/Magento/Framework/Pricing/PriceInfo/Factory.php
index 09ad85628bd759ce34fd16e9e56e74931139cebf..753af9fb19a3b2bd2db3ed1d1ad5e31d5757b13f 100644
--- a/lib/Magento/Framework/Pricing/PriceInfo/Factory.php
+++ b/lib/Magento/Framework/Pricing/PriceInfo/Factory.php
@@ -27,6 +27,7 @@
  */
 namespace Magento\Framework\Pricing\PriceInfo;
 
+use Magento\Framework\ObjectManager;
 use Magento\Framework\Pricing\Object\SaleableInterface;
 
 /**
@@ -34,11 +35,6 @@ use Magento\Framework\Pricing\Object\SaleableInterface;
  */
 class Factory
 {
-    /**
-     * Default Price Info class
-     */
-    const DEFAULT_PRICE_INFO_CLASS = 'Magento\Framework\Pricing\PriceInfoInterface';
-
     /**
      * List of Price Info classes by product types
      *
@@ -49,7 +45,7 @@ class Factory
     /**
      * Object Manager
      *
-     * @var \Magento\Framework\ObjectManager
+     * @var ObjectManager
      */
     protected $objectManager;
 
@@ -59,8 +55,10 @@ class Factory
      * @param array $types
      * @param \Magento\Framework\ObjectManager $objectManager
      */
-    public function __construct(array $types, \Magento\Framework\ObjectManager $objectManager)
-    {
+    public function __construct(
+        array $types,
+        ObjectManager $objectManager
+    ) {
         $this->types = $types;
         $this->objectManager = $objectManager;
     }
@@ -76,19 +74,33 @@ class Factory
     public function create(SaleableInterface $saleableItem, array $arguments = [])
     {
         $type = $saleableItem->getTypeId();
-        $className = isset($this->types[$type]) ? $this->types[$type] : self::DEFAULT_PRICE_INFO_CLASS;
 
-        $arguments['saleableItem'] = $saleableItem;
-        if ($saleableItem->getQty()) {
-            $arguments['quantity'] = $saleableItem->getQty();
+        if (isset($this->types[$type]['infoClass'])) {
+            $priceInfo = $this->types[$type]['infoClass'];
+        } else {
+            $priceInfo = $this->types['default']['infoClass'];
         }
-        $priceInfo = $this->objectManager->create($className, $arguments);
 
-        if (!$priceInfo instanceof \Magento\Framework\Pricing\PriceInfoInterface) {
-            throw new \InvalidArgumentException(
-                $className . ' doesn\'t implement \Magento\Framework\Pricing\PriceInfoInterface'
-            );
+        if (isset($this->types[$type]['prices'])) {
+            $priceCollection = $this->types[$type]['prices'];
+        } else {
+            $priceCollection = $this->types['default']['prices'];
         }
-        return $priceInfo;
+
+        $arguments['saleableItem'] = $saleableItem;
+        $quantity = $saleableItem->getQty();
+        if ($quantity) {
+            $arguments['quantity'] = $quantity;
+        }
+
+        $arguments['prices'] = $this->objectManager->create(
+            $priceCollection,
+            [
+                'saleableItem' => $arguments['saleableItem'],
+                'quantity' => $quantity
+            ]
+        );
+
+        return $this->objectManager->create($priceInfo, $arguments);
     }
 }
diff --git a/lib/Magento/Framework/Pricing/PriceInfoInterface.php b/lib/Magento/Framework/Pricing/PriceInfoInterface.php
index 7f29615106ad39373387662d3813fe433c1f4553..247b0cd9e7dfd50da23ad77726527f677945f6c0 100644
--- a/lib/Magento/Framework/Pricing/PriceInfoInterface.php
+++ b/lib/Magento/Framework/Pricing/PriceInfoInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -38,30 +40,32 @@ interface PriceInfoInterface
     const PRODUCT_QUANTITY_DEFAULT = 1.;
 
     /**
+     * Returns array of prices
+     *
      * @return PriceInterface[]
      */
     public function getPrices();
 
     /**
+     * Returns price by code
+     *
      * @param string $priceCode
-     * @param float|null $quantity
      * @return PriceInterface
      */
-    public function getPrice($priceCode, $quantity = null);
+    public function getPrice($priceCode);
 
     /**
+     * Get all registered adjustments
+     *
      * @return AdjustmentInterface[]
      */
     public function getAdjustments();
 
     /**
+     * Get adjustment by code
+     *
      * @param string $adjustmentCode
      * @return AdjustmentInterface
      */
     public function getAdjustment($adjustmentCode);
-
-    /**
-     * @return PriceInterface[]
-     */
-    public function getPricesIncludedInBase();
 }
diff --git a/lib/Magento/Framework/Pricing/Render.php b/lib/Magento/Framework/Pricing/Render.php
index 03f9efb022bfd1b492710bbe57b50a58d3937349..dbd6f5048b4ffce49fd80e2721e6a76ac9101ba0 100644
--- a/lib/Magento/Framework/Pricing/Render.php
+++ b/lib/Magento/Framework/Pricing/Render.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -113,14 +115,7 @@ class Render extends AbstractBlock
 
         // obtain concrete Price Render
         $priceRender = $rendererPool->createPriceRender($priceCode, $saleableItem, $useArguments);
-        if ($priceRender) {
-            //@TODO PriceBoxRenderInterface does not contain toHtml() method
-            $result = $priceRender->toHtml();
-        } else {
-            $result = '';
-        }
-        // return rendered output
-        return $result;
+        return $priceRender->toHtml();
     }
 
     /**
@@ -149,12 +144,6 @@ class Render extends AbstractBlock
 
         // obtain concrete Amount Render
         $amountRender = $rendererPool->createAmountRender($amount, $saleableItem, $price, $useArguments);
-        if ($amountRender) {
-            $result = $amountRender->toHtml();
-        } else {
-            $result = '';
-        }
-        // return rendered output
-        return $result;
+        return $amountRender->toHtml();
     }
 }
diff --git a/lib/Magento/Framework/Pricing/Render/AbstractAdjustment.php b/lib/Magento/Framework/Pricing/Render/AbstractAdjustment.php
index 6da9aeb97f0308d57eeabc755424c30b2734d739..3fe9d92e2c96624430f0ecc79c11d9e9a26624b8 100644
--- a/lib/Magento/Framework/Pricing/Render/AbstractAdjustment.php
+++ b/lib/Magento/Framework/Pricing/Render/AbstractAdjustment.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -63,7 +65,7 @@ abstract class AbstractAdjustment extends Template implements AdjustmentRenderIn
     /**
      * @param AmountRenderInterface $amountRender
      * @param array $arguments
-     * @return void
+     * @return string
      */
     public function render(AmountRenderInterface $amountRender, array $arguments = [])
     {
@@ -136,7 +138,7 @@ abstract class AbstractAdjustment extends Template implements AdjustmentRenderIn
     }
 
     /**
-     * @return void
+     * @return string
      */
     abstract protected function apply();
 }
diff --git a/lib/Magento/Framework/Pricing/Render/AdjustmentRenderInterface.php b/lib/Magento/Framework/Pricing/Render/AdjustmentRenderInterface.php
index 24a38d99cd0d0736a8c8d5d5462cee7296246882..b263114a9614cd0aa273c8472489c1ac9cd2aad4 100644
--- a/lib/Magento/Framework/Pricing/Render/AdjustmentRenderInterface.php
+++ b/lib/Magento/Framework/Pricing/Render/AdjustmentRenderInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/lib/Magento/Framework/Pricing/Render/Amount.php b/lib/Magento/Framework/Pricing/Render/Amount.php
index fd8e5d68b8402955ad7162f5feb7012ff6622421..0c48a1420247817e2b0c0a325aed799c6138a1c5 100644
--- a/lib/Magento/Framework/Pricing/Render/Amount.php
+++ b/lib/Magento/Framework/Pricing/Render/Amount.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -67,7 +69,7 @@ class Amount extends Template implements AmountRenderInterface
     protected $rendererPool;
 
     /**
-     * @var float
+     * @var AmountInterface
      */
     protected $amount;
 
@@ -152,16 +154,6 @@ class Amount extends Template implements AmountRenderInterface
         return $this->price;
     }
 
-    /**
-     * @param string $code
-     * @param string $html
-     * @return void
-     */
-    public function addAdjustmentHtml($code, $html)
-    {
-        $this->adjustmentsHtml[$code] = $html;
-    }
-
     /**
      * @return bool
      */
@@ -183,10 +175,9 @@ class Amount extends Template implements AmountRenderInterface
      */
     protected function _toHtml()
     {
-        // apply Price Adjustment Renders if available
         $adjustmentRenders = $this->getApplicableAdjustmentRenders();
         if ($adjustmentRenders) {
-            $this->applyAdjustments($adjustmentRenders);
+            $this->adjustmentsHtml = $this->getAdjustments($adjustmentRenders);
         }
         $html = parent::_toHtml();
         return $html;
@@ -199,11 +190,7 @@ class Amount extends Template implements AmountRenderInterface
      */
     protected function getApplicableAdjustmentRenders()
     {
-        if (!$this->hasSkipAdjustments()) {
-            return $this->getAdjustmentRenders();
-        } else {
-            return [];
-        }
+        return (!$this->hasSkipAdjustments()) ? $this->getAdjustmentRenders() : [];
     }
 
     /**
@@ -216,15 +203,20 @@ class Amount extends Template implements AmountRenderInterface
 
     /**
      * @param AdjustmentRenderInterface[] $adjustmentRenders
-     * @return void
+     * @return array
      */
-    protected function applyAdjustments($adjustmentRenders)
+    protected function getAdjustments($adjustmentRenders)
     {
         $this->setAdjustmentCssClasses($adjustmentRenders);
         $data = $this->getData();
+        $adjustments = [];
         foreach ($adjustmentRenders as $adjustmentRender) {
-            $adjustmentRender->render($this, $data);
+            $html = $adjustmentRender->render($this, $data);
+            if (trim($html)) {
+                $adjustments[$adjustmentRender->getAdjustmentCode()] = $html;
+            }
         }
+        return $adjustments;
     }
 
     /**
diff --git a/lib/Magento/Framework/Pricing/Render/AmountRenderInterface.php b/lib/Magento/Framework/Pricing/Render/AmountRenderInterface.php
index 1bbf8a69bbdbc2504024ae0a8216239e02ad87f9..87e60dc7a0ef1f9bbed96a7088c35d4cb616643c 100644
--- a/lib/Magento/Framework/Pricing/Render/AmountRenderInterface.php
+++ b/lib/Magento/Framework/Pricing/Render/AmountRenderInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -63,13 +65,6 @@ interface AmountRenderInterface
      */
     public function getPrice();
 
-    /**
-     * @param string $code
-     * @param string $html
-     * @return void
-     */
-    public function addAdjustmentHtml($code, $html);
-
     /**
      * @return string
      */
diff --git a/lib/Magento/Framework/Pricing/Render/Layout.php b/lib/Magento/Framework/Pricing/Render/Layout.php
index 5c8b9662ce65efe2d9f195de0a18c1f0cbbc1193..08e0d2a988fcdb3105b45a70e97e584b93a314ca 100644
--- a/lib/Magento/Framework/Pricing/Render/Layout.php
+++ b/lib/Magento/Framework/Pricing/Render/Layout.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/lib/Magento/Framework/Pricing/Render/PriceBox.php b/lib/Magento/Framework/Pricing/Render/PriceBox.php
index a7752d0fb850c2f7974fff2f0abf13228f2e03cf..f068656ba3c9a838159111ec141fb417d193eae0 100644
--- a/lib/Magento/Framework/Pricing/Render/PriceBox.php
+++ b/lib/Magento/Framework/Pricing/Render/PriceBox.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
@@ -78,7 +80,7 @@ class PriceBox extends Template implements PriceBoxRenderInterface
     protected function _toHtml()
     {
         $cssClasses = $this->hasData('css_classes') ? explode(' ', $this->getData('css_classes')) : [];
-        $cssClasses[] = 'price-' . $this->getPrice()->getPriceType();
+        $cssClasses[] = 'price-' . $this->getPrice()->getPriceCode();
         $this->setData('css_classes', implode(' ', $cssClasses));
         return parent::_toHtml();
     }
@@ -88,7 +90,6 @@ class PriceBox extends Template implements PriceBoxRenderInterface
      */
     public function getSaleableItem()
     {
-        // @todo move to abstract pricing block
         return $this->saleableItem;
     }
 
@@ -97,7 +98,6 @@ class PriceBox extends Template implements PriceBoxRenderInterface
      */
     public function getPrice()
     {
-        // @todo move to abstract pricing block
         return $this->price;
     }
 
@@ -114,16 +114,8 @@ class PriceBox extends Template implements PriceBoxRenderInterface
             return $this->getData('price_id');
         }
         $priceId = $this->saleableItem->getId();
-        if ($this->hasData('price_id_prefix')) {
-            $prefix = $this->getData('price_id_prefix') . $priceId;
-        } else {
-            $prefix = $defaultPrefix;
-        }
-        if ($this->hasData('price_id_suffix')) {
-            $suffix = $this->getData('price_id_suffix');
-        } else {
-            $suffix = $defaultSuffix;
-        }
+        $prefix = $this->hasData('price_id_prefix') ? $this->getData('price_id_prefix') : $defaultPrefix;
+        $suffix = $this->hasData('price_id_suffix') ? $this->getData('price_id_suffix') : $defaultSuffix;
         $priceId = $prefix . $priceId . $suffix;
         return $priceId;
     }
@@ -132,12 +124,11 @@ class PriceBox extends Template implements PriceBoxRenderInterface
      * Retrieve price object of given type and quantity
      *
      * @param string $priceCode
-     * @param float|null $quantity
      * @return PriceInterface
      */
-    public function getPriceType($priceCode, $quantity = null)
+    public function getPriceType($priceCode)
     {
-        return $this->saleableItem->getPriceInfo()->getPrice($priceCode, $quantity);
+        return $this->saleableItem->getPriceInfo()->getPrice($priceCode);
     }
 
     /**
diff --git a/lib/Magento/Framework/Pricing/Render/PriceBoxRenderInterface.php b/lib/Magento/Framework/Pricing/Render/PriceBoxRenderInterface.php
index 9948e1672551b34ab2304897aeebca63af2ab746..0a5c98d87ec328e5c161bf3c1ae07b0d8a31d617 100644
--- a/lib/Magento/Framework/Pricing/Render/PriceBoxRenderInterface.php
+++ b/lib/Magento/Framework/Pricing/Render/PriceBoxRenderInterface.php
@@ -18,6 +18,8 @@
  * versions in the future. If you wish to customize Magento for your
  * needs please refer to http://www.magentocommerce.com for more information.
  *
+ * @category    Magento
+ * @package     Magento_Pricing
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
diff --git a/lib/Magento/Framework/Pricing/Render/RendererPool.php b/lib/Magento/Framework/Pricing/Render/RendererPool.php
index d7363e793cc1a2959eb21f75b1a83a8eb83f68b6..eb56815362d93d91c15adc8327b0be86955f50af 100644
--- a/lib/Magento/Framework/Pricing/Render/RendererPool.php
+++ b/lib/Magento/Framework/Pricing/Render/RendererPool.php
@@ -126,7 +126,7 @@ class RendererPool extends AbstractBlock
         $renderClassName = self::AMOUNT_RENDERER_DEFAULT;
 
         if ($price) {
-            $priceCode = $price->getPriceType();
+            $priceCode = $price->getPriceCode();
             // implement class resolving fallback
             $pattern = [
                 $type . '/prices/' . $priceCode . '/amount_render_class',
@@ -172,7 +172,7 @@ class RendererPool extends AbstractBlock
     public function getAdjustmentRenders(SaleableInterface $saleableItem = null, PriceInterface $price = null)
     {
         $itemType = is_null($saleableItem) ? 'default' : $saleableItem->getTypeId();
-        $priceType = is_null($price) ? 'default' : $price->getPriceType();
+        $priceType = is_null($price) ? 'default' : $price->getPriceCode();
 
         $fallbackPattern = [
             "{$itemType}/adjustments/{$priceType}",
diff --git a/lib/Magento/Framework/Url.php b/lib/Magento/Framework/Url.php
index a25696eb57c3af947936f146638447cd23749412..a87fac692ba8afb9647ee5a36e73d72862c81352 100644
--- a/lib/Magento/Framework/Url.php
+++ b/lib/Magento/Framework/Url.php
@@ -560,9 +560,8 @@ class Url extends \Magento\Framework\Object implements \Magento\Framework\UrlInt
             'controller_name'
         )->unsetData(
             'action_name'
-        )->unsetData(
-            'secure'
         );
+        $this->_queryParamsResolver->unsetData('secure');
         return $this->setData('route_name', $data);
     }
 
@@ -607,7 +606,8 @@ class Url extends \Magento\Framework\Object implements \Magento\Framework\UrlInt
         if ($this->_getData('controller_name') == $data) {
             return $this;
         }
-        $this->unsetData('route_path')->unsetData('action_name')->unsetData('secure');
+        $this->unsetData('route_path')->unsetData('action_name');
+        $this->_queryParamsResolver->unsetData('secure');
         return $this->setData('controller_name', $data);
     }
 
@@ -635,7 +635,9 @@ class Url extends \Magento\Framework\Object implements \Magento\Framework\UrlInt
             return $this;
         }
         $this->unsetData('route_path');
-        return $this->setData('action_name', $data)->unsetData('secure');
+        $this->setData('action_name', $data);
+        $this->_queryParamsResolver->unsetData('secure');
+        return $this;
     }
 
     /**
diff --git a/lib/Magento/Framework/View/Design/Fallback/Factory.php b/lib/Magento/Framework/View/Design/Fallback/Factory.php
index b3ce86e3aad255690e25bddd1f46bf029333d4e3..34b815f43c7b13b62f245e0628380f25af90e732 100644
--- a/lib/Magento/Framework/View/Design/Fallback/Factory.php
+++ b/lib/Magento/Framework/View/Design/Fallback/Factory.php
@@ -79,7 +79,8 @@ class Factory
             new Composite(
                 array(
                     new Theme(new Simple("{$themesDir}/<area>/<theme_path>/<namespace>_<module>")),
-                    new Simple("{$modulesDir}/<namespace>/<module>/view/<area>")
+                    new Simple("{$modulesDir}/<namespace>/<module>/view/<area>"),
+                    new Simple("{$modulesDir}/<namespace>/<module>/view/base")
                 )
             )
         );
@@ -123,7 +124,8 @@ class Factory
                         )
                     ),
                     new Simple("{$modulesDir}/<namespace>/<module>/view/<area>/i18n/<locale>", array('locale')),
-                    new Simple("{$modulesDir}/<namespace>/<module>/view/<area>")
+                    new Simple("{$modulesDir}/<namespace>/<module>/view/<area>"),
+                    new Simple("{$modulesDir}/<namespace>/<module>/view/base")
                 )
             )
         );
diff --git a/lib/Magento/Framework/View/Layout/File.php b/lib/Magento/Framework/View/Layout/File.php
index 8f2c6388fcb208afc7de7853af793b6eea1bfe55..7d4def29ba34fad6d460bdf037b8ca5479cd3181 100644
--- a/lib/Magento/Framework/View/Layout/File.php
+++ b/lib/Magento/Framework/View/Layout/File.php
@@ -51,6 +51,13 @@ class File
      */
     protected $theme;
 
+    /**
+     * Base flag
+     *
+     * @var string
+     */
+    protected $isBase;
+
     /**
      * Identifier
      *
@@ -64,12 +71,14 @@ class File
      * @param string $filename
      * @param string $module
      * @param ThemeInterface $theme
+     * @param bool $isBase
      */
-    public function __construct($filename, $module, ThemeInterface $theme = null)
+    public function __construct($filename, $module, ThemeInterface $theme = null, $isBase = false)
     {
         $this->filename = $filename;
         $this->module = $module;
         $this->theme = $theme;
+        $this->isBase = $isBase;
     }
 
     /**
@@ -130,8 +139,9 @@ class File
     public function getFileIdentifier()
     {
         if (null === $this->identifier) {
-            $theme = $this->getTheme() ? 'theme:' . $this->theme->getFullPath() : 'base';
-            $this->identifier = $theme . '|module:' . $this->getModule() . '|file:' . $this->getName();
+            $theme = $this->getTheme() ? ('|theme:' . $this->theme->getFullPath()) : '';
+            $this->identifier = ($this->isBase ? 'base' : '')
+                . $theme . '|module:' . $this->getModule() . '|file:' . $this->getName();
         }
         return $this->identifier;
     }
diff --git a/lib/Magento/Framework/View/Layout/File/Factory.php b/lib/Magento/Framework/View/Layout/File/Factory.php
index bae2b991fdcbe79a763955f4a582746b89ace271..cc5c65ab5d5c95c8140211a60f3d94f4639fe48a 100644
--- a/lib/Magento/Framework/View/Layout/File/Factory.php
+++ b/lib/Magento/Framework/View/Layout/File/Factory.php
@@ -54,13 +54,14 @@ class Factory
      * @param string $filename
      * @param string $module
      * @param ThemeInterface|null $theme
+     * @param bool $isBase
      * @return \Magento\Framework\View\Layout\File
      */
-    public function create($filename, $module, ThemeInterface $theme = null)
+    public function create($filename, $module, ThemeInterface $theme = null, $isBase = false)
     {
         return $this->objectManager->create(
             'Magento\Framework\View\Layout\File',
-            array('filename' => $filename, 'module' => $module, 'theme' => $theme)
+            array('filename' => $filename, 'module' => $module, 'theme' => $theme, 'isBase' => $isBase)
         );
     }
 }
diff --git a/lib/Magento/Framework/View/Layout/File/Source/Base.php b/lib/Magento/Framework/View/Layout/File/Source/Base.php
index ee0d12ddf939b4df98548af29d602cbb61eea155..0a01eeab4125a654506765b8661818cb2f1dee2c 100644
--- a/lib/Magento/Framework/View/Layout/File/Source/Base.php
+++ b/lib/Magento/Framework/View/Layout/File/Source/Base.php
@@ -69,13 +69,24 @@ class Base implements SourceInterface
      */
     public function getFiles(ThemeInterface $theme, $filePath = '*')
     {
+        $result = [];
         $namespace = $module = '*';
+        $sharedFiles = $this->modulesDirectory->search("{$namespace}/{$module}/view/base/layout/{$filePath}.xml");
+
+        $filePathPtn = strtr(preg_quote($filePath), array('\*' => '[^/]+'));
+        $pattern = "#(?<namespace>[^/]+)/(?<module>[^/]+)/view/base/layout/" . $filePathPtn . "\.xml$#i";
+        foreach ($sharedFiles as $file) {
+            $filename = $this->modulesDirectory->getAbsolutePath($file);
+            if (!preg_match($pattern, $filename, $matches)) {
+                continue;
+            }
+            $moduleFull = "{$matches['namespace']}_{$matches['module']}";
+            $result[] = $this->fileFactory->create($filename, $moduleFull, null, true);
+        }
         $area = $theme->getArea();
-        $files = $this->modulesDirectory->search("{$namespace}/{$module}/view/{$area}/layout/{$filePath}.xml");
-        $result = array();
-        $filePath = strtr(preg_quote($filePath), array('\*' => '[^/]+'));
-        $pattern = "#(?<namespace>[^/]+)/(?<module>[^/]+)/view/{$area}/layout/" . $filePath . "\.xml$#i";
-        foreach ($files as $file) {
+        $themeFiles = $this->modulesDirectory->search("{$namespace}/{$module}/view/{$area}/layout/{$filePath}.xml");
+        $pattern = "#(?<namespace>[^/]+)/(?<module>[^/]+)/view/{$area}/layout/" . $filePathPtn . "\.xml$#i";
+        foreach ($themeFiles as $file) {
             $filename = $this->modulesDirectory->getAbsolutePath($file);
             if (!preg_match($pattern, $filename, $matches)) {
                 continue;
diff --git a/lib/Magento/Framework/View/Layout/PageType/Config/Converter.php b/lib/Magento/Framework/View/Layout/PageType/Config/Converter.php
index c6d6838f1c51fb3a773de2ca92a15f21a9ea4c9c..7761f12080f353344bbc61028a91f9090259d19a 100644
--- a/lib/Magento/Framework/View/Layout/PageType/Config/Converter.php
+++ b/lib/Magento/Framework/View/Layout/PageType/Config/Converter.php
@@ -30,7 +30,7 @@ class Converter implements \Magento\Framework\Config\ConverterInterface
      */
     public function convert($source)
     {
-        $page_types = array();
+        $pageTypes = array();
         $xpath = new \DOMXPath($source);
 
         /** @var $widget \DOMNode */
@@ -42,8 +42,8 @@ class Converter implements \Magento\Framework\Config\ConverterInterface
 
             $pageArray = array("id" => $id, "label" => $label);
 
-            $page_types[$id] = $pageArray;
+            $pageTypes[$id] = $pageArray;
         }
-        return $page_types;
+        return $pageTypes;
     }
 }
diff --git a/pub/cron.php b/pub/cron.php
index 0d9152273bcbd58b537825836630a4a3ea4e58a6..659ceeeca74da4278e8a5c4af7a89bec8cf9a264 100644
--- a/pub/cron.php
+++ b/pub/cron.php
@@ -27,7 +27,6 @@
  */
 use Magento\Store\Model\StoreManager;
 
-
 require dirname(__DIR__) . '/app/bootstrap.php';
 umask(0);
 $params = array(StoreManager::PARAM_RUN_CODE => 'admin', \Magento\Store\Model\Store::CUSTOM_ENTRY_POINT_PARAM => true);
diff --git a/pub/errors/404.php b/pub/errors/404.php
index 369fd46b7aeac69cd5749fc4be1efe13a169919f..5fc9c46f398619b95429e88217b987b3f9ee5855 100644
--- a/pub/errors/404.php
+++ b/pub/errors/404.php
@@ -27,7 +27,7 @@
 require_once __DIR__ . '/../../app/bootstrap.php';
 require_once 'processor.php';
 
-$processor = new Error_Processor(
+$processor = new \Magento\Framework\Error\Processor(
     new \Magento\Framework\App\Response\Http(
         new \Magento\Framework\Stdlib\Cookie(),
         new \Magento\Framework\App\Http\Context()
diff --git a/pub/errors/503.php b/pub/errors/503.php
index 1561cda35b326d5dd0198f7540c4fee73068dc3e..ca2046d960839aa1d2f7a118de8a575d12e74f99 100644
--- a/pub/errors/503.php
+++ b/pub/errors/503.php
@@ -27,7 +27,7 @@
 require_once __DIR__ . '/../../app/bootstrap.php';
 require_once 'processor.php';
 
-$processor = new Error_Processor(
+$processor = new \Magento\Framework\Error\Processor(
     new \Magento\Framework\App\Response\Http(
         new \Magento\Framework\Stdlib\Cookie(),
         new \Magento\Framework\App\Http\Context()
diff --git a/pub/errors/noCache.php b/pub/errors/noCache.php
index 318bfcd15ca16143eee0e8130127d7238626aeb9..60994773b1e73c2a25655986285fefe18695538d 100644
--- a/pub/errors/noCache.php
+++ b/pub/errors/noCache.php
@@ -26,7 +26,7 @@
 
 require_once 'processor.php';
 
-$processor = new Error_Processor(
+$processor = new \Magento\Framework\Error\Processor(
     new \Magento\Framework\App\Response\Http(
         new \Magento\Framework\Stdlib\Cookie(),
         new \Magento\Framework\App\Http\Context()
diff --git a/pub/errors/processor.php b/pub/errors/processor.php
index a3939406d20cc27cee9585ec4d2ef12b13df03e6..0aef2466f9afa9222fab912a867fc004ea41a870 100644
--- a/pub/errors/processor.php
+++ b/pub/errors/processor.php
@@ -23,11 +23,12 @@
  * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
+namespace Magento\Framework\Error;
 
 /**
  * Error processor
  */
-class Error_Processor
+class Processor
 {
     const MAGE_ERRORS_LOCAL_XML = 'local.xml';
     const MAGE_ERRORS_DESIGN_XML = 'design.xml';
@@ -133,7 +134,7 @@ class Error_Processor
     /**
      * Internal config object
      *
-     * @var stdClass
+     * @var \stdClass
     */
     protected $_config;
 
@@ -280,6 +281,7 @@ class Error_Processor
     /**
      * Retrieve base URL
      *
+     * @param bool $param
      * @return string
      */
     public function getBaseUrl($param = false)
@@ -320,6 +322,8 @@ class Error_Processor
 
     /**
      * Prepare config data
+     *
+     * @return void
      */
     protected function _prepareConfig()
     {
@@ -327,7 +331,7 @@ class Error_Processor
         $design = $this->_loadXml(self::MAGE_ERRORS_DESIGN_XML);
 
         //initial settings
-        $config = new stdClass();
+        $config = new \stdClass();
         $config->action         = '';
         $config->subject        = 'Store Debug Information';
         $config->email_address  = '';
@@ -448,6 +452,7 @@ class Error_Processor
      * Set report data
      *
      * @param array $reportData
+     * @return void
      */
     protected function _setReportData($reportData)
     {
@@ -468,6 +473,7 @@ class Error_Processor
      * Create report
      *
      * @param array $reportData
+     * @return void
      */
     public function saveReport($reportData)
     {
@@ -500,6 +506,7 @@ class Error_Processor
      * Get report
      *
      * @param int $reportId
+     * @return void
      */
     public function loadReport($reportId)
     {
@@ -516,6 +523,7 @@ class Error_Processor
     /**
      * Send report
      *
+     * @return void
      */
     public function sendReport()
     {
@@ -575,8 +583,10 @@ class Error_Processor
      */
     protected function _validate()
     {
-        $email = preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/',
-            $this->postData['email']);
+        $email = preg_match(
+            '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/',
+            $this->postData['email']
+        );
         return ($this->postData['firstName'] && $this->postData['lastName'] && $email);
     }
 
@@ -584,9 +594,10 @@ class Error_Processor
      * Skin setter
      *
      * @param string $value
-     * @param stdClass $config
+     * @param \stdClass $config
+     * @return void
      */
-    protected function _setSkin($value, stdClass $config = null)
+    protected function _setSkin($value, \stdClass $config = null)
     {
         if (preg_match('/^[a-z0-9_]+$/i', $value) && is_dir($this->_indexDir . self::ERROR_DIR . '/' . $value)) {
             if (!$config) {
@@ -602,6 +613,8 @@ class Error_Processor
 
     /**
      * Set current report URL from current params
+     *
+     * @return void
      */
     protected function _setReportUrl()
     {
diff --git a/pub/errors/report.php b/pub/errors/report.php
index 21c1ec9982365025a13ca4bf127a99c45797e040..d272a6082e411d0c0af8fc2acdc6067de363f2a8 100644
--- a/pub/errors/report.php
+++ b/pub/errors/report.php
@@ -27,7 +27,7 @@
 require_once __DIR__ . '/../../app/bootstrap.php';
 require_once 'processor.php';
 
-$processor = new Error_Processor(
+$processor = new \Magento\Framework\Error\Processor(
     new \Magento\Framework\App\Response\Http(
         new \Magento\Framework\Stdlib\Cookie(),
         new \Magento\Framework\App\Http\Context()
diff --git a/pub/get.php b/pub/get.php
index a4b687bc1288a418f1577f5926cf295b9fb05810..f79a6602b0fab93ace8f0d213d06de3aee9cfcc2 100644
--- a/pub/get.php
+++ b/pub/get.php
@@ -84,11 +84,14 @@ if (empty($mediaDirectory)) {
 }
 
 $entryPoint = new \Magento\Framework\App\EntryPoint\EntryPoint(dirname(__DIR__), $params);
-$entryPoint->run('Magento\Core\App\Media', array(
-    'request' => $request,
-    'workingDirectory' => __DIR__,
-    'mediaDirectory' => $mediaDirectory,
-    'configCacheFile' => $configCacheFile,
-    'isAllowed' => $isAllowed,
-    'relativeFileName' => $relativeFilename,
-));
+$entryPoint->run(
+    'Magento\Core\App\Media',
+    array(
+        'request' => $request,
+        'workingDirectory' => __DIR__,
+        'mediaDirectory' => $mediaDirectory,
+        'configCacheFile' => $configCacheFile,
+        'isAllowed' => $isAllowed,
+        'relativeFileName' => $relativeFilename,
+    )
+);
diff --git a/pub/lib/headjs/head.load.min.js b/pub/lib/headjs/head.load.min.js
deleted file mode 100644
index e384332d8f3db84068b405fb2dde545b43e54e1a..0000000000000000000000000000000000000000
--- a/pub/lib/headjs/head.load.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * HeadJS     The only script in your <HEAD>
- * Author     Tero Piirainen  (tipiirai)
- * Maintainer Robert Hoffmann (itechnology)
- * License    MIT / http://bit.ly/mit-license
- *
- * http://headjs.com
- */
-(function(e,t){"use strict";function y(e){if(e._done)return;e(),e._done=1}function b(e){var t=e.split("/"),n=t[t.length-1],r=n.indexOf("?");return r!=-1?n.substring(0,r):n}function w(e){var t;if(typeof e=="object")for(var n in e)e[n]&&(t={name:n,url:e[n]});else t={name:b(e),url:e};var r=l[t.name];return r&&r.url===t.url?r:(l[t.name]=t,t)}function E(e,t){if(!e)return;typeof e=="object"&&(e=[].slice.call(e));for(var n=0;n<e.length;n++)t.call(e,e[n],n)}function S(e){return Object.prototype.toString.call(e)=="[object Function]"}function x(e){e=e||l;var t;for(var n in e){if(e.hasOwnProperty(n)&&e[n].state!=g)return!1;t=!0}return t}function T(e){e.state=d,E(e.onpreload,function(e){e.call()})}function N(e,n){e.state===t&&(e.state=v,e.onpreload=[],k({src:e.url,type:"cache"},function(){T(e)}))}function C(e,t){if(e.state==g)return t&&t();if(e.state==m)return p.ready(e.name,t);if(e.state==v)return e.onpreload.push(function(){C(e,t)});e.state=m,k(e.url,function(){e.state=g,t&&t(),E(f[e.name],function(e){y(e)}),x()&&o&&E(f.ALL,function(e){y(e)})})}function k(e,t){var r=n.createElement("script");r.type="text/"+(e.type||"javascript"),r.src=e.src||e,r.async=!1,r.onreadystatechange=r.onload=function(){var e=r.readyState;!t.done&&(!e||/loaded|complete/.test(e))&&(t.done=!0,t())},(n.body||i).appendChild(r)}function L(){o||(o=!0,E(u,function(e){y(e)}))}var n=e.document,r=e.navigator,i=n.documentElement,s,o,u=[],a=[],f={},l={},c=n.createElement("script").async===!0||"MozAppearance"in n.documentElement.style||e.opera,h=e.head_conf&&e.head_conf.head||"head",p=e[h]=e[h]||function(){p.ready.apply(null,arguments)},d=1,v=2,m=3,g=4;c?p.js=function(){var e=arguments,t=e[e.length-1],n={};return S(t)||(t=null),E(e,function(r,i){r!=t&&(r=w(r),n[r.name]=r,C(r,t&&i==e.length-2?function(){x(n)&&y(t)}:null))}),p}:p.js=function(){var e=arguments,t=[].slice.call(e,1),n=t[0];return s?(n?(E(t,function(e){S(e)||N(w(e))}),C(w(e[0]),S(n)?n:function(){p.js.apply(null,t)})):C(w(e[0])),p):(a.push(function(){p.js.apply(null,e)}),p)},p.ready=function(e,t){if(e==n)return o?y(t):u.push(t),p;S(e)&&(t=e,e="ALL");if(typeof e!="string"||!S(t))return p;var r=l[e];if(r&&r.state==g||e=="ALL"&&x()&&o)return y(t),p;var i=f[e];return i?i.push(t):i=f[e]=[t],p},p.ready(n,function(){x()&&E(f.ALL,function(e){y(e)}),p.feature&&p.feature("domloaded",!0)});if(e.addEventListener)n.addEventListener("DOMContentLoaded",L,!1),e.addEventListener("load",L,!1);else if(e.attachEvent){n.attachEvent("onreadystatechange",function(){n.readyState==="complete"&&L()});var A=1;try{A=e.frameElement}catch(O){}!A&&i.doScroll&&function(){try{i.doScroll("left"),L()}catch(e){setTimeout(arguments.callee,1);return}}(),e.attachEvent("onload",L)}!n.readyState&&n.addEventListener&&(n.readyState="loading",n.addEventListener("DOMContentLoaded",handler=function(){n.removeEventListener("DOMContentLoaded",handler,!1),n.readyState="complete"},!1)),setTimeout(function(){s=!0,E(a,function(e){e()})},300)})(window);