diff --git a/CHANGELOG.md b/CHANGELOG.md
index 547218c2a2430f34900a8db688dcf9d22e5fe4fc..de82dd54de58476ecf1035dbe7e9669f10043eae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,18 @@
+2.0.0.0-dev61
+=============
+* Introduced a new layout block attribute - cacheable
+* Fixed bugs:
+  * Fixed an issue with displaying configurable product images in shopping cart
+  * Fixed an issue with Tax Summary not being displayed properly on the Order Review page
+  * Optimized the Plushe theme CSS
+  * Fixed attribute types for configurable product variations
+  * Fixed an issue with incorrect link in the Reset Password email for customers registered on the non-default website
+  * Fixed an issue with creating orders using DHL on holiday dates
+  * Fixed product export
+  * Fixed 3D secure validation
+  * Fixed an issue with session being lost when a logged in user goes from store pages using secure URL to the store pages which do not use secure URL
+  * Fixed an issue with price ranges in the Advanced search
+
 2.0.0.0-dev60
 =============
 * Fixed bugs:
@@ -132,10 +147,6 @@
   * Fixed date resetting to 1 Jan 1970 after saving a design change in the admin panel in case date format is DD/MM/YY
   * Fixed CAPTCHA on multi-address checkout flow
   * Fixed view files population tool
-  * Fixed DHL functionality of generation shipping labels
-  * Fixed target rule if it is applied for specific customer segment
-  * Fixed product importing that cleared price and weight
-  * Fixed fatal error when a file reference is added to HTML head
 * GitHub requests:
   * [#122](https://github.com/magento/magento2/pull/122) -- Added support of federal units of Brazil with 27 states
   * [#184](https://github.com/magento/magento2/issues/184) -- Removed unused blocks and methods in Magento_Wishlist module
diff --git a/app/code/Magento/Backend/Model/Config/Source/Locale/Weekdaycodes.php b/app/code/Magento/Backend/Model/Config/Source/Locale/Weekdaycodes.php
new file mode 100644
index 0000000000000000000000000000000000000000..f1119e93714762521470afa4c79c1c892f5ebe92
--- /dev/null
+++ b/app/code/Magento/Backend/Model/Config/Source/Locale/Weekdaycodes.php
@@ -0,0 +1,54 @@
+<?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_Backend
+ * @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)
+ */
+
+/**
+ * Locale weekdays source
+ */
+namespace Magento\Backend\Model\Config\Source\Locale;
+
+class Weekdaycodes implements \Magento\Core\Model\Option\ArrayInterface
+{
+    /**
+     * @var \Magento\Core\Model\LocaleInterface
+     */
+    protected $_locale;
+
+    /**
+     * @param \Magento\Core\Model\LocaleInterface $locale
+     */
+    public function __construct(\Magento\Core\Model\LocaleInterface $locale)
+    {
+        $this->_locale = $locale;
+    }
+
+    /**
+     * @return array
+     */
+    public function toOptionArray()
+    {
+        return $this->_locale->getOptionWeekdays(true, true);
+    }
+}
diff --git a/app/code/Magento/Bundle/Model/Product/Type.php b/app/code/Magento/Bundle/Model/Product/Type.php
index b472274389dcb7c41daa58f5cd94277700320385..9cd6dbd46bd5bd863d4cb5fab5b0a08cc51b1d8b 100644
--- a/app/code/Magento/Bundle/Model/Product/Type.php
+++ b/app/code/Magento/Bundle/Model/Product/Type.php
@@ -842,6 +842,7 @@ class Type extends \Magento\Catalog\Model\Product\Type\AbstractType
                 ->create()
                 ->addAttributeToSelect('*')
                 ->setFlag('require_stock_items', true)
+                ->setFlag('product_children', true)
                 ->addStoreFilter($this->getStoreFilter($product))
                 ->setStoreId($storeId)
                 ->setPositionOrder()
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
index 782a7c86ae6973d0c869a7e835c82bc1975815db..df2305b67233b93f6d0e0074e7d24a188e5f3f21 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_index.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_index.xml
@@ -25,7 +25,7 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceBlock name="checkout.cart.form">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::cart/item/default.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::cart/item/default.phtml" cacheable="false"/>
     </referenceBlock>
     <referenceBlock name="checkout.cart.crosssell">
         <action method="addPriceBlockType">
diff --git a/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_addresses.xml b/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_addresses.xml
index 121621c4f076ccf0cbb76205eb009b45c4af5a85..2a93f33838ceb6ac0d053e330a5e2911a380452e 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_addresses.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_addresses.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceBlock name="checkout_addresses">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::multishipping/item/default.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::multishipping/item/default.phtml" cacheable="false"/>
     </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_overview.xml b/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_overview.xml
index 8bccf1b7579b64e79805a5be2759e3ec3712e2f1..47a9dde9343ed1c63535ed35f4bf02e779f7a4e2 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_overview.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_overview.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceBlock name="checkout_overview">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::multishipping/item/default.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::multishipping/item/default.phtml" cacheable="false"/>
     </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_shipping.xml b/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_shipping.xml
index c410c346fa54e9d861044ea96de45f5d071371d5..b9f98da4bce5d75e4ad9408ce4636589ea90e66b 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_shipping.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/checkout_multishipping_shipping.xml
@@ -25,9 +25,9 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceBlock name="checkout_shipping">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::multishipping/item/default.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::multishipping/item/default.phtml" cacheable="false"/>
     </referenceBlock>
     <referenceBlock name="checkout_billing_items">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::multishipping/item/default.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::multishipping/item/default.phtml" cacheable="false"/>
     </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/checkout_onepage_review.xml b/app/code/Magento/Bundle/view/frontend/layout/checkout_onepage_review.xml
index 9fe313a21d3d28c3237620d950c8731adc8c17d0..10b6e9f7103f56afa41ab9e3eac1085a74237514 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/checkout_onepage_review.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/checkout_onepage_review.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceBlock name="order_review">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::onepage/review/item.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::onepage/review/item.phtml" cacheable="false"/>
     </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 b06dafbb2d923574510cb0ac51dd97b0fc0096db..13ff3855a5e7a1cb508e416af32fa99027cbc3a3 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/default.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/default.xml
@@ -39,6 +39,6 @@
         </action>
     </referenceBlock>
     <referenceBlock name="minicart">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::cart/sidebar/default.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::cart/sidebar/default.phtml" cacheable="false"/>
     </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/paypal_express_review.xml b/app/code/Magento/Bundle/view/frontend/layout/paypal_express_review.xml
index 46f9d8650a5931cfe0dd0085ef65cbef75dbcf80..657757e4e4a6d5a803e36f73c61c8b0f1b5d6ea2 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/paypal_express_review.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/paypal_express_review.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceBlock name="paypal.express.review.details">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::onepage/review/item.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::onepage/review/item.phtml" cacheable="false"/>
     </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/paypal_express_review_details.xml b/app/code/Magento/Bundle/view/frontend/layout/paypal_express_review_details.xml
index 46f9d8650a5931cfe0dd0085ef65cbef75dbcf80..657757e4e4a6d5a803e36f73c61c8b0f1b5d6ea2 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/paypal_express_review_details.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/paypal_express_review_details.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceBlock name="paypal.express.review.details">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::onepage/review/item.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::onepage/review/item.phtml" cacheable="false"/>
     </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/paypaluk_express_review.xml b/app/code/Magento/Bundle/view/frontend/layout/paypaluk_express_review.xml
index 46f9d8650a5931cfe0dd0085ef65cbef75dbcf80..657757e4e4a6d5a803e36f73c61c8b0f1b5d6ea2 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/paypaluk_express_review.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/paypaluk_express_review.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceBlock name="paypal.express.review.details">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::onepage/review/item.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::onepage/review/item.phtml" cacheable="false"/>
     </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Bundle/view/frontend/layout/paypaluk_express_review_details.xml b/app/code/Magento/Bundle/view/frontend/layout/paypaluk_express_review_details.xml
index 9fe313a21d3d28c3237620d950c8731adc8c17d0..10b6e9f7103f56afa41ab9e3eac1085a74237514 100644
--- a/app/code/Magento/Bundle/view/frontend/layout/paypaluk_express_review_details.xml
+++ b/app/code/Magento/Bundle/view/frontend/layout/paypaluk_express_review_details.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceBlock name="order_review">
-        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::onepage/review/item.phtml"/>
+        <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::onepage/review/item.phtml" cacheable="false"/>
     </referenceBlock>
 </layout>
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Variations/Main.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Variations/Main.php
new file mode 100644
index 0000000000000000000000000000000000000000..399a103ffdf445c8209d2111af43a7511b6fbbbb
--- /dev/null
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Variations/Main.php
@@ -0,0 +1,69 @@
+<?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_Adminhtml
+ * @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)
+ */
+
+/**
+ * Product attribute add form variations main tab
+ *
+ * @category   Magento
+ * @package    Magento_Catalog
+ * @author     Magento Core Team <core@magentocommerce.com>
+ */
+namespace Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Variations;
+
+
+class Main extends \Magento\Eav\Block\Adminhtml\Attribute\Edit\Main\AbstractMain
+{
+    /**
+     * Adding product form elements for editing attribute
+     *
+     * @return \Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Variations\Main
+     */
+    protected function _prepareForm()
+    {
+        parent::_prepareForm();
+        $attributeObject = $this->getAttributeObject();
+        /* @var $form \Magento\Data\Form */
+        $form = $this->getForm();
+        /* @var $fieldset \Magento\Data\Form\Element\Fieldset */
+        $fieldset = $form->getElement('base_fieldset');
+        $fiedsToRemove = array(
+            'attribute_code',
+            'is_unique',
+            'frontend_class',
+        );
+
+        foreach ($fieldset->getElements() as $element) {
+            /** @var \Magento\Data\Form\AbstractForm $element  */
+            if (substr($element->getId(), 0, strlen('default_value')) == 'default_value') {
+                $fiedsToRemove[] = $element->getId();
+            }
+        }
+        foreach ($fiedsToRemove as $id) {
+            $fieldset->removeField($id);
+        }
+        return $this;
+    }
+}
\ No newline at end of file
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php
index f323d3c77e66aea142e1fb99bcc026e66772ff4c..9c2dae069398e7f634d2124ac830125c4f1858dc 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php
@@ -82,9 +82,16 @@ class Attribute extends \Magento\Backend\App\Action
         $this->_title->add(__('Product Attributes'));
 
         if ($this->getRequest()->getParam('popup')) {
-            $this->_view->loadLayout(
-                array('popup', $this->_view->getDefaultLayoutHandle() . '_popup')
-            );
+            if ($this->getRequest()->getParam('product_tab') == 'variations') {
+                $this->_view->loadLayout(
+                    array('popup', 'catalog_product_attribute_edit_product_tab_variations_popup')
+                );
+            } else {
+                $this->_view->loadLayout(
+                    array('popup', 'catalog_product_attribute_edit_popup')
+                );
+            }
+
             $this->_view->getLayout()->getBlock('root')->addBodyClass('attribute-popup');
         } else {
             $this->_view->loadLayout();
diff --git a/app/code/Magento/Catalog/Model/Config/Source/Product/Thumbnail.php b/app/code/Magento/Catalog/Model/Config/Source/Product/Thumbnail.php
index 3dc2ec2bdf048e95c17f5f89e54987417a556304..1913ea80f50089120e40344fef4d80831ae4de81 100644
--- a/app/code/Magento/Catalog/Model/Config/Source/Product/Thumbnail.php
+++ b/app/code/Magento/Catalog/Model/Config/Source/Product/Thumbnail.php
@@ -35,11 +35,14 @@ namespace Magento\Catalog\Model\Config\Source\Product;
 
 class Thumbnail implements \Magento\Core\Model\Option\ArrayInterface
 {
+    const OPTION_USE_PARENT_IMAGE = 'parent';
+    const OPTION_USE_OWN_IMAGE = 'itself';
+
     public function toOptionArray()
     {
         return array(
-            array('value'=>'itself', 'label'=>__('Product Thumbnail Itself')),
-            array('value'=>'parent', 'label'=>__('Parent Product Thumbnail')),
+            array('value' => self::OPTION_USE_OWN_IMAGE, 'label' => __('Product Thumbnail Itself')),
+            array('value' => self::OPTION_USE_PARENT_IMAGE, 'label' => __('Parent Product Thumbnail')),
         );
     }
 }
diff --git a/app/code/Magento/Catalog/Model/System/Config/Source/Inputtype.php b/app/code/Magento/Catalog/Model/System/Config/Source/Inputtype.php
new file mode 100644
index 0000000000000000000000000000000000000000..eb8f8590413b1b0c9147b4d145868179749609b5
--- /dev/null
+++ b/app/code/Magento/Catalog/Model/System/Config/Source/Inputtype.php
@@ -0,0 +1,41 @@
+<?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\Model\System\Config\Source;
+
+class Inputtype
+{
+    /**
+     * Get input types which use predefined source
+     * @return array
+     */
+    public function toOptionArray()
+    {
+        return array(
+            array('value' => 'multiselect', 'label' => __('Multiple Select')),
+            array('value' => 'select', 'label' => __('Dropdown'))
+        );
+    }
+}
\ No newline at end of file
diff --git a/app/code/Magento/Catalog/etc/di.xml b/app/code/Magento/Catalog/etc/di.xml
index a9d18f9a601cecafb4a20104c556099cb9611074..aa1521b927993d95192d1d1d5d277f2740cb45cd 100644
--- a/app/code/Magento/Catalog/etc/di.xml
+++ b/app/code/Magento/Catalog/etc/di.xml
@@ -130,9 +130,19 @@
             <value>catalog</value>
         </param>
     </virtualType>
+    <virtualType name="Magento\Catalog\Model\System\Config\Source\InputtypeFactory" type="Magento\Eav\Model\Adminhtml\System\Config\Source\InputtypeFactory">
+        <param name="instanceName">
+            <value>Magento\Catalog\Model\System\Config\Source\Inputtype</value>
+        </param>
+    </virtualType>
     <type name="Magento\Catalog\Model\Session">
         <param name="storage">
             <instance type="Magento\Catalog\Model\Session\Storage" />
         </param>
     </type>
+    <type name="Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Variations\Main">
+        <param name="inputTypeFactory">
+            <instance type="Magento\Catalog\Model\System\Config\Source\InputtypeFactory" />
+        </param>
+    </type>
 </config>
diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_product_tab_variations_popup.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_product_tab_variations_popup.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7167a47b18cd3cd45283c5852462e96eb090c17b
--- /dev/null
+++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_product_tab_variations_popup.xml
@@ -0,0 +1,40 @@
+<?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">
+    <remove name="left"/>
+    <referenceBlock name="attribute_edit_content">
+        <arguments>
+            <argument name="template" xsi:type="string">Magento_Catalog::catalog/product/attribute/form.phtml</argument>
+        </arguments>
+        <container name="form" label="Form">
+            <block class="Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Variations\Main" as="main"/>
+            <block class="Magento\Eav\Block\Adminhtml\Attribute\Edit\Options\Options" as="advanced-options"/>
+            <block class="Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Advanced" as="options"/>
+            <block class="Magento\Eav\Block\Adminhtml\Attribute\Edit\Options\Labels" as="labels"/>
+            <block class="Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Front" as="front-options"/>
+        </container>
+    </referenceBlock>
+</layout>
diff --git a/app/code/Magento/CatalogSearch/view/frontend/layout/default.xml b/app/code/Magento/CatalogSearch/view/frontend/layout/default.xml
index 0f1c57fdc55336e334e13209f704f975c86c68f6..0e90294f6c50591956a687405d97328e38f0dda1 100644
--- a/app/code/Magento/CatalogSearch/view/frontend/layout/default.xml
+++ b/app/code/Magento/CatalogSearch/view/frontend/layout/default.xml
@@ -24,7 +24,7 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <referenceBlock name="header">
+    <referenceBlock name="header-wrapper">
         <block class="Magento\View\Element\Template" name="top.search" as="topSearch" template="Magento_CatalogSearch::form.mini.phtml"/>
     </referenceBlock>
     <referenceBlock name="footer_links">
diff --git a/app/code/Magento/Centinel/Model/Service.php b/app/code/Magento/Centinel/Model/Service.php
index 8b3a53b50cc560b347adb12ee736a9b70d22295b..91489f23643436f0d39ac6546b71b9a17061c865 100644
--- a/app/code/Magento/Centinel/Model/Service.php
+++ b/app/code/Magento/Centinel/Model/Service.php
@@ -101,18 +101,12 @@ class Service extends \Magento\Object
      */
     protected $_urlPrefix;
 
-    /**
-     * @var \Magento\Data\Form\FormKey
-     */
-    protected $formKey;
-    
     /**
      * @param \Magento\Centinel\Model\Config $config
      * @param \Magento\Centinel\Model\ApiFactory $apiFactory
      * @param \Magento\UrlInterface $url
      * @param \Magento\Session\SessionManagerInterface $centinelSession
      * @param \Magento\Centinel\Model\StateFactory $stateFactory
-     * @param \Magento\Data\Form\FormKey $formKey
      * @param string $urlPrefix
      * @param array $data
      */
@@ -122,7 +116,6 @@ class Service extends \Magento\Object
         \Magento\UrlInterface $url,
         \Magento\Session\SessionManagerInterface $centinelSession,
         \Magento\Centinel\Model\StateFactory $stateFactory,
-        \Magento\Data\Form\FormKey $formKey,
         $urlPrefix = 'centinel/index/',
         array $data = array()
     ) {
@@ -131,7 +124,6 @@ class Service extends \Magento\Object
         $this->_url = $url;
         $this->_centinelSession = $centinelSession;
         $this->_stateFactory = $stateFactory;
-        $this->formKey = $formKey;
         $this->_urlPrefix = $urlPrefix;
         parent::__construct($data);
     }
@@ -175,7 +167,6 @@ class Service extends \Magento\Object
         $params = array(
             '_secure'  => true,
             '_current' => $current,
-            'form_key' => $this->formKey->getFormKey(),
             'isIframe' => true
         );
         return $this->_url->getUrl($this->_urlPrefix . $suffix, $params);
diff --git a/app/code/Magento/Centinel/etc/adminhtml/di.xml b/app/code/Magento/Centinel/etc/adminhtml/di.xml
index 8c263049a55f97b3cdf24ef702f08898382976f3..6a4521348d6a690ce29582f986f768e78a48d6ea 100644
--- a/app/code/Magento/Centinel/etc/adminhtml/di.xml
+++ b/app/code/Magento/Centinel/etc/adminhtml/di.xml
@@ -42,7 +42,7 @@
             <instance type="Magento\Backend\Model\Url" />
         </param>
         <param name="centinelSession">
-            <instance type="Magento\Core\Model\Session" />
+            <instance type="Magento\Centinel\Model\Session" />
         </param>
         <param name="urlPrefix">
             <value>adminhtml/centinel_index/</value>
diff --git a/app/code/Magento/Centinel/etc/frontend/di.xml b/app/code/Magento/Centinel/etc/frontend/di.xml
index c349b6817efe92baac65559b3e2333f9478596ba..191d75eed88406ea5bdc9d2a93549a51ccd00df1 100644
--- a/app/code/Magento/Centinel/etc/frontend/di.xml
+++ b/app/code/Magento/Centinel/etc/frontend/di.xml
@@ -44,4 +44,9 @@
             </value>
         </param>
     </type>
+    <type name="Magento\Centinel\Model\Service">
+        <param name="centinelSession">
+            <instance type="Magento\Centinel\Model\Session" />
+        </param>
+    </type>
 </config>
diff --git a/app/code/Magento/Centinel/view/frontend/layout/centinel_index_authenticationcomplete.xml b/app/code/Magento/Centinel/view/frontend/layout/centinel_index_authenticationcomplete.xml
index 7506013aa171fceb5161eabc0d2b7fa6917db709..a1194b669710029fe3dc36e611136d0fd9ffa2d9 100644
--- a/app/code/Magento/Centinel/view/frontend/layout/centinel_index_authenticationcomplete.xml
+++ b/app/code/Magento/Centinel/view/frontend/layout/centinel_index_authenticationcomplete.xml
@@ -24,5 +24,5 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <block class="Magento\Centinel\Block\Authentication\Complete" name="root" output="1" template="authentication/complete.phtml"/>
+    <block class="Magento\Centinel\Block\Authentication\Complete" name="root" output="1" template="authentication/complete.phtml" cacheable="false"/>
 </layout>
diff --git a/app/code/Magento/Centinel/view/frontend/layout/centinel_index_authenticationstart.xml b/app/code/Magento/Centinel/view/frontend/layout/centinel_index_authenticationstart.xml
index 931243ef7f005c66c9ad8b651194c7c12e380bca..5b910a3fdba445f54ba4159f7408bb962f363f00 100644
--- a/app/code/Magento/Centinel/view/frontend/layout/centinel_index_authenticationstart.xml
+++ b/app/code/Magento/Centinel/view/frontend/layout/centinel_index_authenticationstart.xml
@@ -24,5 +24,5 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <block class="Magento\Centinel\Block\Authentication\Start" name="root" output="1" template="authentication/start.phtml"/>
+    <block class="Magento\Centinel\Block\Authentication\Start" name="root" output="1" template="authentication/start.phtml" cacheable="false"/>
 </layout>
diff --git a/app/code/Magento/Centinel/view/frontend/layout/checkout_multishipping_overview.xml b/app/code/Magento/Centinel/view/frontend/layout/checkout_multishipping_overview.xml
index d1f3a56419e8444895b5b26016ad0ab27a74f74b..775b37c404aa2f2938b9e5486e4ed763ed6fe629 100644
--- a/app/code/Magento/Centinel/view/frontend/layout/checkout_multishipping_overview.xml
+++ b/app/code/Magento/Centinel/view/frontend/layout/checkout_multishipping_overview.xml
@@ -32,7 +32,7 @@
         </block>
     </referenceBlock>
     <referenceContainer name="checkout.multishipping.overview.items.after">
-        <block class="Magento\Centinel\Block\Authentication" name="centinel.frame" template="authentication.phtml">
+        <block class="Magento\Centinel\Block\Authentication" name="centinel.frame" template="authentication.phtml" cacheable="false">
             <action method="setAuthenticationStartMode">
                 <argument name="mode" xsi:type="string">window</argument>
             </action>
diff --git a/app/code/Magento/Centinel/view/frontend/layout/checkout_onepage_review.xml b/app/code/Magento/Centinel/view/frontend/layout/checkout_onepage_review.xml
index ce868787b44696720ddc4cc677e70f500a1bfdf3..f732941def82a75085a3e2b90a500fd2d7d564ab 100644
--- a/app/code/Magento/Centinel/view/frontend/layout/checkout_onepage_review.xml
+++ b/app/code/Magento/Centinel/view/frontend/layout/checkout_onepage_review.xml
@@ -25,7 +25,7 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="checkout.onepage.review.info.items.before">
-        <block class="Magento\Centinel\Block\Authentication" name="centinel.frame" template="authentication.phtml">
+        <block class="Magento\Centinel\Block\Authentication" name="centinel.frame" template="authentication.phtml" cacheable="false">
             <action method="setAuthenticationStartMode">
                 <argument name="mode" xsi:type="string">instant</argument>
             </action>
diff --git a/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php b/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php
index e44c2a5de074269d88320b28ca9be56a15bdec4f..3ce2a6ed8611f6f50eca49ce4091394d93bdff11 100644
--- a/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php
+++ b/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php
@@ -42,7 +42,6 @@ class Renderer extends \Magento\View\Element\Template
     protected $_checkoutSession;
     protected $_item;
     protected $_productUrl;
-    protected $_productThumbnail;
 
     /**
      * Whether qty will be converted to number
@@ -65,11 +64,6 @@ class Renderer extends \Magento\View\Element\Template
      */
     protected $_productConfig = null;
 
-    /**
-     * @var \Magento\Catalog\Helper\Image
-     */
-    protected $_imageHelper;
-
     /**
      * @var \Magento\Core\Helper\Url
      */
@@ -80,6 +74,11 @@ class Renderer extends \Magento\View\Element\Template
      */
     protected $messageManager;
 
+    /**
+     * @var \Magento\Catalog\Helper\Image
+     */
+    protected $_imageHelper;
+
     /**
      * @param \Magento\View\Element\Template\Context $context
      * @param \Magento\Catalog\Helper\Product\Configuration $productConfig
@@ -98,8 +97,8 @@ class Renderer extends \Magento\View\Element\Template
         \Magento\Message\ManagerInterface $messageManager,
         array $data = array()
     ) {
-        $this->_urlHelper = $urlHelper;
         $this->_imageHelper = $imageHelper;
+        $this->_urlHelper = $urlHelper;
         $this->_productConfig = $productConfig;
         $this->_checkoutSession = $checkoutSession;
         $this->messageManager = $messageManager;
@@ -138,35 +137,24 @@ class Renderer extends \Magento\View\Element\Template
         return $this->getItem()->getProduct();
     }
 
-    public function overrideProductThumbnail($productThumbnail)
+    /**
+     * Get product thumbnail image
+     *
+     * @return \Magento\Catalog\Model\Product\Image
+     */
+    public function getProductThumbnail()
     {
-        $this->_productThumbnail = $productThumbnail;
-        return $this;
+        return $this->_imageHelper->init($this->getProductForThumbnail(), 'thumbnail');
     }
 
     /**
-     * Thumbnail image getter
+     * Identify the product from which thumbnail should be taken.
      *
-     * @return \Magento\Catalog\Helper\Image
+     * @return \Magento\Catalog\Model\Product
      */
-    protected function _getThumbnail()
+    public function getProductForThumbnail()
     {
-        if (is_null($this->_productThumbnail)) {
-            $product = $this->getProduct();
-            if ($this->getProduct()->isConfigurable()) {
-                $children = $this->getItem()->getChildren();
-                if (isset($children[0])
-                    && $children[0]->getProduct()->getThumbnail()
-                    && $children[0]->getProduct()->getThumbnail() != 'no_selection'
-                ) {
-                    $product = $children[0]->getProduct();
-                }
-            }
-            $thumbnail = $this->_imageHelper->init($product, 'thumbnail');
-        } else {
-            $thumbnail = $this->_productThumbnail;
-        }
-        return $thumbnail;
+        return $this->getProduct();
     }
 
     /**
@@ -176,7 +164,7 @@ class Renderer extends \Magento\View\Element\Template
      */
     public function getProductThumbnailUrl()
     {
-        return (string) $this->_getThumbnail()->resize($this->getThumbnailSize());
+        return (string)$this->getProductThumbnail()->resize($this->getThumbnailSize());
     }
 
     /**
@@ -196,7 +184,9 @@ class Renderer extends \Magento\View\Element\Template
      */
     public function getProductThumbnailSidebarUrl()
     {
-        return (string) $this->_getThumbnail()->resize($this->getThumbnailSidebarSize())->setWatermarkSize('30x10');
+        return (string)$this->getProductThumbnail()
+            ->resize($this->getThumbnailSidebarSize())
+            ->setWatermarkSize('30x10');
     }
 
     /**
@@ -238,8 +228,7 @@ class Renderer extends \Magento\View\Element\Template
 
         if ($product->isVisibleInSiteVisibility()) {
             return true;
-        }
-        else {
+        } else {
             if ($product->hasUrlDataObject()) {
                 $data = $product->getUrlDataObject();
                 if (in_array($data->getVisibility(), $product->getVisibleInSiteVisibilities())) {
diff --git a/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Configurable.php b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Configurable.php
index a5d331e408db6c3529a2fc807a2287e46c461dd1..d23047f0284fe807b53449db377dde0d6b919328 100644
--- a/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Configurable.php
+++ b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Configurable.php
@@ -18,38 +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    Magento
- * @package     Magento_Checkout
  * @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)
  */
 
-/**
- * Shopping cart item render block
- *
- * @category    Magento
- * @package     Magento_Checkout
- * @author      Magento Core Team <core@magentocommerce.com>
- */
 namespace Magento\Checkout\Block\Cart\Item\Renderer;
 
+use Magento\Catalog\Model\Config\Source\Product\Thumbnail as ThumbnailSource;
+
+/**
+ * Shopping cart item render block for configurable products.
+ */
 class Configurable extends \Magento\Checkout\Block\Cart\Item\Renderer
 {
-    const CONFIGURABLE_PRODUCT_IMAGE= 'checkout/cart/configurable_product_image';
-    const USE_PARENT_IMAGE          = 'parent';
-
     /**
-     * Get item configurable product
-     *
-     * @return \Magento\Catalog\Model\Product
+     * Path in config to the setting which defines if parent or child product should be used to generate a thumbnail.
      */
-    public function getConfigurableProduct()
-    {
-        if ($option = $this->getItem()->getOptionByCode('product_type')) {
-            return $option->getProduct();
-        }
-        return $this->getProduct();
-    }
+    const CONFIG_THUMBNAIL_SOURCE = 'checkout/cart/configurable_product_image';
 
     /**
      * Get item configurable child product
@@ -64,22 +49,6 @@ class Configurable extends \Magento\Checkout\Block\Cart\Item\Renderer
         return $this->getProduct();
     }
 
-    /**
-     * Get product thumbnail image
-     *
-     * @return \Magento\Catalog\Model\Product\Image
-     */
-    public function getProductThumbnail()
-    {
-        $product = $this->getChildProduct();
-        if (!$product || !$product->getData('thumbnail')
-            || ($product->getData('thumbnail') == 'no_selection')
-            || ($this->_storeConfig->getConfig(self::CONFIGURABLE_PRODUCT_IMAGE) == self::USE_PARENT_IMAGE)) {
-            $product = $this->getProduct();
-        }
-        return $this->_imageHelper->init($product, 'thumbnail');
-    }
-
     /**
      * Get item product name
      *
@@ -91,24 +60,31 @@ class Configurable extends \Magento\Checkout\Block\Cart\Item\Renderer
     }
 
     /**
-     * Get selected for configurable product attributes
+     * Get list of all otions for product
      *
      * @return array
      */
-    public function getProductAttributes()
+    public function getOptionList()
     {
-        $attributes = $this->getProduct()->getTypeInstance()
-            ->getSelectedAttributesInfo($this->getProduct());
-        return $attributes;
+        return $this->_productConfig->getConfigurableOptions($this->getItem());
     }
 
     /**
-     * Get list of all otions for product
-     *
-     * @return array
+     * {@inheritdoc}
      */
-    public function getOptionList()
+    public function getProductForThumbnail()
     {
-        return $this->_productConfig->getConfigurableOptions($this->getItem());
+        /**
+         * Show parent product thumbnail if it must be always shown according to the related setting in system config
+         * or if child thumbnail is not available
+         */
+        if ($this->_storeConfig->getConfig(self::CONFIG_THUMBNAIL_SOURCE) == ThumbnailSource::OPTION_USE_PARENT_IMAGE
+            || !($this->getChildProduct()->getThumbnail() && $this->getChildProduct()->getThumbnail() != 'no_selection')
+        ) {
+            $product = $this->getProduct();
+        } else {
+            $product = $this->getChildProduct();
+        }
+        return $product;
     }
 }
diff --git a/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Grouped.php b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Grouped.php
index e464220ade2b3e452c4aaec6dbd4ba0d41c6069f..c32bddc20a2d91ac527c5bdf62bd5072ab59bbb4 100644
--- a/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Grouped.php
+++ b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Grouped.php
@@ -18,25 +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    Magento
- * @package     Magento_Checkout
  * @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\Checkout\Block\Cart\Item\Renderer;
+
+use Magento\Catalog\Model\Config\Source\Product\Thumbnail as ThumbnailSource;
+
 /**
  * Shopping cart item render block
- *
- * @category    Magento
- * @package     Magento_Checkout
- * @author      Magento Core Team <core@magentocommerce.com>
  */
-namespace Magento\Checkout\Block\Cart\Item\Renderer;
-
 class Grouped extends \Magento\Checkout\Block\Cart\Item\Renderer
 {
-    const GROUPED_PRODUCT_IMAGE = 'checkout/cart/grouped_product_image';
-    const USE_PARENT_IMAGE      = 'parent';
+    /**
+     * Path in config to the setting which defines if parent or child product should be used to generate a thumbnail.
+     */
+    const CONFIG_THUMBNAIL_SOURCE = 'checkout/cart/grouped_product_image';
 
     /**
      * Get item grouped product
@@ -53,35 +51,21 @@ class Grouped extends \Magento\Checkout\Block\Cart\Item\Renderer
     }
 
     /**
-     * Get product thumbnail image
-     *
-     * @return \Magento\Catalog\Model\Product\Image
+     * {@inheritdoc}
      */
-    public function getProductThumbnail()
+    public function getProductForThumbnail()
     {
-        $product = $this->getProduct();
-        if (!$product->getData('thumbnail')
-            || ($product->getData('thumbnail') == 'no_selection')
-            || ($this->_storeConfig->getConfig(self::GROUPED_PRODUCT_IMAGE) == self::USE_PARENT_IMAGE)) {
+        /**
+         * Show grouped product thumbnail if it must be always shown according to the related setting in system config
+         * or if child product thumbnail is not available
+         */
+        if ($this->_storeConfig->getConfig(self::CONFIG_THUMBNAIL_SOURCE) == ThumbnailSource::OPTION_USE_PARENT_IMAGE
+            || !($this->getProduct()->getThumbnail() && $this->getProduct()->getThumbnail() != 'no_selection')
+        ) {
             $product = $this->getGroupedProduct();
+        } else {
+            $product = $this->getProduct();
         }
-        return $this->_imageHelper->init($product, 'thumbnail');
-    }
-
-    /**
-     * Prepare item html
-     *
-     * This method uses renderer for real product type
-     *
-     * @return string
-     */
-    protected function _toHtml()
-    {
-        $renderer = $this->getRenderedBlock()->getItemRenderer($this->getItem()->getRealProductType());
-        $renderer->setItem($this->getItem());
-        $renderer->overrideProductThumbnail($this->getProductThumbnail());
-        $rendererHtml = $renderer->toHtml();
-        $renderer->overrideProductThumbnail(null);
-        return $rendererHtml;
+        return $product;
     }
 }
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 2693ac4df37397c4c6491d8e414aff049b11a5ea..1aa9ca7c8fb4c52732d97980d842d6ea63889aba 100644
--- a/app/code/Magento/Checkout/view/frontend/cart/item/default.phtml
+++ b/app/code/Magento/Checkout/view/frontend/cart/item/default.phtml
@@ -35,7 +35,7 @@ $canApplyMsrp = $this->helper('Magento\Catalog\Helper\Data')->canApplyMsrp($_ite
         <?php else:?>
             <span class="product photo">
         <?php endif;?>
-        <?php echo $this->getLayout()->createBlock('Magento\Catalog\Block\Product\Image')->init($_item->getProduct(), 'cart_page_product_thumbnail')->toHtml(); ?>
+        <?php echo $this->getLayout()->createBlock('Magento\Catalog\Block\Product\Image')->init($this->getProductForThumbnail(), 'cart_page_product_thumbnail')->toHtml(); ?>
         <?php if ($this->hasProductUrl()):?></a><?php else: ?></span><?php endif; ?>
         <div class="product details">
             <strong class="product name">
diff --git a/app/code/Magento/Checkout/view/frontend/cart/sidebar/default.phtml b/app/code/Magento/Checkout/view/frontend/cart/sidebar/default.phtml
index 7d0da1e682db0483b78ed153631b817f4aff8eb2..5d60084af298b63ce441fdfc24d793f214199a14 100644
--- a/app/code/Magento/Checkout/view/frontend/cart/sidebar/default.phtml
+++ b/app/code/Magento/Checkout/view/frontend/cart/sidebar/default.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\Checkout\Block\Cart\Item\Renderer */
 ?>
 <?php $_item = $this->getItem() ?>
 <?php $canApplyMsrp = $this->helper('Magento\Catalog\Helper\Data')->canApplyMsrp($_item->getProduct(), \Magento\Catalog\Model\Product\Attribute\Source\Msrp\Type::TYPE_BEFORE_ORDER_CONFIRM); ?>
@@ -30,11 +32,11 @@
 <div class="product">
     <?php if ($this->hasProductUrl()): ?>
         <a href="<?php echo $this->getProductUrl()?>" title="<?php echo $this->escapeHtml($this->getProductName()) ?>" class="product photo">
-            <?php echo $imageBlock->init($_item->getProduct(), 'mini_cart_product_thumbnail')->toHtml() ?>
+            <?php echo $imageBlock->init($this->getProductForThumbnail(), 'mini_cart_product_thumbnail')->toHtml() ?>
         </a>
     <?php else: ?>
         <span class="product photo">
-            <?php echo $imageBlock->init($_item->getProduct(), 'mini_cart_product_thumbnail')->toHtml() ?>
+            <?php echo $imageBlock->init($this->getProductForThumbnail(), 'mini_cart_product_thumbnail')->toHtml() ?>
         </span>
     <?php endif; ?>
 
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml
index b81bc05ad22e41dca72f0232bed7e9af3de25214..173335470baa2169cfb9c0c8956dca7ec56dbf60 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml
@@ -26,32 +26,32 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="page_one_column"/>
     <referenceContainer name="content">
-        <block class="Magento\Checkout\Block\Cart" name="checkout.cart" template="cart.phtml">
+        <block class="Magento\Checkout\Block\Cart" name="checkout.cart" template="cart.phtml" cacheable="false">
             <container name="checkout.cart.items" label="invisible" as="with-items">
-                <block class="Magento\Checkout\Block\Cart" name="checkout.cart.form" as="cart-items" template="cart/form.phtml">
-                    <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="simple" template="cart/item/default.phtml"/>
-                    <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="cart/item/default.phtml"/>
-                    <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="cart/item/default.phtml"/>
+                <block class="Magento\Checkout\Block\Cart" name="checkout.cart.form" as="cart-items" template="cart/form.phtml" cacheable="false">
+                    <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="simple" template="cart/item/default.phtml" cacheable="false"/>
+                    <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="cart/item/default.phtml" cacheable="false"/>
+                    <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="cart/item/default.phtml" cacheable="false"/>
                     <container name="checkout.cart.form.before" as="form_before" label="Shopping Cart Items Before" htmlTag="div" htmlClass="rewards"/>
                     <container name="checkout.cart.widget" as="checkout_cart_widget" label="Shopping Cart Items After"/>
                 </block>
-                <block class="Magento\Checkout\Block\Cart\Shipping" name="checkout.cart.shipping" as="shipping" after="checkout.cart.summary.title" template="cart/shipping.phtml"/>
-                <block class="Magento\Checkout\Block\Cart\Coupon" name="checkout.cart.coupon" as="coupon" after="checkout.cart.shipping" template="cart/coupon.phtml"/>
-                <block class="Magento\Checkout\Block\Cart\Totals" name="checkout.cart.totals" as="totals" template="cart/totals.phtml"/>
-                <block class="Magento\Checkout\Block\Cart" name="checkout.cart.methods.bottom" template="cart/methods.phtml">
+                <block class="Magento\Checkout\Block\Cart\Shipping" name="checkout.cart.shipping" as="shipping" after="checkout.cart.summary.title" template="cart/shipping.phtml" cacheable="false"/>
+                <block class="Magento\Checkout\Block\Cart\Coupon" name="checkout.cart.coupon" as="coupon" after="checkout.cart.shipping" template="cart/coupon.phtml" cacheable="false"/>
+                <block class="Magento\Checkout\Block\Cart\Totals" name="checkout.cart.totals" as="totals" template="cart/totals.phtml" cacheable="false"/>
+                <block class="Magento\Checkout\Block\Cart" name="checkout.cart.methods.bottom" template="cart/methods.phtml" cacheable="false">
                     <container name="checkout.cart.methods" as="methods" label="Payment Methods After Checkout Button">
-                        <block class="Magento\Checkout\Block\Onepage\Link" name="checkout.cart.methods.onepage.bottom" template="onepage/link.phtml"/>
-                        <block class="Magento\Checkout\Block\Multishipping\Link" name="checkout.cart.methods.multishipping" template="multishipping/link.phtml"/>
+                        <block class="Magento\Checkout\Block\Onepage\Link" name="checkout.cart.methods.onepage.bottom" template="onepage/link.phtml" cacheable="false"/>
+                        <block class="Magento\Checkout\Block\Multishipping\Link" name="checkout.cart.methods.multishipping" template="multishipping/link.phtml" cacheable="false"/>
                     </container>
                 </block>
-                <block class="Magento\Checkout\Block\Cart\Crosssell" name="checkout.cart.crosssell" template="Magento_Catalog::product/list/items.phtml" after="-">
+                <block class="Magento\Checkout\Block\Cart\Crosssell" name="checkout.cart.crosssell" template="Magento_Catalog::product/list/items.phtml" after="-" cacheable="false">
                     <arguments>
                         <argument name="type" xsi:type="string">crosssell</argument>
                     </arguments>
                 </block>
             </container>
             <container name="checkout.cart.noitems" label="invisible" as="no-items">
-                <block class="Magento\Checkout\Block\Cart" name="checkout.cart.empty" before="-" template="cart/noItems.phtml"/>
+                <block class="Magento\Checkout\Block\Cart" name="checkout.cart.empty" before="-" template="cart/noItems.phtml" cacheable="false"/>
                 <container name="checkout.cart.empty.widget" as="checkout_cart_empty_widget" label="Empty Shopping Cart Content Before"/>
             </container>
         </block>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_address_select.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_address_select.xml
index d38cf7ba587e9c7150608342b71af8390693fd95..c5fe4930435a07eb8fc9a6341783ca706d264148 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_address_select.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_address_select.xml
@@ -26,6 +26,6 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" label="Multishipping Checkout Shipping Address Selection" design_abstraction="custom">
     <update handle="checkout_multishipping"/>
     <referenceContainer name="content">
-        <block class="Magento\Checkout\Block\Multishipping\Address\Select" name="checkout_address_select" template="multishipping/address/select.phtml"/>
+        <block class="Magento\Checkout\Block\Multishipping\Address\Select" name="checkout_address_select" template="multishipping/address/select.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_address_selectbilling.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_address_selectbilling.xml
index 21ad81739e80489de656eac7cf846a17fd978cb2..c5aa54a45f9769fa6f460fb5360e410d2eccf133 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_address_selectbilling.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_address_selectbilling.xml
@@ -31,6 +31,6 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Checkout\Block\Multishipping\Address\Select" name="checkout_address_select" template="multishipping/address/select.phtml"/>
+        <block class="Magento\Checkout\Block\Multishipping\Address\Select" name="checkout_address_select" template="multishipping/address/select.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_addresses.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_addresses.xml
index 2317bfbb046d78b73593bf58353f11c0bd112b89..6df01b9e51ba08b77ac9d9e15873e15490f8386e 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_addresses.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_addresses.xml
@@ -31,10 +31,10 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Checkout\Block\Multishipping\Addresses" name="checkout_addresses" template="multishipping/addresses.phtml">
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="multishipping/item/default.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="multishipping/item/default.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="multishipping/item/default.phtml"/>
+        <block class="Magento\Checkout\Block\Multishipping\Addresses" name="checkout_addresses" template="multishipping/addresses.phtml" cacheable="false">
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="multishipping/item/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="multishipping/item/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="multishipping/item/default.phtml" cacheable="false"/>
         </block>
     </referenceContainer>
     <block class="Magento\View\Element\Template" name="additional.product.info" template="Magento_Core::template.phtml"/>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_billing.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_billing.xml
index a126d24cc58b18c9a36b7f869033204f2511ea27..78fa0930ea68dc539c5af654a9756f726cb0a008 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_billing.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_billing.xml
@@ -31,7 +31,7 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Checkout\Block\Multishipping\Billing" name="checkout_billing" template="multishipping/billing.phtml">
+        <block class="Magento\Checkout\Block\Multishipping\Billing" name="checkout_billing" template="multishipping/billing.phtml" cacheable="false">
             <action method="setMethodFormTemplate">
                 <argument name="method" xsi:type="string">purchaseorder</argument>
                 <argument name="template" xsi:type="string">Magento_Payment::form/purchaseorder.phtml</argument>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_customer_address.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_customer_address.xml
index ed3deff462371d47d86161f1904b6d0a8a16de4c..361796e5dca240146ff25f2496806ad3373de142 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_customer_address.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_customer_address.xml
@@ -25,7 +25,7 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" label="Multishipping Checkout Customer Address Edit Form" design_abstraction="custom">
     <referenceContainer name="content">
-        <block class="Magento\Customer\Block\Address\Edit" name="customer_address_edit" template="address/edit.phtml"/>
+        <block class="Magento\Customer\Block\Address\Edit" name="customer_address_edit" template="address/edit.phtml" cacheable="false"/>
     </referenceContainer>
     <update handle="customer_form_template_handle"/>
 </layout>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_overview.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_overview.xml
index 7abe05f2ee44c343473ef4bac8e2b6c2c179323f..1ed00cd9ce2800375d4b497c87a6970f57502118 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_overview.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_overview.xml
@@ -31,12 +31,12 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Checkout\Block\Multishipping\Overview" name="checkout_overview" template="multishipping/overview.phtml">
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="multishipping/item/default.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="multishipping/item/default.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="multishipping/item/default.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="row-grouped" template="multishipping/overview/item.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="row-configurable" template="multishipping/overview/item.phtml"/>
+        <block class="Magento\Checkout\Block\Multishipping\Overview" name="checkout_overview" template="multishipping/overview.phtml" cacheable="false">
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="multishipping/item/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="multishipping/item/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="multishipping/item/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="row-grouped" template="multishipping/overview/item.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="row-configurable" template="multishipping/overview/item.phtml" cacheable="false"/>
             <block class="Magento\Checkout\Block\Multishipping\Payment\Info" name="payment_info">
                 <action method="setInfoTemplate">
                     <argument name="method" xsi:type="string"/>
@@ -44,7 +44,7 @@
                 </action>
             </block>
             <block class="Magento\Checkout\Block\Agreements" name="checkout.multishipping.agreements" as="agreements" template="agreements.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Totals" name="totals"/>
+            <block class="Magento\Checkout\Block\Cart\Totals" name="totals" cacheable="false"/>
             <container name="checkout.multishipping.overview.items.after" as="items_after" label="Overview Items After"/>
         </block>
     </referenceContainer>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_shipping.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_shipping.xml
index 7878941bc58fddbe9153cae8fe19fc597d51d84a..e06feab2fd564e09d09de052f1e33f1d6c902c41 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_shipping.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_shipping.xml
@@ -31,14 +31,14 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Checkout\Block\Multishipping\Shipping" name="checkout_shipping" template="multishipping/shipping.phtml">
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="multishipping/item/default.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="multishipping/item/default.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="multishipping/item/default.phtml"/>
-            <block class="Magento\Checkout\Block\Multishipping\Billing\Items" name="checkout_billing_items" template="multishipping/billing/items.phtml">
-                <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="multishipping/item/default.phtml"/>
-                <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="multishipping/item/default.phtml"/>
-                <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="multishipping/item/default.phtml"/>
+        <block class="Magento\Checkout\Block\Multishipping\Shipping" name="checkout_shipping" template="multishipping/shipping.phtml" cacheable="false">
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="multishipping/item/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="multishipping/item/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="multishipping/item/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Multishipping\Billing\Items" name="checkout_billing_items" template="multishipping/billing/items.phtml" cacheable="false">
+                <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="multishipping/item/default.phtml" cacheable="false"/>
+                <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="multishipping/item/default.phtml" cacheable="false"/>
+                <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="multishipping/item/default.phtml" cacheable="false"/>
             </block>
         </block>
     </referenceContainer>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_success.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_success.xml
index 0ef1073bf8f1d7c9b637daf6f9d3b4da233ba28b..b6d955c6428166bdd887eefe00809ee3bd9504d7 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_success.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_multishipping_success.xml
@@ -31,6 +31,6 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Checkout\Block\Multishipping\Success" name="checkout_success" template="multishipping/success.phtml"/>
+        <block class="Magento\Checkout\Block\Multishipping\Success" name="checkout_success" template="multishipping/success.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_index.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_index.xml
index 5478047f775dde24752b0ab77a0f6e223b7bab2c..698d4799289f2477a27de796fef40edcf6f200ec 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_index.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_index.xml
@@ -31,21 +31,21 @@
         </container>
     </referenceContainer>
     <referenceContainer name="content">
-        <block class="Magento\Checkout\Block\Onepage" name="checkout.onepage" template="onepage.phtml">
-            <block class="Magento\Checkout\Block\Onepage\Login" name="checkout.onepage.login" as="login" template="onepage/login.phtml">
+        <block class="Magento\Checkout\Block\Onepage" name="checkout.onepage" template="onepage.phtml" cacheable="false">
+            <block class="Magento\Checkout\Block\Onepage\Login" name="checkout.onepage.login" as="login" template="onepage/login.phtml" cacheable="false">
                 <container name="checkout.onepage.login.before" as="login_before" label="Login/Registration Before" htmlTag="div"/>
                 <container name="form.login.additional.info" label="invisible" as="form_additional_info"/>
             </block>
-            <block class="Magento\Checkout\Block\Onepage\Billing" name="checkout.onepage.billing" as="billing" template="onepage/billing.phtml">
+            <block class="Magento\Checkout\Block\Onepage\Billing" name="checkout.onepage.billing" as="billing" template="onepage/billing.phtml" cacheable="false">
                 <container name="form.billing.additional.info" label="invisible" as="form_additional_info"/>
             </block>
-            <block class="Magento\Checkout\Block\Onepage\Shipping" name="checkout.onepage.shipping" as="shipping" template="onepage/shipping.phtml" />
-            <block class="Magento\Checkout\Block\Onepage\Shipping\Method" name="checkout.onepage.shipping_method" as="shipping_method" template="onepage/shipping_method.phtml">
-                <block class="Magento\Checkout\Block\Onepage\Shipping\Method\Available" name="checkout.onepage.shipping_method.available" as="available" template="onepage/shipping_method/available.phtml"/>
+            <block class="Magento\Checkout\Block\Onepage\Shipping" name="checkout.onepage.shipping" as="shipping" template="onepage/shipping.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Onepage\Shipping\Method" name="checkout.onepage.shipping_method" as="shipping_method" template="onepage/shipping_method.phtml" cacheable="false">
+                <block class="Magento\Checkout\Block\Onepage\Shipping\Method\Available" name="checkout.onepage.shipping_method.available" as="available" template="onepage/shipping_method/available.phtml" cacheable="false"/>
                 <block class="Magento\Checkout\Block\Onepage\Shipping\Method\Additional" name="checkout.onepage.shipping_method.additional" as="additional" template="onepage/shipping_method/additional.phtml"/>
             </block>
-            <block class="Magento\Checkout\Block\Onepage\Payment" name="checkout.onepage.payment" as="payment" template="onepage/payment.phtml">
-                <block class="Magento\Checkout\Block\Onepage\Payment\Methods" name="checkout.payment.methods" as="methods" template="onepage/payment/methods.phtml">
+            <block class="Magento\Checkout\Block\Onepage\Payment" name="checkout.onepage.payment" as="payment" template="onepage/payment.phtml" cacheable="false">
+                <block class="Magento\Checkout\Block\Onepage\Payment\Methods" name="checkout.payment.methods" as="methods" template="onepage/payment/methods.phtml" cacheable="false">
                     <action method="setMethodFormTemplate">
                         <argument name="method" xsi:type="string">purchaseorder</argument>
                         <argument name="template" xsi:type="string">Magento_Payment::form/purchaseorder.phtml</argument>
@@ -54,7 +54,7 @@
                 <block class="Magento\View\Element\Template" name="checkout.onepage.payment.additional" as="additional"/>
                 <block class="Magento\View\Element\Template" name="checkout.onepage.payment.methods_additional" as="methods_additional"/>
             </block>
-            <block class="Magento\Checkout\Block\Onepage\Review" name="checkout.onepage.review" as="review" template="onepage/review.phtml"/>
+            <block class="Magento\Checkout\Block\Onepage\Review" name="checkout.onepage.review" as="review" template="onepage/review.phtml" cacheable="false"/>
         </block>
     </referenceContainer>
     <update handle="customer_form_template_handle"/>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_paymentmethod.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_paymentmethod.xml
index 683a2854b21ba4e446d521e978b138290590ad46..c73eba27b6f2596144b0721e218302bb712d63d1 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_paymentmethod.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_paymentmethod.xml
@@ -24,7 +24,7 @@
  */
  -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <block class="Magento\Checkout\Block\Onepage\Payment\Methods" name="payment_method" output="1" template="onepage/payment/methods.phtml">
+    <block class="Magento\Checkout\Block\Onepage\Payment\Methods" name="payment_method" output="1" template="onepage/payment/methods.phtml" cacheable="false">
         <action method="setMethodFormTemplate">
             <argument name="method" xsi:type="string">purchaseorder</argument>
             <argument name="template" xsi:type="string">Magento_Payment::form/purchaseorder.phtml</argument>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_progress.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_progress.xml
index aa7782fcb8d9d7e34b3602d1219261bdb244bde1..ee47d36c1e78d4f55aa1988fd45aa06b5366e2e3 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_progress.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_progress.xml
@@ -25,7 +25,7 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <block class="Magento\Checkout\Block\Onepage\Progress" name="progress" output="1" template="onepage/progress.phtml">
-        <block class="Magento\Checkout\Block\Onepage\Payment\Info" name="payment_info">
+        <block class="Magento\Checkout\Block\Onepage\Payment\Info" name="payment_info" cacheable="false">
             <action method="setInfoTemplate">
                 <argument name="method" xsi:type="string"/>
                 <argument name="template" xsi:type="string"/>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_review.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_review.xml
index 75b4f8f6f9f1df37e732825d43cbc34c27bd078d..8fef618e8628deb178ee4d4b3fec6d06256f0594 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_review.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_review.xml
@@ -24,11 +24,11 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <block class="Magento\Checkout\Block\Onepage\Review\Info" name="order_review" output="1" template="onepage/review/info.phtml">
-        <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="onepage/review/item.phtml"/>
-        <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="onepage/review/item.phtml"/>
-        <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="onepage/review/item.phtml"/>
-        <block class="Magento\Checkout\Block\Cart\Totals" name="checkout.onepage.review.info.totals" as="totals" template="onepage/review/totals.phtml"/>
+    <block class="Magento\Checkout\Block\Onepage\Review\Info" name="order_review" output="1" template="onepage/review/info.phtml" cacheable="false">
+        <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="onepage/review/item.phtml" cacheable="false"/>
+        <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="onepage/review/item.phtml" cacheable="false"/>
+        <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="onepage/review/item.phtml" cacheable="false"/>
+        <block class="Magento\Checkout\Block\Cart\Totals" name="checkout.onepage.review.info.totals" as="totals" template="onepage/review/totals.phtml" cacheable="false"/>
         <container name="checkout.onepage.review.info.items.before" as="items_before" label="Items Before"/>
         <container name="checkout.onepage.review.info.items.after" as="items_after" label="Items After"/>
         <block class="Magento\Checkout\Block\Agreements" name="checkout.onepage.agreements" as="agreements" template="agreements.phtml"/>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_shippingmethod.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_shippingmethod.xml
index 05c230fe0a5b9871671e413db196811fcd367e3b..cf8faebb7128cb97484dea6bec5f10449cfb77d2 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_shippingmethod.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_shippingmethod.xml
@@ -24,5 +24,5 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <block class="Magento\Checkout\Block\Onepage\Shipping\Method\Available" name="shipping_method" output="1" template="onepage/shipping_method/available.phtml"/>
+    <block class="Magento\Checkout\Block\Onepage\Shipping\Method\Available" name="shipping_method" output="1" template="onepage/shipping_method/available.phtml" cacheable="false"/>
 </layout>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_success.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_success.xml
index dcff7f31e1b7041b9b3b30866bc1248b50ca0e0a..e8277f2a826cd73c69b775cc13fafb7d2433570c 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_success.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_success.xml
@@ -31,6 +31,6 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Checkout\Block\Onepage\Success" name="checkout.success" template="success.phtml"/>
+        <block class="Magento\Checkout\Block\Onepage\Success" name="checkout.success" template="success.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Checkout/view/frontend/layout/default.xml b/app/code/Magento/Checkout/view/frontend/layout/default.xml
index cd906583e9715ca2d75b9b33076e1b5ca19e63f2..8bf1c13e3c78d3a63629284fb82960c301215241 100644
--- a/app/code/Magento/Checkout/view/frontend/layout/default.xml
+++ b/app/code/Magento/Checkout/view/frontend/layout/default.xml
@@ -27,12 +27,12 @@
     <referenceBlock name="head.components">
         <block class="Magento\View\Element\Js\Components" name="checkout_page_head_components" template="Magento_Checkout::js/components.phtml"/>
     </referenceBlock>
-    <referenceContainer name="header">
-        <block class="Magento\Checkout\Block\Cart\Sidebar" name="minicart" as="minicart" after="logo" template="cart/minicart.phtml">
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="simple" template="cart/sidebar/default.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="cart/sidebar/default.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="cart/sidebar/default.phtml"/>
-            <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="virtual" template="cart/sidebar/default.phtml"/>
+    <referenceContainer name="header-wrapper">
+        <block class="Magento\Checkout\Block\Cart\Sidebar" name="minicart" as="minicart" after="logo" template="cart/minicart.phtml" cacheable="false">
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="simple" template="cart/sidebar/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="cart/sidebar/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="cart/sidebar/default.phtml" cacheable="false"/>
+            <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="virtual" template="cart/sidebar/default.phtml" cacheable="false"/>
             <container name="minicart.extra.info" as="minicart_info" label="My Cart Extra info"/>
             <container name="topCart.extra_actions" as="extra_actions" label="My Cart Extra Actions"/>
         </block>
diff --git a/app/code/Magento/Core/Model/App.php b/app/code/Magento/Core/Model/App.php
index ccc76fe963684eb77b68196e4c9d6029e983cac6..ece5761cca2a7c26c88acbe68b64599f5906c3b8 100644
--- a/app/code/Magento/Core/Model/App.php
+++ b/app/code/Magento/Core/Model/App.php
@@ -53,7 +53,7 @@ class App implements \Magento\Core\Model\AppInterface
     /**
      * Magento version
      */
-    const VERSION = '2.0.0.0-dev60';
+    const VERSION = '2.0.0.0-dev61';
 
 
     /**
@@ -804,7 +804,7 @@ class App implements \Magento\Core\Model\AppInterface
             'revision'  => '0',
             'patch'     => '0',
             'stability' => 'dev',
-            'number'    => '60',
+            'number'    => '61',
         );
     }
 }
diff --git a/app/code/Magento/Core/Model/Layout.php b/app/code/Magento/Core/Model/Layout.php
index 3fe636c262ee1026e689d73154e912ba41ac7a1d..2b951e72de89fa576065a500e6123f05c3db74d8 100644
--- a/app/code/Magento/Core/Model/Layout.php
+++ b/app/code/Magento/Core/Model/Layout.php
@@ -1658,4 +1658,14 @@ class Layout extends \Magento\Simplexml\Config implements \Magento\View\LayoutIn
         }
         return $messageGroups;
     }
+
+    /**
+     * Check is exists non-cacheable layout elements
+     *
+     * @return bool
+     */
+    public function  isCacheable()
+    {
+        return !(boolean)count($this->_xml->xpath('//' . Element::TYPE_BLOCK . '[@cacheable="false"]'));
+    }
 }
diff --git a/app/code/Magento/Core/Model/Locale.php b/app/code/Magento/Core/Model/Locale.php
index bbca15273c1c221d61738bfba9cae12a4bb0161b..57fc7c2f8f1f312262a45a99d82fa86e6c275f98 100644
--- a/app/code/Magento/Core/Model/Locale.php
+++ b/app/code/Magento/Core/Model/Locale.php
@@ -359,16 +359,20 @@ class Locale implements \Magento\Core\Model\LocaleInterface
     /**
      * Retrieve days of week option list
      *
+     * @param bool $preserveCodes
+     * @param bool $ucFirstCode
+     *
      * @return array
      */
-    public function getOptionWeekdays()
+    public function getOptionWeekdays($preserveCodes = false, $ucFirstCode = false)
     {
         $options= array();
         $days = $this->getTranslationList('days');
-        foreach (array_values($days['format']['wide']) as $code => $name) {
+        $days = $preserveCodes ? $days['format']['wide']  : array_values($days['format']['wide']);
+        foreach ($days as $code => $name) {
             $options[] = array(
                'label' => $name,
-               'value' => $code,
+               'value' => $ucFirstCode ? ucfirst($code) : $code,
             );
         }
         return $options;
diff --git a/app/code/Magento/Core/Model/LocaleInterface.php b/app/code/Magento/Core/Model/LocaleInterface.php
index 1e3996c81359080df52a5b44a46a64bbbe99e659..c0cd6a6d463fc92871720bb401509307146bbbc0 100644
--- a/app/code/Magento/Core/Model/LocaleInterface.php
+++ b/app/code/Magento/Core/Model/LocaleInterface.php
@@ -138,9 +138,11 @@ interface LocaleInterface
     /**
      * Retrieve days of week option list
      *
+     * @param bool $preserveCodes
+     * @param bool $ucFirstCode
      * @return array
      */
-    public function getOptionWeekdays();
+    public function getOptionWeekdays($preserveCodes = false, $ucFirstCode = false);
 
     /**
      * Retrieve country option list
diff --git a/app/code/Magento/Core/Model/Session/Config.php b/app/code/Magento/Core/Model/Session/Config.php
index 88c7a7ada86a0f4d594c3da592d4ab91fe19edba..ac8ea3c1d03b839700ce62655763a1fe2a761074 100644
--- a/app/code/Magento/Core/Model/Session/Config.php
+++ b/app/code/Magento/Core/Model/Session/Config.php
@@ -174,7 +174,7 @@ class Config implements \Magento\Session\Config\ConfigInterface
         $domain = $this->_storeConfig->getConfig(self::XML_PATH_COOKIE_DOMAIN, $this->_storeManager->getStore());
         $domain = empty($domain) ? $this->_httpRequest->getHttpHost() : $domain;
         $this->setCookieDomain((string)$domain);
-        $this->setCookieSecure($this->_httpRequest->isSecure());
+
         $this->setCookieHttpOnly(
             $this->_storeConfig->getConfig(self::XML_PATH_COOKIE_HTTPONLY, $this->_storeManager->getStore())
         );
diff --git a/app/code/Magento/Core/etc/layouts.xsd b/app/code/Magento/Core/etc/layouts.xsd
index 1e6d9b7bbe472ab6677827211f8bf4840be38d7f..a091804c3086bcd98ed841db62f32405940406d9 100644
--- a/app/code/Magento/Core/etc/layouts.xsd
+++ b/app/code/Magento/Core/etc/layouts.xsd
@@ -234,6 +234,7 @@
         <xs:attribute type="xs:string" name="acl" use="optional"/>
         <xs:attribute type="xs:string" name="ifconfig" use="optional"/>
         <xs:attribute type="xs:string" name="group" use="optional" />
+        <xs:attribute name="cacheable" type="xs:boolean" default="true" use="optional"/>
     </xs:complexType>
 
     <xs:complexType name="dataType">
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index.php b/app/code/Magento/Customer/Controller/Adminhtml/Index.php
index fa3cbeada28de9f770b55e3c28ebbf3aa32ba916..046953d1a9d59f45adaaf1045ea7c9d7cb780350 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index.php
@@ -326,8 +326,10 @@ class Index extends \Magento\Backend\App\Action
                 ->generateResetPasswordLinkToken();
             $customer->changeResetPasswordLinkToken($newPasswordToken);
             $resetUrl = $this->_objectManager->create('Magento\Core\Model\Url')
-                ->getUrl('customer/account/createPassword',
-                    array('_query' => array('id' => $customer->getId(), 'token' => $newPasswordToken))
+                ->getUrl('customer/account/createPassword', array(
+                        '_query' => array('id' => $customer->getId(), 'token' => $newPasswordToken),
+                        '_store' => $customer->getStoreId()
+                    )
                 );
             $customer->setResetPasswordUrl($resetUrl);
             $customer->sendPasswordReminderEmail();
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 92900d0da575f401ddd6e8c24b27989363e22d03..3bc8732cff0d4308d7f7dd4e8444ff1544f097cc 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
@@ -30,7 +30,7 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Customer\Block\Form\Register" name="customer_form_register" template="form/register.phtml">
+        <block class="Magento\Customer\Block\Form\Register" name="customer_form_register" template="form/register.phtml" cacheable="false">
             <container name="form.additional.info" label="invisible" as="form_additional_info"/>
             <container name="customer.form.register.fields.before" as="form_fields_before" label="Form Fields Before" htmlTag="div" htmlClass="customer-form-before"/>
         </block>
diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_createpassword.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_createpassword.xml
index 8110383e0fb2991e6645219a7ad90968bc954e75..340952c5eb5118aace4c0dec122bfc9b9756c714 100644
--- a/app/code/Magento/Customer/view/frontend/layout/customer_account_createpassword.xml
+++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_createpassword.xml
@@ -38,6 +38,6 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Customer\Block\Account\Resetpassword" name="resetPassword" template="form/resetforgottenpassword.phtml"/>
+        <block class="Magento\Customer\Block\Account\Resetpassword" name="resetPassword" template="form/resetforgottenpassword.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
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 4229e74ec10d32104e1b53634ff85f9703b6959d..bdc31389c7eda92f57e1db3deec60674c8bf0c68 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
@@ -31,6 +31,6 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Customer\Block\Form\Edit" name="customer_edit" template="form/edit.phtml"/>
+        <block class="Magento\Customer\Block\Form\Edit" name="customer_edit" template="form/edit.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_forgotpassword.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_forgotpassword.xml
index d3b4784bfa4750b58564ae0c458f2bf2840c5b7d..35a76958fec3726d3a4d8c874e3f9657ab05de64 100644
--- a/app/code/Magento/Customer/view/frontend/layout/customer_account_forgotpassword.xml
+++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_forgotpassword.xml
@@ -38,7 +38,7 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Customer\Block\Account\Forgotpassword" name="forgotPassword" template="form/forgotpassword.phtml">
+        <block class="Magento\Customer\Block\Account\Forgotpassword" name="forgotPassword" template="form/forgotpassword.phtml" cacheable="false">
             <container name="form.additional.info" label="invisible" as="form_additional_info"/>
         </block>
     </referenceContainer>
diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_index.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_index.xml
index 7e2b89981671b51f47dd63afa4014a92d6debc3d..ff3922e4b4615636ef828a2a24df2c10e4cf8376 100644
--- a/app/code/Magento/Customer/view/frontend/layout/customer_account_index.xml
+++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_index.xml
@@ -31,9 +31,9 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Customer\Block\Account\Dashboard\Hello" name="customer_account_dashboard_hello" as="hello" template="account/dashboard/hello.phtml"/>
+        <block class="Magento\Customer\Block\Account\Dashboard\Hello" name="customer_account_dashboard_hello" as="hello" template="account/dashboard/hello.phtml" cacheable="false"/>
         <block class="Magento\View\Element\Template" name="customer_account_dashboard_top" as="top"/>
-        <block class="Magento\Customer\Block\Account\Dashboard\Info" name="customer_account_dashboard_info" as="info" template="account/dashboard/info.phtml"/>
-        <block class="Magento\Customer\Block\Account\Dashboard\Address" name="customer_account_dashboard_address" as="address" template="account/dashboard/address.phtml"/>
+        <block class="Magento\Customer\Block\Account\Dashboard\Info" name="customer_account_dashboard_info" as="info" template="account/dashboard/info.phtml" cacheable="false"/>
+        <block class="Magento\Customer\Block\Account\Dashboard\Address" name="customer_account_dashboard_address" as="address" template="account/dashboard/address.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_login.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_login.xml
index da701a1abd8f3babb11c6728454936ffe94c5c65..cb929cf57463dc1743b90305540d506ee8f5e0c9 100644
--- a/app/code/Magento/Customer/view/frontend/layout/customer_account_login.xml
+++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_login.xml
@@ -32,10 +32,10 @@
     <referenceContainer name="content">
         <!-- customer.form.login.extra -->
         <container name="customer.login.container" label="Customer Login Container" htmlTag="div" htmlClass="login container">
-            <block class="Magento\Customer\Block\Form\Login" name="customer_form_login" template="form/login.phtml">
+            <block class="Magento\Customer\Block\Form\Login" name="customer_form_login" template="form/login.phtml" cacheable="false">
                 <container name="form.additional.info" label="invisible" as="form_additional_info"/>
             </block>
-            <block class="Magento\Customer\Block\Form\Login" name="customer.new" template="newcustomer.phtml"/>
+            <block class="Magento\Customer\Block\Form\Login" name="customer.new" template="newcustomer.phtml" cacheable="false"/>
         </container>
     </referenceContainer>
 </layout>
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 36540b9c252385d6331ba000154bebbd8e972e7a..08d85e9c5907984729864f0d8bde77653ee29abe 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
@@ -31,6 +31,6 @@
         </arguments>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Customer\Block\Address\Edit" name="customer_address_edit" template="address/edit.phtml"/>
+        <block class="Magento\Customer\Block\Address\Edit" name="customer_address_edit" template="address/edit.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
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 a3798f84da3be857e6b32907040ae83954dee6a0..0d8414ad546b2762500ef86319e67cb773f78b11 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
@@ -26,9 +26,9 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceBlock name="page.main.title">
-        <block class="Magento\Customer\Block\Address\Book" name="address.book.button" template="address/button.phtml"/>
+        <block class="Magento\Customer\Block\Address\Book" name="address.book.button" template="address/button.phtml" cacheable="false"/>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Customer\Block\Address\Book" name="address_book" template="address/book.phtml"/>
+        <block class="Magento\Customer\Block\Address\Book" name="address_book" template="address/book.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Customer/view/frontend/layout/default.xml b/app/code/Magento/Customer/view/frontend/layout/default.xml
index 2c16d92297ad6f743e19e883801a35ee84e741e6..c0cf556c60480c5636521132dc8bbe3dcef68738 100644
--- a/app/code/Magento/Customer/view/frontend/layout/default.xml
+++ b/app/code/Magento/Customer/view/frontend/layout/default.xml
@@ -25,16 +25,16 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceBlock name="top.links">
-        <block class="Magento\Customer\Block\Account\Link" name="my-account-link">
+        <block class="Magento\Customer\Block\Account\Link" name="my-account-link" cacheable="false">
             <arguments>
                 <argument name="label" xsi:type="string">My Account</argument>
             </arguments>
         </block>
-        <block class="Magento\Customer\Block\Account\RegisterLink" after="authorization-link-login" name="register-link">
+        <block class="Magento\Customer\Block\Account\RegisterLink" after="authorization-link-login" name="register-link" cacheable="false">
             <arguments>
                 <argument name="label" xsi:type="string">Register</argument>
             </arguments>
         </block>
-        <block class="Magento\Customer\Block\Account\AuthorizationLink" name="authorization-link" after="onepage-checkout-link"/>
+        <block class="Magento\Customer\Block\Account\AuthorizationLink" name="authorization-link" after="onepage-checkout-link" cacheable="false"/>
     </referenceBlock>
 </layout>
diff --git a/app/code/Magento/GoogleCheckout/view/frontend/layout/checkout_cart_index.xml b/app/code/Magento/GoogleCheckout/view/frontend/layout/checkout_cart_index.xml
index 7656414940a31a557f06b6c401fc53399bbbb86f..f89e77bc9caa21919f18860a5597dc6047fe9fc0 100644
--- a/app/code/Magento/GoogleCheckout/view/frontend/layout/checkout_cart_index.xml
+++ b/app/code/Magento/GoogleCheckout/view/frontend/layout/checkout_cart_index.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="checkout.cart.methods">
-        <block class="Magento\GoogleCheckout\Block\Link" name="checkout.cart.methods.googlecheckout.bottom" template="link.phtml"/>
+        <block class="Magento\GoogleCheckout\Block\Link" name="checkout.cart.methods.googlecheckout.bottom" template="link.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Export.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Export.php
index 1f423a0a46e9533554e6c85d9ad01fa28005d662..03e67a9fbd9d5f9a7b76228d36e21031fd916680 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Export.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Export.php
@@ -91,8 +91,8 @@ class Export extends \Magento\Backend\App\Action
 
                 return $this->_fileFactory->create(
                     $model->getFileName(),
-                    \Magento\Filesystem::VAR_DIR,
                     $model->export(),
+                    \Magento\Filesystem::VAR_DIR,
                     $model->getContentType()
                 );
             } catch (\Magento\Core\Exception $e) {
diff --git a/app/code/Magento/Newsletter/view/frontend/layout/default.xml b/app/code/Magento/Newsletter/view/frontend/layout/default.xml
index 175bb8ba8bb593984725ade83f93692aa276c01b..bcf28a3dbf80e26bf92e48fec52850301820077d 100644
--- a/app/code/Magento/Newsletter/view/frontend/layout/default.xml
+++ b/app/code/Magento/Newsletter/view/frontend/layout/default.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="footer">
-        <block class="Magento\Newsletter\Block\Subscribe" name="form.subscribe" as="subscribe" before="-" template="subscribe.phtml"/>
+        <block class="Magento\Newsletter\Block\Subscribe" name="form.subscribe" as="subscribe" before="-" template="subscribe.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Newsletter/view/frontend/layout/newsletter_manage_index.xml b/app/code/Magento/Newsletter/view/frontend/layout/newsletter_manage_index.xml
index e790675d06bb77bc9f714796a20c005d5e0adf3e..7701e265d77a81423fa6951ad0ff2554ede5bb26 100644
--- a/app/code/Magento/Newsletter/view/frontend/layout/newsletter_manage_index.xml
+++ b/app/code/Magento/Newsletter/view/frontend/layout/newsletter_manage_index.xml
@@ -26,7 +26,7 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceContainer name="content">
-        <block class="Magento\Customer\Block\Newsletter" name="customer_newsletter">
+        <block class="Magento\Customer\Block\Newsletter" name="customer_newsletter" cacheable="false">
             <container name="customer.newsletter.form.before" as="form_before" label="Newsletter Subscription Form Before" htmlTag="div" htmlClass="rewards"/>
         </block>
     </referenceContainer>
diff --git a/app/code/Magento/Ogone/view/frontend/layout/ogone_api_paypage.xml b/app/code/Magento/Ogone/view/frontend/layout/ogone_api_paypage.xml
index 94218c2bcc134e6cc6bde49acf7541b074370377..f39f141de04b8316be9b48f41a115feff09dea1f 100644
--- a/app/code/Magento/Ogone/view/frontend/layout/ogone_api_paypage.xml
+++ b/app/code/Magento/Ogone/view/frontend/layout/ogone_api_paypage.xml
@@ -25,7 +25,7 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <remove name="catalog.topnav"/>
-    <referenceBlock name="header">
+    <referenceBlock name="header-wrapper">
         <remove name="top.links"/>
         <remove name="top.search"/>
         <remove name="store_language"/>
diff --git a/app/code/Magento/Ogone/view/frontend/layout/ogone_api_placeform.xml b/app/code/Magento/Ogone/view/frontend/layout/ogone_api_placeform.xml
index 271e0e1195c3d07b46673a54c8f2b08a27558870..5bc5a9c452fda78d3329d51283a43a3d7819bb53 100644
--- a/app/code/Magento/Ogone/view/frontend/layout/ogone_api_placeform.xml
+++ b/app/code/Magento/Ogone/view/frontend/layout/ogone_api_placeform.xml
@@ -26,6 +26,6 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="page_one_column"/>
     <referenceContainer name="content">
-        <block class="Magento\Ogone\Block\Placeform" name="ogone_placeform" template="placeform.phtml"/>
+        <block class="Magento\Ogone\Block\Placeform" name="ogone_placeform" template="placeform.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Paypal/view/frontend/layout/SHORTCUT_popup.xml b/app/code/Magento/Paypal/view/frontend/layout/SHORTCUT_popup.xml
index 7ce3c1d0c21970b41df578fe61593e4deb80beeb..b1f43c9dcdf0030afc51234eaa6b1638dcbc7dce 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/SHORTCUT_popup.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/SHORTCUT_popup.xml
@@ -28,7 +28,7 @@
         <container name="product.info.addtocart.paypal.wrapper" label="PayPal Express Checkout Shortcut Wrapper"
                    htmlTag="div">
             <block class="Magento\Paypal\Block\Express\Shortcut" name="product.info.addtocart.paypal"
-                   template="express/shortcut.phtml">
+                   template="express/shortcut.phtml" cacheable="false">
                 <action method="setIsInCatalogProduct">
                     <argument name="value" xsi:type="string">1</argument>
                 </action>
diff --git a/app/code/Magento/Paypal/view/frontend/layout/checkout_cart_index.xml b/app/code/Magento/Paypal/view/frontend/layout/checkout_cart_index.xml
index b2125d7ff9e589e6f1b839f044f286c1abc09044..53deb726ad05481be4f5f273d8ac7675ae398a01 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/checkout_cart_index.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/checkout_cart_index.xml
@@ -26,7 +26,7 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="checkout.cart.top_methods">
         <block class="Magento\Paypal\Block\Express\Shortcut" name="checkout.cart.methods.paypal_express.top" before="-"
-               template="express/shortcut.phtml">
+               template="express/shortcut.phtml" cacheable="false">
             <action method="setIsQuoteAllowed">
                 <argument name="value" xsi:type="string">1</argument>
             </action>
@@ -34,7 +34,7 @@
     </referenceContainer>
     <referenceContainer name="checkout.cart.methods">
         <block class="Magento\Paypal\Block\Express\Shortcut" name="checkout.cart.methods.paypal_express.bottom"
-               before="-" template="express/shortcut.phtml">
+               before="-" template="express/shortcut.phtml" cacheable="false">
             <action method="setIsQuoteAllowed">
                 <argument name="value" xsi:type="string">1</argument>
             </action>
diff --git a/app/code/Magento/Paypal/view/frontend/layout/checkout_onepage_review.xml b/app/code/Magento/Paypal/view/frontend/layout/checkout_onepage_review.xml
index 3e92d95707d54eb4d804642a9aaa3e10eb152334..a649fcf8e162880279685d81c7ac449f18c104cc 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/checkout_onepage_review.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/checkout_onepage_review.xml
@@ -25,7 +25,7 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="checkout.onepage.review.info.items.after">
-        <block class="Magento\Paypal\Block\Iframe" name="paypal.iframe"/>
+        <block class="Magento\Paypal\Block\Iframe" name="paypal.iframe" cacheable="false"/>
     </referenceContainer>
     <referenceBlock name="checkout.onepage.review.button">
         <action method="setTemplate">
diff --git a/app/code/Magento/Paypal/view/frontend/layout/default.xml b/app/code/Magento/Paypal/view/frontend/layout/default.xml
index 80575b490e6c82d0ca988396b7ef353ed522550a..2bb674915d0e52c496769708c03a8a48406aecb3 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/default.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/default.xml
@@ -26,10 +26,10 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="topCart.extra_actions">
         <block class="Magento\Paypal\Block\Express\Shortcut" name="paypal.partner.top_cart.shortcut"
-               template="express/shortcut.phtml"/>
+               template="express/shortcut.phtml" cacheable="false"/>
     </referenceContainer>
     <referenceContainer name="cart_sidebar.extra_actions">
         <block class="Magento\Paypal\Block\Express\Shortcut" name="paypal.partner.cart_sidebar.shortcut"
-               template="express/shortcut.phtml"/>
+               template="express/shortcut.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
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 a4cd3198685f9f130cee80bd1e7960965f9035f6..a5957665188f1180c1a937c0a24e440b60e9cafe 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
@@ -32,21 +32,21 @@
     <referenceContainer name="content">
         <block class="Magento\Paypal\Block\Express\Review" name="paypal.express.review" template="express/review.phtml">
             <block class="Magento\Paypal\Block\Express\Review\Billing" name="express.review.billing" as="billing"
-                   template="express/review/address.phtml"/>
+                   template="express/review/address.phtml" cacheable="false"/>
             <block class="Magento\Paypal\Block\Express\Review\Shipping" name="express.review.shipping" as="shipping"
-                   template="express/review/address.phtml"/>
+                   template="express/review/address.phtml" cacheable="false"/>
             <block class="Magento\Paypal\Block\Express\Review" name="express.review.shipping.method"
                    as="shipping_method" template="express/review/shipping/method.phtml"/>
             <block class="Magento\Paypal\Block\Express\Review\Details" name="paypal.express.review.details" as="details"
                    template="express/review/details.phtml">
                 <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default"
-                       template="onepage/review/item.phtml"/>
+                       template="onepage/review/item.phtml" cacheable="false"/>
                 <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped"
-                       template="onepage/review/item.phtml"/>
+                       template="onepage/review/item.phtml" cacheable="false"/>
                 <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable"
-                       template="onepage/review/item.phtml"/>
+                       template="onepage/review/item.phtml" cacheable="false"/>
                 <block class="Magento\Checkout\Block\Cart\Totals" name="paypal.express.review.details.totals"
-                       as="totals" template="onepage/review/totals.phtml"/>
+                       as="totals" template="onepage/review/totals.phtml" cacheable="false"/>
             </block>
             <block class="Magento\Checkout\Block\Agreements" name="paypal.express.review.details.agreements"
                    as="agreements" template="onepage/agreements.phtml"/>
diff --git a/app/code/Magento/Paypal/view/frontend/layout/paypal_express_review_details.xml b/app/code/Magento/Paypal/view/frontend/layout/paypal_express_review_details.xml
index 8a80914f5c80b3bb1241e3ddbf2661f1ace2db73..f0ed14376cf6fe222ee7cc0ec20f882d9e62b2ab 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/paypal_express_review_details.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/paypal_express_review_details.xml
@@ -25,9 +25,9 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <block class="Magento\Paypal\Block\Express\Review\Details" output="1" name="root" template="express/review/details.phtml">
-        <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="onepage/review/item.phtml"/>
-        <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="onepage/review/item.phtml"/>
-        <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="onepage/review/item.phtml"/>
-        <block class="Magento\Checkout\Block\Cart\Totals" name="paypal.express.review.details.totals" as="totals" template="onepage/review/totals.phtml"/>
+        <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="onepage/review/item.phtml" cacheable="false"/>
+        <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped" template="onepage/review/item.phtml" cacheable="false"/>
+        <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable" template="onepage/review/item.phtml" cacheable="false"/>
+        <block class="Magento\Checkout\Block\Cart\Totals" name="paypal.express.review.details.totals" as="totals" template="onepage/review/totals.phtml" cacheable="false"/>
     </block>
 </layout>
diff --git a/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_cancelpayment.xml b/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_cancelpayment.xml
index c25b9013006e8d60965a8052b552958305d0bd55..0983bc1a3d261fadf06121f21b4e149e39b24503 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_cancelpayment.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_cancelpayment.xml
@@ -25,5 +25,5 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <block class="Magento\Paypal\Block\Payflow\Link\Iframe" name="payflow.link.iframe" output="1"
-           template="payflowlink/redirect.phtml"/>
+           template="payflowlink/redirect.phtml" cacheable="false"/>
 </layout>
diff --git a/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_form.xml b/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_form.xml
index 03a11ae89f1cad331f93515756174385c7060a0b..f13be34b6bc5f6f48fa4957fc8d34c26cbc3c3ac 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_form.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_form.xml
@@ -25,5 +25,5 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <block class="Magento\Paypal\Block\Payflow\Link\Iframe" name="payflow.link.iframe" output="1"
-           template="payflowlink/form.phtml"/>
+           template="payflowlink/form.phtml" cacheable="false"/>
 </layout>
diff --git a/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_returnurl.xml b/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_returnurl.xml
index c25b9013006e8d60965a8052b552958305d0bd55..0983bc1a3d261fadf06121f21b4e149e39b24503 100644
--- a/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_returnurl.xml
+++ b/app/code/Magento/Paypal/view/frontend/layout/paypal_payflow_returnurl.xml
@@ -25,5 +25,5 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <block class="Magento\Paypal\Block\Payflow\Link\Iframe" name="payflow.link.iframe" output="1"
-           template="payflowlink/redirect.phtml"/>
+           template="payflowlink/redirect.phtml" cacheable="false"/>
 </layout>
diff --git a/app/code/Magento/PaypalUk/view/frontend/layout/SHORTCUT_uk_popup.xml b/app/code/Magento/PaypalUk/view/frontend/layout/SHORTCUT_uk_popup.xml
index c54121cd6cd301839d7831a73b024d33448269fe..5e340be4acfa9e25ca3c9cde14d1255d99de43d9 100644
--- a/app/code/Magento/PaypalUk/view/frontend/layout/SHORTCUT_uk_popup.xml
+++ b/app/code/Magento/PaypalUk/view/frontend/layout/SHORTCUT_uk_popup.xml
@@ -28,7 +28,7 @@
         <container name="product.info.addtocart.paypaluk.wrapper"
                    label="PayPal Express Checkout (Payflow Edition) Shortcut Wrapper" htmlTag="div">
             <block class="Magento\PaypalUk\Block\Express\Shortcut" name="product.info.addtocart.paypaluk"
-                   template="Magento_Paypal::express/shortcut.phtml">
+                   template="Magento_Paypal::express/shortcut.phtml" cacheable="false">
                 <action method="setIsInCatalogProduct">
                     <argument name="value" xsi:type="string">1</argument>
                 </action>
diff --git a/app/code/Magento/PaypalUk/view/frontend/layout/checkout_cart_index.xml b/app/code/Magento/PaypalUk/view/frontend/layout/checkout_cart_index.xml
index 380eb3d8802026c8187b2262a82246221df130aa..87b1ed17124fcb405f6d7c9e39527e948c18915d 100644
--- a/app/code/Magento/PaypalUk/view/frontend/layout/checkout_cart_index.xml
+++ b/app/code/Magento/PaypalUk/view/frontend/layout/checkout_cart_index.xml
@@ -26,7 +26,7 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="checkout.cart.top_methods">
         <block class="Magento\PaypalUk\Block\Express\Shortcut" name="checkout.cart.methods.paypaluk_express.top"
-               before="-" template="Magento_Paypal::express/shortcut.phtml">
+               before="-" template="Magento_Paypal::express/shortcut.phtml" cacheable="false">
             <action method="setIsQuoteAllowed">
                 <argument name="value" xsi:type="string">1</argument>
             </action>
@@ -34,7 +34,7 @@
     </referenceContainer>
     <referenceContainer name="checkout.cart.methods">
         <block class="Magento\PaypalUk\Block\Express\Shortcut" name="checkout.cart.methods.paypaluk_express.bottom"
-               before="-" template="Magento_Paypal::express/shortcut.phtml">
+               before="-" template="Magento_Paypal::express/shortcut.phtml" cacheable="false">
             <action method="setIsQuoteAllowed">
                 <argument name="value" xsi:type="string">1</argument>
             </action>
diff --git a/app/code/Magento/PaypalUk/view/frontend/layout/default.xml b/app/code/Magento/PaypalUk/view/frontend/layout/default.xml
index 5332859787f25930f0f2d263eb20e090c61faa7d..87713b75bf821af6d3bd0fc7a37ede4a2779bbe2 100644
--- a/app/code/Magento/PaypalUk/view/frontend/layout/default.xml
+++ b/app/code/Magento/PaypalUk/view/frontend/layout/default.xml
@@ -26,6 +26,6 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="cart_sidebar.extra_actions">
         <block class="Magento\PaypalUk\Block\Express\Shortcut" name="paypaluk.partner.cart_sidebar.shortcut"
-               template="Magento_Paypal::express/shortcut.phtml"/>
+               template="Magento_Paypal::express/shortcut.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/PaypalUk/view/frontend/layout/paypal_express_review_details.xml b/app/code/Magento/PaypalUk/view/frontend/layout/paypal_express_review_details.xml
index de0da079338c525933a2c41405891722f96a8e78..00380155449e79efecc7ff30b8b33234e8bf570c 100644
--- a/app/code/Magento/PaypalUk/view/frontend/layout/paypal_express_review_details.xml
+++ b/app/code/Magento/PaypalUk/view/frontend/layout/paypal_express_review_details.xml
@@ -26,12 +26,12 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <block class="Magento\Paypal\Block\Express\Review\Details" name="root" output="1"
            template="express/review/details.phtml">
-        <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="onepage/review/item.phtml"/>
+        <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="onepage/review/item.phtml" cacheable="false"/>
         <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped"
-               template="onepage/review/item.phtml"/>
+               template="onepage/review/item.phtml" cacheable="false"/>
         <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable"
-               template="onepage/review/item.phtml"/>
+               template="onepage/review/item.phtml" cacheable="false"/>
         <block class="Magento\Checkout\Block\Cart\Totals" name="paypal.express.review.details.totals" as="totals"
-               template="onepage/review/totals.phtml"/>
+               template="onepage/review/totals.phtml" cacheable="false"/>
     </block>
 </layout>
diff --git a/app/code/Magento/PaypalUk/view/frontend/layout/paypaluk_express_review.xml b/app/code/Magento/PaypalUk/view/frontend/layout/paypaluk_express_review.xml
index 2cc59e126c30898d212eb95c0e54abfa5d1ce91c..17b595fd69733b9004eb5d33a6ce01be467b9a14 100644
--- a/app/code/Magento/PaypalUk/view/frontend/layout/paypaluk_express_review.xml
+++ b/app/code/Magento/PaypalUk/view/frontend/layout/paypaluk_express_review.xml
@@ -38,13 +38,13 @@
             <block class="Magento\Paypal\Block\Express\Review\Details" name="paypal.express.review.details" as="details"
                    template="express/review/details.phtml">
                 <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default"
-                       template="onepage/review/item.phtml"/>
+                       template="onepage/review/item.phtml" cacheable="false"/>
                 <block class="Magento\Checkout\Block\Cart\Item\Renderer\Grouped" as="grouped"
-                       template="onepage/review/item.phtml"/>
+                       template="onepage/review/item.phtml" cacheable="false"/>
                 <block class="Magento\Checkout\Block\Cart\Item\Renderer\Configurable" as="configurable"
-                       template="onepage/review/item.phtml"/>
+                       template="onepage/review/item.phtml" cacheable="false"/>
                 <block class="Magento\Checkout\Block\Cart\Totals" name="paypal.express.review.details.totals"
-                       as="totals" template="onepage/review/totals.phtml"/>
+                       as="totals" template="onepage/review/totals.phtml" cacheable="false"/>
             </block>
             <block class="Magento\Checkout\Block\Agreements" name="paypal.express.review.details.agreements"
                    as="agreements" template="onepage/agreements.phtml"/>
diff --git a/app/code/Magento/Persistent/Block/Header/Additional.php b/app/code/Magento/Persistent/Block/Header/Additional.php
index 4db1b9e7f38e579fced0b83044209c669e0203f9..15a069f7bd116dc9929378b7ec8c2f4b5ef6f121 100644
--- a/app/code/Magento/Persistent/Block/Header/Additional.php
+++ b/app/code/Magento/Persistent/Block/Header/Additional.php
@@ -57,6 +57,16 @@ class Additional extends \Magento\View\Element\Html\Link
         parent::__construct($context, $data);
     }
 
+    /*
+     * Retrieve unset cookie link
+     *
+     * @return string
+     */
+    public function getHref()
+    {
+        return $this->getUrl('persistent/index/unsetCookie');
+    }
+
     /**
      * Render additional header html
      *
@@ -66,9 +76,6 @@ class Additional extends \Magento\View\Element\Html\Link
     {
         $text = __('(Not %1?)', $this->escapeHtml($this->_persistentSession->getCustomer()->getName()));
 
-        $this->setAnchorText($text);
-        $this->setHref($this->getUrl('persistent/index/unsetCookie'));
-
-        return parent::_toHtml();
+        return '<span><a ' . $this->getLinkAttributes() . ' >' . $this->escapeHtml($text) . '</a></span>';
     }
 }
diff --git a/app/code/Magento/Review/view/frontend/layout/customer_account_index.xml b/app/code/Magento/Review/view/frontend/layout/customer_account_index.xml
index d36a7b963049b921c8c1d10b5b949b994d6337c1..847fa8360e5df8b20465179378e973abad4e7bb5 100644
--- a/app/code/Magento/Review/view/frontend/layout/customer_account_index.xml
+++ b/app/code/Magento/Review/view/frontend/layout/customer_account_index.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="content">
-        <block class="Magento\Review\Block\Customer\Recent" name="customer_account_dashboard_info1" template="customer/recent.phtml" after="customer_account_dashboard_address"/>
+        <block class="Magento\Review\Block\Customer\Recent" name="customer_account_dashboard_info1" template="customer/recent.phtml" after="customer_account_dashboard_address" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Review/view/frontend/layout/review_customer_index.xml b/app/code/Magento/Review/view/frontend/layout/review_customer_index.xml
index 8a7872a675e6cc99b6b281ee4a815c930c3e500c..c95666522675e29b8452b81ad99c507e636dbab6 100644
--- a/app/code/Magento/Review/view/frontend/layout/review_customer_index.xml
+++ b/app/code/Magento/Review/view/frontend/layout/review_customer_index.xml
@@ -26,6 +26,6 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceContainer name="content">
-        <block class="Magento\Review\Block\Customer\ListCustomer" name="review_customer_list" template="customer/list.phtml"/>
+        <block class="Magento\Review\Block\Customer\ListCustomer" name="review_customer_list" template="customer/list.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Review/view/frontend/layout/review_customer_view.xml b/app/code/Magento/Review/view/frontend/layout/review_customer_view.xml
index 1f5b8b36d83f91e7d32d166914aea1296647b487..4ea6fba5de2cfff4b36892639fb3f69e21ba107e 100644
--- a/app/code/Magento/Review/view/frontend/layout/review_customer_view.xml
+++ b/app/code/Magento/Review/view/frontend/layout/review_customer_view.xml
@@ -26,6 +26,6 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceContainer name="content">
-        <block class="Magento\Review\Block\Customer\View" name="customers_review"/>
+        <block class="Magento\Review\Block\Customer\View" name="customers_review" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Review/view/frontend/layout/review_product_list.xml b/app/code/Magento/Review/view/frontend/layout/review_product_list.xml
index 493fb76cd12bb1fe0aa67d7884e51795d0e7ea06..c7ebe13e385cd8f46db2cec2efe9b8b941f51ce7 100644
--- a/app/code/Magento/Review/view/frontend/layout/review_product_list.xml
+++ b/app/code/Magento/Review/view/frontend/layout/review_product_list.xml
@@ -31,7 +31,7 @@
     </referenceContainer>
     <referenceContainer name="content">
         <container name="product.info.details" label="invisible" htmlTag="div" htmlClass="product info detailed" after="product.info.media">
-            <block class="Magento\Review\Block\Form" name="product.review.form" as="review_form">
+            <block class="Magento\Review\Block\Form" name="product.review.form" as="review_form" cacheable="false">
                 <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"/>
diff --git a/app/code/Magento/Rss/view/frontend/layout/rss_catalog_category.xml b/app/code/Magento/Rss/view/frontend/layout/rss_catalog_category.xml
index bf6b998b571d0e71cf6d59bc5f9729b8c39fc357..e5d031662dbe59007edc5ed0ed2e3afca89508df 100644
--- a/app/code/Magento/Rss/view/frontend/layout/rss_catalog_category.xml
+++ b/app/code/Magento/Rss/view/frontend/layout/rss_catalog_category.xml
@@ -24,7 +24,7 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <block class="Magento\Rss\Block\Catalog\Category" output="1" name="rss.catalog.category">
+    <block class="Magento\Rss\Block\Catalog\Category" output="1" name="rss.catalog.category" 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>
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 0ae2fb47e69319fa869f162f164ec04afeaf5ae1..0961f315709e974a57849ce29302618d2ec1bd75 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
@@ -24,7 +24,7 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <block class="Magento\Rss\Block\Catalog\NewCatalog" output="1" name="rss.catalog.new">
+    <block class="Magento\Rss\Block\Catalog\NewCatalog" output="1" name="rss.catalog.new" 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>
diff --git a/app/code/Magento/Rss/view/frontend/layout/rss_catalog_salesrule.xml b/app/code/Magento/Rss/view/frontend/layout/rss_catalog_salesrule.xml
index a6528e61cc062107c723584f5c0b77afd121c71a..250b5b1cd3ce12d291a777085812f1dacd6396f9 100644
--- a/app/code/Magento/Rss/view/frontend/layout/rss_catalog_salesrule.xml
+++ b/app/code/Magento/Rss/view/frontend/layout/rss_catalog_salesrule.xml
@@ -24,5 +24,5 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <block class="Magento\Rss\Block\Catalog\Salesrule" output="1" name="rss.catalog.salesrule"/>
+    <block class="Magento\Rss\Block\Catalog\Salesrule" output="1" name="rss.catalog.salesrule" cacheable="false"/>
 </layout>
diff --git a/app/code/Magento/Rss/view/frontend/layout/rss_catalog_special.xml b/app/code/Magento/Rss/view/frontend/layout/rss_catalog_special.xml
index 1ba39ebd3b859bb14930e24d297b312dd7019e90..3412d803eb8b7a84d8ddd2fe3bb2ff55477660bf 100644
--- a/app/code/Magento/Rss/view/frontend/layout/rss_catalog_special.xml
+++ b/app/code/Magento/Rss/view/frontend/layout/rss_catalog_special.xml
@@ -24,5 +24,5 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <block class="Magento\Rss\Block\Catalog\Special" output="1" name="rss.catalog.special"/>
+    <block class="Magento\Rss\Block\Catalog\Special" output="1" name="rss.catalog.special" cacheable="false"/>
 </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 171b3010d0c75bcf41f78af6cc51845f4c84c55f..a4ac774311ebd9fa7c328d3145c7615d2ccde39a 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,7 +24,7 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <block class="Magento\Rss\Block\Wishlist" name="rss.wishlist" output="1">
+    <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>
diff --git a/app/code/Magento/Sales/view/frontend/layout/customer_account.xml b/app/code/Magento/Sales/view/frontend/layout/customer_account.xml
index 42fc43b486ce51c136dcdc0ad15f5fa72d9ca897..3d13de8ffc0f58589a2bfc33a93837506ae2c81e 100644
--- a/app/code/Magento/Sales/view/frontend/layout/customer_account.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/customer_account.xml
@@ -45,6 +45,6 @@
         </block>
     </referenceBlock>
     <referenceContainer name="left">
-        <block class="Magento\Sales\Block\Reorder\Sidebar" name="sale.reorder.sidebar" as="reorder" template="reorder/sidebar.phtml"/>
+        <block class="Magento\Sales\Block\Reorder\Sidebar" name="sale.reorder.sidebar" as="reorder" template="reorder/sidebar.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Sales/view/frontend/layout/customer_account_index.xml b/app/code/Magento/Sales/view/frontend/layout/customer_account_index.xml
index 48f8ea5b309e68c0654b48839c8f77ea015d6aa9..cc6a9f50630ebaf314e90048e7240d73f1038fc2 100644
--- a/app/code/Magento/Sales/view/frontend/layout/customer_account_index.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/customer_account_index.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="content">
-        <block class="Magento\Sales\Block\Order\Recent" name="customer_account_dashboard_top" after="customer_account_dashboard_hello" template="order/recent.phtml"/>
+        <block class="Magento\Sales\Block\Order\Recent" name="customer_account_dashboard_top" after="customer_account_dashboard_hello" template="order/recent.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Sales/view/frontend/layout/default.xml b/app/code/Magento/Sales/view/frontend/layout/default.xml
index f84fadfdb49cac5257ac5eef74268f9851e2e33a..2f8fce074210318c1cc59e566437422fcb795dc0 100644
--- a/app/code/Magento/Sales/view/frontend/layout/default.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/default.xml
@@ -25,10 +25,10 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="right">
-        <block class="Magento\Sales\Block\Reorder\Sidebar" name="sale.reorder.sidebar" as="reorder" template="reorder/sidebar.phtml"/>
+        <block class="Magento\Sales\Block\Reorder\Sidebar" name="sale.reorder.sidebar" as="reorder" template="reorder/sidebar.phtml" cacheable="false"/>
     </referenceContainer>
     <referenceBlock name="footer_links">
-        <block class="Magento\Sales\Block\Guest\Link" name="sales-guest-form-link">
+        <block class="Magento\Sales\Block\Guest\Link" name="sales-guest-form-link" cacheable="false">
             <arguments>
                 <argument name="label" xsi:type="string">Orders and Returns</argument>
                 <argument name="path" xsi:type="string">sales/guest/form</argument>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_billing_agreement_index.xml b/app/code/Magento/Sales/view/frontend/layout/sales_billing_agreement_index.xml
index a7715e5732e7f01b1b0d461b23733a29cefa8a27..53ae82c291ed8aac4894f7e7269e01773e6f9bdc 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_billing_agreement_index.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_billing_agreement_index.xml
@@ -26,6 +26,6 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceContainer name="content">
-        <block class="Magento\Sales\Block\Billing\Agreements" name="customer.account.billing.agreement" template="billing/agreements.phtml"/>
+        <block class="Magento\Sales\Block\Billing\Agreements" name="customer.account.billing.agreement" template="billing/agreements.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_billing_agreement_view.xml b/app/code/Magento/Sales/view/frontend/layout/sales_billing_agreement_view.xml
index 5fbde3a7801e2bdfd3b8a3433c1ccce5843483ac..f5bcc48c0ffcb4a7b6099fcf43ac6d7c2df432b9 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_billing_agreement_view.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_billing_agreement_view.xml
@@ -26,6 +26,6 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceContainer name="content">
-        <block class="Magento\Sales\Block\Billing\Agreement\View" name="customer.account.billing.agreement" template="billing/agreement/view.phtml"/>
+        <block class="Magento\Sales\Block\Billing\Agreement\View" name="customer.account.billing.agreement" template="billing/agreement/view.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_email_order_creditmemo_items.xml b/app/code/Magento/Sales/view/frontend/layout/sales_email_order_creditmemo_items.xml
index ea3aa5f742086a017e0086d08f6e9a61a6c52755..8606fd7ae2387ec597f6da665735056471799d60 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_email_order_creditmemo_items.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_email_order_creditmemo_items.xml
@@ -27,7 +27,7 @@
     <block class="Magento\Sales\Block\Order\Email\Creditmemo\Items" name="items" template="email/creditmemo/items.phtml">
         <block class="Magento\Sales\Block\Order\Email\Items\DefaultItems" as="default" template="email/items/creditmemo/default.phtml"/>
         <block class="Magento\Sales\Block\Order\Email\Items\Order\Grouped" as="grouped" template="email/items/creditmemo/default.phtml"/>
-        <block class="Magento\Sales\Block\Order\Creditmemo\Totals" name="creditmemo_totals" template="order/totals.phtml">
+        <block class="Magento\Sales\Block\Order\Creditmemo\Totals" name="creditmemo_totals" template="order/totals.phtml" cacheable="false">
             <arguments>
                 <argument name="label_properties" xsi:type="string">colspan="3" align="right" style="padding:3px 9px"</argument>
                 <argument name="value_properties" xsi:type="string">align="right" style="padding:3px 9px"</argument>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_email_order_invoice_items.xml b/app/code/Magento/Sales/view/frontend/layout/sales_email_order_invoice_items.xml
index 30193ba3ba52613d35625a32b4d5f95b8fe63112..fc245231b47068db4458996b0f5baa7dccd598bb 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_email_order_invoice_items.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_email_order_invoice_items.xml
@@ -27,7 +27,7 @@
     <block class="Magento\Sales\Block\Order\Email\Invoice\Items" name="items" template="email/invoice/items.phtml">
         <block class="Magento\Sales\Block\Order\Email\Items\DefaultItems" as="default" template="email/items/invoice/default.phtml"/>
         <block class="Magento\Sales\Block\Order\Email\Items\Order\Grouped" as="grouped" template="email/items/invoice/default.phtml"/>
-        <block class="Magento\Sales\Block\Order\Invoice\Totals" name="invoice_totals" template="order/totals.phtml">
+        <block class="Magento\Sales\Block\Order\Invoice\Totals" name="invoice_totals" template="order/totals.phtml" cacheable="false">
             <arguments>
                 <argument name="label_properties" xsi:type="string">colspan="3" align="right" style="padding:3px 9px"</argument>
                 <argument name="value_properties" xsi:type="string">align="right" style="padding:3px 9px"</argument>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_creditmemo.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_creditmemo.xml
index 2c305721291187a584dbe36596a68380200c7b09..17b7d0cb21109226d67f943db0da6dee1aa0dd08 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_creditmemo.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_creditmemo.xml
@@ -31,9 +31,9 @@
     </referenceBlock>
     <referenceContainer name="content">
         <block class="Magento\Sales\Block\Order\Info" as="info" name="sales.order.info">
-            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons"/>
+            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/>
         </block>
-        <block class="Magento\Sales\Block\Order\Creditmemo" name="sales.order.creditmemo" after="sales.order.info">
+        <block class="Magento\Sales\Block\Order\Creditmemo" name="sales.order.creditmemo" after="sales.order.info" cacheable="false">
             <block class="Magento\Sales\Block\Order\Creditmemo\Items" name="creditmemo_items" template="order/creditmemo/items.phtml">
                 <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/creditmemo/items/renderer/default.phtml"/>
                 <block class="Magento\Sales\Block\Order\Item\Renderer\Grouped" as="grouped" template="order/creditmemo/items/renderer/default.phtml"/>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_form.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_form.xml
index 360320fa00a4a9159aa57df759044c7b276d23cf..14d25357958fece16a7fab23138954f83d4c1e3c 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_form.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_form.xml
@@ -30,6 +30,6 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Sales\Block\Widget\Guest\Form" name="guest.form" template="guest/form.phtml"/>
+        <block class="Magento\Sales\Block\Widget\Guest\Form" name="guest.form" template="guest/form.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_invoice.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_invoice.xml
index 4143b80b78fc2dcfbf97190cbe0fcf53ba074512..54bd4a12913bc77ebc7e2c41f957b45c55d950f6 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_invoice.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_invoice.xml
@@ -31,9 +31,9 @@
     </referenceBlock>
     <referenceContainer name="content">
         <block class="Magento\Sales\Block\Order\Info" as="info" name="sales.order.info">
-            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons"/>
+            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/>
         </block>
-        <block class="Magento\Sales\Block\Order\Invoice" name="sales.order.invoice" after="sales.order.info">
+        <block class="Magento\Sales\Block\Order\Invoice" name="sales.order.invoice" after="sales.order.info" cacheable="false">
             <block class="Magento\Sales\Block\Order\Invoice\Items" name="invoice_items" template="order/invoice/items.phtml">
                 <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/invoice/items/renderer/default.phtml"/>
                 <block class="Magento\Sales\Block\Order\Item\Renderer\Grouped" as="grouped" template="order/invoice/items/renderer/default.phtml"/>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_printcreditmemo.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_printcreditmemo.xml
index 3726bbda4167898861260a54d019a522fe2c183f..f8d89184781e6f4225dd8cc4debb6c6a74003730 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_printcreditmemo.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_printcreditmemo.xml
@@ -28,7 +28,7 @@
         <block class="Magento\Sales\Block\Order\PrintOrder\Creditmemo" name="sales.order.print.creditmemo" template="order/print/creditmemo.phtml">
             <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/creditmemo/items/renderer/default.phtml"/>
             <block class="Magento\Sales\Block\Order\Item\Renderer\Grouped" as="grouped" template="order/creditmemo/items/renderer/default.phtml"/>
-            <block class="Magento\Sales\Block\Order\Creditmemo\Totals" name="creditmemo_totals" template="order/totals.phtml">
+            <block class="Magento\Sales\Block\Order\Creditmemo\Totals" name="creditmemo_totals" template="order/totals.phtml" cacheable="false">
                 <arguments>
                     <argument name="label_properties" xsi:type="string">colspan="6" class="mark"</argument>
                     <argument name="value_properties" xsi:type="string">class="amount"</argument>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_printinvoice.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_printinvoice.xml
index fc071cd9e9e1b53128864478bbd173474135a57c..13c631f5b3f33bf4c63db1e667e7b6ba2fc52e8b 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_printinvoice.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_printinvoice.xml
@@ -28,7 +28,7 @@
         <block class="Magento\Sales\Block\Order\PrintOrder\Invoice" name="sales.order.print.invoice" template="order/print/invoice.phtml">
             <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/invoice/items/renderer/default.phtml"/>
             <block class="Magento\Sales\Block\Order\Item\Renderer\Grouped" as="grouped" template="order/invoice/items/renderer/default.phtml"/>
-            <block class="Magento\Sales\Block\Order\Invoice\Totals" name="invoice_totals" template="order/totals.phtml">
+            <block class="Magento\Sales\Block\Order\Invoice\Totals" name="invoice_totals" template="order/totals.phtml" cacheable="false">
                 <arguments>
                     <argument name="label_properties" xsi:type="string">colspan="4" class="mark"</argument>
                     <argument name="value_properties" xsi:type="string">class="amount"</argument>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_reorder.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_reorder.xml
index 06accc9c9c082740358c6cc6da9675d9ece44124..66a4dce3bf6f4a4ea69af1198aae163db8b4e53a 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_reorder.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_reorder.xml
@@ -30,6 +30,6 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Sales\Block\Order\View" name="sales.order.view"/>
+        <block class="Magento\Sales\Block\Order\View" name="sales.order.view" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_shipment.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_shipment.xml
index 82c498920ba2b62aa3a2c225df3f4507665b9e9a..156365948105a04300822bf830255084fd8111f6 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_shipment.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_shipment.xml
@@ -31,9 +31,9 @@
     </referenceBlock>
     <referenceContainer name="content">
         <block class="Magento\Sales\Block\Order\Info" as="info" name="sales.order.info">
-            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons"/>
+            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/>
         </block>
-        <block class="Magento\Sales\Block\Order\Shipment" name="sales.order.shipment" after="sales.order.info">
+        <block class="Magento\Sales\Block\Order\Shipment" name="sales.order.shipment" after="sales.order.info" cacheable="false">
             <block class="Magento\Sales\Block\Order\Shipment\Items" name="shipment_items" template="order/shipment/items.phtml">
                 <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/shipment/items/renderer/default.phtml"/>
                 <block class="Magento\Sales\Block\Order\Comments" name="shipment_comments" template="order/comments.phtml"/>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_guest_view.xml b/app/code/Magento/Sales/view/frontend/layout/sales_guest_view.xml
index 8a0c0670680a0e927a5e3869c087f017a7ca5602..eb67d146a8a4cf6829fe161b9ba3937fc934d77d 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_guest_view.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_guest_view.xml
@@ -31,9 +31,9 @@
     </referenceBlock>
     <referenceContainer name="content">
         <block class="Magento\Sales\Block\Order\Info" as="info" name="sales.order.info">
-            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons"/>
+            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/>
         </block>
-        <block class="Magento\Sales\Block\Order\View" name="sales.order.view" after="sales.order.info">
+        <block class="Magento\Sales\Block\Order\View" name="sales.order.view" after="sales.order.info" cacheable="false">
             <block class="Magento\Sales\Block\Order\Items" name="order_items" template="order/items.phtml">
                 <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/items/renderer/default.phtml"/>
                 <block class="Magento\Sales\Block\Order\Item\Renderer\Grouped" as="grouped" template="order/items/renderer/default.phtml"/>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_creditmemo.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_creditmemo.xml
index 3e8286d86ec9f07d642b3b1780f1f3c893792124..15fd5b781dec4330c478f26e8e87f240f0b3a4d4 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_order_creditmemo.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_creditmemo.xml
@@ -27,9 +27,9 @@
     <update handle="customer_account"/>
     <referenceContainer name="content">
         <block class="Magento\Sales\Block\Order\Info" as="info" name="sales.order.info">
-            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons"/>
+            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/>
         </block>
-        <block class="Magento\Sales\Block\Order\Creditmemo" name="sales.order.creditmemo" after="sales.order.info">
+        <block class="Magento\Sales\Block\Order\Creditmemo" name="sales.order.creditmemo" after="sales.order.info" cacheable="false">
             <block class="Magento\Sales\Block\Order\Creditmemo\Items" name="creditmemo_items" template="order/creditmemo/items.phtml">
                 <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/creditmemo/items/renderer/default.phtml"/>
                 <block class="Magento\Sales\Block\Order\Item\Renderer\Grouped" as="grouped" template="order/creditmemo/items/renderer/default.phtml"/>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_history.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_history.xml
index ddeacf08bb72c76647d8321cb874716bc17ce131..63020c6dc834fcaceb916a0f6f9de6be567d529d 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_order_history.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_history.xml
@@ -26,9 +26,9 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceContainer name="content">
-        <block class="Magento\Sales\Block\Order\History" name="sales.order.history">
+        <block class="Magento\Sales\Block\Order\History" name="sales.order.history" cacheable="false">
             <container name="sales.order.history.info" as="info" label="Order History Info"/>
         </block>
-        <block class="Magento\Customer\Block\Account\Dashboard" name="customer.account.link.back" template="account/link/back.phtml"/>
+        <block class="Magento\Customer\Block\Account\Dashboard" name="customer.account.link.back" template="account/link/back.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_invoice.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_invoice.xml
index e59ddfe8eff130f5f98f9aaab1b0a630ec815704..856c8e534e64fb2ae613e961fc4e87e7949c1196 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_order_invoice.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_invoice.xml
@@ -27,9 +27,9 @@
     <update handle="customer_account"/>
     <referenceContainer name="content">
         <block class="Magento\Sales\Block\Order\Info" as="info" name="sales.order.info">
-            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons"/>
+            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/>
         </block>
-        <block class="Magento\Sales\Block\Order\Invoice" name="sales.order.invoice" after="sales.order.info">
+        <block class="Magento\Sales\Block\Order\Invoice" name="sales.order.invoice" after="sales.order.info" cacheable="false">
             <block class="Magento\Sales\Block\Order\Invoice\Items" name="invoice_items" template="order/invoice/items.phtml">
                 <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/invoice/items/renderer/default.phtml"/>
                 <block class="Magento\Sales\Block\Order\Item\Renderer\Grouped" as="grouped" template="order/invoice/items/renderer/default.phtml"/>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_printcreditmemo.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_printcreditmemo.xml
index a4d6a27a18ca7805d2b07a40a1bca37b9b6087c5..7f684f4d3060333870b57a065597e5ec8e85c61d 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_order_printcreditmemo.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_printcreditmemo.xml
@@ -28,7 +28,7 @@
         <block class="Magento\Sales\Block\Order\PrintOrder\Creditmemo" name="sales.order.print.creditmemo" template="order/print/creditmemo.phtml">
             <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/creditmemo/items/renderer/default.phtml"/>
             <block class="Magento\Sales\Block\Order\Item\Renderer\Grouped" as="grouped" template="order/creditmemo/items/renderer/default.phtml"/>
-            <block class="Magento\Sales\Block\Order\Creditmemo\Totals" name="creditmemo_totals" template="order/totals.phtml">
+            <block class="Magento\Sales\Block\Order\Creditmemo\Totals" name="creditmemo_totals" template="order/totals.phtml" cacheable="false">
                 <arguments>
                     <argument name="label_properties" xsi:type="string">colspan="6" class="mark"</argument>
                     <argument name="value_properties" xsi:type="string">class="amount"</argument>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_printinvoice.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_printinvoice.xml
index 47d9c98b5b18e344fc88141c2deb0bb1248255e8..a080901d33eafcbd47d9417cba9c5d1d923b098d 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_order_printinvoice.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_printinvoice.xml
@@ -28,7 +28,7 @@
         <block class="Magento\Sales\Block\Order\PrintOrder\Invoice" name="sales.order.print.invoice" template="order/print/invoice.phtml">
             <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/invoice/items/renderer/default.phtml"/>
             <block class="Magento\Sales\Block\Order\Item\Renderer\Grouped" as="grouped" template="order/invoice/items/renderer/default.phtml"/>
-            <block class="Magento\Sales\Block\Order\Invoice\Totals" name="invoice_totals" template="order/totals.phtml">
+            <block class="Magento\Sales\Block\Order\Invoice\Totals" name="invoice_totals" template="order/totals.phtml" cacheable="false">
                 <arguments>
                     <argument name="label_properties" xsi:type="string">colspan="4" class="mark"</argument>
                     <argument name="value_properties" xsi:type="string">class="amount"</argument>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_reorder.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_reorder.xml
index 812056a896fd3e43f2e03995586d1b91474c6785..2b05bbbd067fed562373e958bb984c24ae1d330a 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_order_reorder.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_reorder.xml
@@ -26,6 +26,6 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceContainer name="content">
-        <block class="Magento\Sales\Block\Order\View" name="sales.order.view"/>
+        <block class="Magento\Sales\Block\Order\View" name="sales.order.view" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_shipment.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_shipment.xml
index 7760454fe1d7a7f72368c4a63f27f53275e3fbce..8669eb1d08da04465432c25e60f9884fb6edee6f 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_order_shipment.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_shipment.xml
@@ -27,9 +27,9 @@
     <update handle="customer_account"/>
     <referenceContainer name="content">
         <block class="Magento\Sales\Block\Order\Info" as="info" name="sales.order.info">
-            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons"/>
+            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/>
         </block>
-        <block class="Magento\Sales\Block\Order\Shipment" name="sales.order.shipment" after="sales.order.info">
+        <block class="Magento\Sales\Block\Order\Shipment" name="sales.order.shipment" after="sales.order.info" cacheable="false">
             <block class="Magento\Sales\Block\Order\Shipment\Items" name="shipment_items" template="order/shipment/items.phtml">
                 <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/shipment/items/renderer/default.phtml"/>
                 <block class="Magento\Sales\Block\Order\Comments" name="shipment_comments" template="order/comments.phtml"/>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_order_view.xml b/app/code/Magento/Sales/view/frontend/layout/sales_order_view.xml
index b3b3bf50e22b847a82f0567a5abac95d00d3e4b2..ac1f33f1ca9d8b363d8f90a26ee3f3c4a0ae8280 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_order_view.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_order_view.xml
@@ -27,9 +27,9 @@
     <update handle="customer_account"/>
     <referenceContainer name="content">
         <block class="Magento\Sales\Block\Order\Info" as="info" name="sales.order.info">
-            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons"/>
+            <block class="Magento\Sales\Block\Order\Info\Buttons" as="buttons" name="sales.order.info.buttons" cacheable="false"/>
         </block>
-        <block class="Magento\Sales\Block\Order\View" name="sales.order.view" after="sales.order.info">
+        <block class="Magento\Sales\Block\Order\View" name="sales.order.view" after="sales.order.info" cacheable="false">
             <block class="Magento\Sales\Block\Order\Items" name="order_items" template="order/items.phtml">
                 <block class="Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer" as="default" template="order/items/renderer/default.phtml"/>
                 <block class="Magento\Sales\Block\Order\Item\Renderer\Grouped" as="grouped" template="order/items/renderer/default.phtml"/>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_recurring_profile_index.xml b/app/code/Magento/Sales/view/frontend/layout/sales_recurring_profile_index.xml
index da330b96501742f070c0f5578acdde6c77ca6a0c..75c7affb14ecb8d5877bfa53201236116d476aa0 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_recurring_profile_index.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_recurring_profile_index.xml
@@ -26,8 +26,8 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceContainer name="content">
-        <block class="Magento\Sales\Block\Recurring\Profiles" name="sales.recurring.profiles" template="recurring/profiles.phtml">
-            <block class="Magento\Sales\Block\Recurring\Profile\Grid" name="sales.recurring.profiles.grid" as="grid" template="recurring/grid.phtml">
+        <block class="Magento\Sales\Block\Recurring\Profiles" name="sales.recurring.profiles" template="recurring/profiles.phtml" cacheable="false">
+            <block class="Magento\Sales\Block\Recurring\Profile\Grid" name="sales.recurring.profiles.grid" as="grid" template="recurring/grid.phtml" cacheable="false">
                 <action method="setEmptyGridMessage">
                     <argument translate="true" name="value" xsi:type="string">There are no recurring profiles yet.</argument>
                 </action>
diff --git a/app/code/Magento/Sales/view/frontend/layout/sales_recurring_profile_orders.xml b/app/code/Magento/Sales/view/frontend/layout/sales_recurring_profile_orders.xml
index 76505aeba2c9bcf899404de5a6c6b9b95a36a1b7..a63210bbccd87be0a469de3d730da7ba91551e80 100644
--- a/app/code/Magento/Sales/view/frontend/layout/sales_recurring_profile_orders.xml
+++ b/app/code/Magento/Sales/view/frontend/layout/sales_recurring_profile_orders.xml
@@ -32,7 +32,7 @@
         </action>
     </referenceBlock>
     <referenceBlock name="sales.recurring.profile.view">
-        <block class="Magento\Sales\Block\Recurring\Profile\Related\Orders\Grid" name="sales.recurring.profile.view.orders" as="table" template="recurring/grid.phtml">
+        <block class="Magento\Sales\Block\Recurring\Profile\Related\Orders\Grid" name="sales.recurring.profile.view.orders" as="table" template="recurring/grid.phtml" cacheable="false">
             <action method="setViewLabel">
                 <argument translate="true" name="value" xsi:type="string">Orders Based on This Profile</argument>
             </action>
diff --git a/app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Widget/Chooser.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Widget/Chooser.php
similarity index 68%
rename from app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Widget/Chooser.php
rename to app/code/Magento/SalesRule/Block/Adminhtml/Promo/Widget/Chooser.php
index 74213d9b39f006cf413509d0c6a834889434dbec..d20c3b174cd6de7b10c5c73ef7156dabe49381d2 100644
--- a/app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Widget/Chooser.php
+++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Widget/Chooser.php
@@ -17,40 +17,34 @@
  * 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_CatalogRule
+ *   
  * @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)
  */
-
-/**
- * Shopping cart price rule chooser
- */
-namespace Magento\CatalogRule\Block\Adminhtml\Promo\Widget;
+namespace Magento\SalesRule\Block\Adminhtml\Promo\Widget;
 
 class Chooser extends \Magento\Backend\Block\Widget\Grid\Extended
 {
     /**
      * @var \Magento\SalesRule\Model\RuleFactory
      */
-    protected $_salesRule;
+    protected $ruleFactory;
 
     /**
      * @param \Magento\Backend\Block\Template\Context $context
      * @param \Magento\Core\Model\Url $urlModel
      * @param \Magento\Backend\Helper\Data $backendHelper
-     * @param \Magento\SalesRule\Model\RuleFactory $salesRule
+     * @param \Magento\SalesRule\Model\RuleFactory $ruleFactory
      * @param array $data
      */
     public function __construct(
         \Magento\Backend\Block\Template\Context $context,
         \Magento\Core\Model\Url $urlModel,
         \Magento\Backend\Helper\Data $backendHelper,
-        \Magento\SalesRule\Model\RuleFactory $salesRule,
+        \Magento\SalesRule\Model\RuleFactory $ruleFactory,
         array $data = array()
     ) {
-        $this->_salesRule = $salesRule;
+        $this->ruleFactory = $ruleFactory;
         parent::__construct($context, $urlModel, $backendHelper, $data);
     }
 
@@ -65,6 +59,23 @@ class Chooser extends \Magento\Backend\Block\Widget\Grid\Extended
         $this->setUseAjax(true);
     }
 
+    /**
+     * Prepare rules collection
+     *
+     * @return Chooser
+     */
+    protected function _prepareCollection()
+    {
+        $collection = $this->ruleFactory->create()->getResourceCollection();
+        $this->setCollection($collection);
+
+        $this->_eventManager->dispatch('adminhtml_block_promo_widget_chooser_prepare_collection', array(
+            'collection' => $collection
+        ));
+
+        return parent::_prepareCollection();
+    }
+
     /**
      * Prepare chooser element HTML
      *
@@ -74,7 +85,7 @@ class Chooser extends \Magento\Backend\Block\Widget\Grid\Extended
     public function prepareElementHtml(\Magento\Data\Form\Element\AbstractElement $element)
     {
         $uniqId = $this->mathRandom->getUniqueHash($element->getId());
-        $sourceUrl = $this->getUrl('catalog_rule/promo_quote/chooser', array('uniq_id' => $uniqId));
+        $sourceUrl = $this->getUrl('sales_rule/promo_quote/chooser', array('uniq_id' => $uniqId));
 
         $chooser = $this->getLayout()->createBlock('Magento\Widget\Block\Adminhtml\Widget\Chooser')
             ->setElement($element)
@@ -84,7 +95,7 @@ class Chooser extends \Magento\Backend\Block\Widget\Grid\Extended
             ->setUniqId($uniqId);
 
         if ($element->getValue()) {
-            $rule = $this->_salesRule->create()->load((int)$element->getValue());
+            $rule = $this->ruleFactory->create()->load((int)$element->getValue());
             if ($rule->getId()) {
                 $chooser->setLabel($rule->getName());
             }
@@ -115,78 +126,61 @@ class Chooser extends \Magento\Backend\Block\Widget\Grid\Extended
         return $js;
     }
 
-    /**
-     * Prepare rules collection
-     *
-     * @return \Magento\Backend\Block\Widget\Grid\Extended
-     */
-    protected function _prepareCollection()
-    {
-        $collection = $this->_salesRule->create()->getResourceCollection();
-        $this->setCollection($collection);
-
-        $this->_eventManager->dispatch('adminhtml_block_promo_widget_chooser_prepare_collection', array(
-            'collection' => $collection
-        ));
-
-        return parent::_prepareCollection();
-    }
-
     /**
      * Prepare columns for rules grid
      *
-     * @return \Magento\Backend\Block\Widget\Grid\Extended
+     * @return Chooser
      */
     protected function _prepareColumns()
     {
         $this->addColumn('rule_id', array(
-            'header'    => __('ID'),
-            'align'     => 'right',
-            'width'     => '50px',
-            'index'     => 'rule_id',
-        ));
+                'header'    => __('ID'),
+                'align'     => 'right',
+                'width'     => '50px',
+                'index'     => 'rule_id',
+            ));
 
         $this->addColumn('name', array(
-            'header'    => __('Rule'),
-            'align'     => 'left',
-            'index'     => 'name',
-        ));
+                'header'    => __('Rule'),
+                'align'     => 'left',
+                'index'     => 'name',
+            ));
 
         $this->addColumn('coupon_code', array(
-            'header'    => __('Coupon Code'),
-            'align'     => 'left',
-            'width'     => '150px',
-            'index'     => 'code',
-        ));
+                'header'    => __('Coupon Code'),
+                'align'     => 'left',
+                'width'     => '150px',
+                'index'     => 'code',
+            ));
 
         $this->addColumn('from_date', array(
-            'header'    => __('Start on'),
-            'align'     => 'left',
-            'width'     => '120px',
-            'type'      => 'date',
-            'index'     => 'from_date',
-        ));
+                'header'    => __('Start on'),
+                'align'     => 'left',
+                'width'     => '120px',
+                'type'      => 'date',
+                'index'     => 'from_date',
+            ));
 
         $this->addColumn('to_date', array(
-            'header'    => __('End on'),
-            'align'     => 'left',
-            'width'     => '120px',
-            'type'      => 'date',
-            'default'   => '--',
-            'index'     => 'to_date',
-        ));
+                'header'    => __('End on'),
+                'align'     => 'left',
+                'width'     => '120px',
+                'type'      => 'date',
+                'default'   => '--',
+                'index'     => 'to_date',
+            ));
 
         $this->addColumn('is_active', array(
-            'header'    => __('Status'),
-            'align'     => 'left',
-            'width'     => '80px',
-            'index'     => 'is_active',
-            'type'      => 'options',
-            'options'   => array(
-                1 => 'Active',
-                0 => 'Inactive',
-            ),
-        ));
+                'header'    => __('Status'),
+                'align'     => 'left',
+                'width'     => '80px',
+                'index'     => 'is_active',
+                'type'      => 'options',
+                'options'   => array(
+                    1 => 'Active',
+                    0 => 'Inactive',
+                ),
+            ));
 
         return parent::_prepareColumns();
     }
@@ -198,6 +192,6 @@ class Chooser extends \Magento\Backend\Block\Widget\Grid\Extended
      */
     public function getGridUrl()
     {
-        return $this->getUrl('catalog_rule/promo_quote/chooser', array('_current' => true));
+        return $this->getUrl('sales_rule/promo_quote/chooser', array('_current' => true));
     }
 }
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php
index 7caa6a9e2356e9fb1f810f11bf4aeb2f0f8bfd54..24228e7908896ab6defae4ad6b7ae16fc581a14e 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php
@@ -438,8 +438,11 @@ class Quote extends \Magento\Backend\App\Action
     public function chooserAction()
     {
         $uniqId = $this->getRequest()->getParam('uniq_id');
-        $chooserBlock = $this->_view->getLayout()
-            ->createBlock('Magento\CatalogRule\Block\Adminhtml\Promo\Widget\Chooser', '', array('data' => array('id' => $uniqId)));
+        $chooserBlock = $this->_view->getLayout()->createBlock(
+            'Magento\SalesRule\Block\Adminhtml\Promo\Widget\Chooser',
+            '',
+            array('data' => array('id' => $uniqId))
+        );
         $this->getResponse()->setBody($chooserBlock->toHtml());
     }
 
diff --git a/app/code/Magento/Sendfriend/view/frontend/layout/sendfriend_product_send.xml b/app/code/Magento/Sendfriend/view/frontend/layout/sendfriend_product_send.xml
index e902d27c550059b99425a77b669637c6a755db6c..8a642999992ff50f270806d6760ca154940d0e6b 100644
--- a/app/code/Magento/Sendfriend/view/frontend/layout/sendfriend_product_send.xml
+++ b/app/code/Magento/Sendfriend/view/frontend/layout/sendfriend_product_send.xml
@@ -31,6 +31,6 @@
         </action>
     </referenceBlock>
     <referenceContainer name="content">
-        <block class="Magento\Sendfriend\Block\Send" name="sendfriend.send" template="send.phtml"/>
+        <block class="Magento\Sendfriend\Block\Send" name="sendfriend.send" template="send.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Tax/view/frontend/checkout/tax.phtml b/app/code/Magento/Tax/view/frontend/checkout/tax.phtml
index 0b2f55c75a6958eba16a52cc3cfc1b70c4d0100b..ea44d6a5265d5c4509bcdce182d5e162a71db09d 100644
--- a/app/code/Magento/Tax/view/frontend/checkout/tax.phtml
+++ b/app/code/Magento/Tax/view/frontend/checkout/tax.phtml
@@ -64,14 +64,14 @@
 <?php
     $attributes = 'class="totals tax"';
     if ($this->helper('Magento\Tax\Helper\Data')->displayFullSummary() && $_value!=0) {
-        $attributes = 'class="totals tax summary"';
+        $attributes = 'class="totals tax summary" data-mage-init=\'{toggleAdvanced: {selectorsToggleClass: "shown", baseToggleClass: "expanded", toggleContainers: ".totals.tax.details"}}\'';
     }
 ?>
 
 <tr <?php echo $attributes; ?>>
     <td style="<?php echo $_style ?>" class="mark" colspan="<?php echo $this->getColspan(); ?>">
         <?php if ($this->helper('Magento\Tax\Helper\Data')->displayFullSummary()): ?>
-            <div class="detailed"><?php echo $this->getTotal()->getTitle() ?></div>
+            <span class="detailed"><?php echo $this->getTotal()->getTitle() ?></span>
         <?php else: ?>
             <?php echo $this->getTotal()->getTitle() ?>
         <?php endif;?>
diff --git a/app/code/Magento/Theme/view/frontend/html/header.phtml b/app/code/Magento/Theme/view/frontend/html/header.phtml
index ee27de80997bc07fd65dc64ad0e45fd47d9096a0..c8320a71dd587b04b4232cf24a24f9a7f8b4210f 100644
--- a/app/code/Magento/Theme/view/frontend/html/header.phtml
+++ b/app/code/Magento/Theme/view/frontend/html/header.phtml
@@ -42,7 +42,7 @@
     <?php break; ?>
 
     <?php case 'welcome': ?>
-        <p class="welcome"><?php echo $this->getWelcome() ?></p>
+        <li class="greet welcome"><?php echo $this->getWelcome() ?></li>
     <?php break; ?>
 
     <?php case 'other': ?>
diff --git a/app/code/Magento/Theme/view/frontend/layout/default.xml b/app/code/Magento/Theme/view/frontend/layout/default.xml
index 0dc07ce2ff569ad7fc95acdb770a7ccd8a17b269..06ecd04d7f1896bd0421f049c334b8e0ca58d892 100644
--- a/app/code/Magento/Theme/view/frontend/layout/default.xml
+++ b/app/code/Magento/Theme/view/frontend/layout/default.xml
@@ -33,7 +33,7 @@
             <container name="header.panel" label="Page Header Panel" htmlTag="div" htmlClass="panel">
                 <block class="Magento\Core\Block\Switcher" name="store_language" as="store_language" template="switch/languages.phtml"/>
             </container>
-            <container name="header" label="Page Header" as="header" htmlTag="div" htmlClass="content">
+            <container name="header-wrapper" label="Page Header" as="header-wrapper" htmlTag="div" htmlClass="content">
                 <block class="Magento\Theme\Block\Html\Header" name="logo">
                     <arguments>
                         <argument name="show_part" xsi:type="string">logo</argument>
diff --git a/app/code/Magento/Usa/Model/Resource/Setup.php b/app/code/Magento/Usa/Model/Resource/Setup.php
new file mode 100644
index 0000000000000000000000000000000000000000..7df317c3105704edecfae6fb2c4d370b51a5228b
--- /dev/null
+++ b/app/code/Magento/Usa/Model/Resource/Setup.php
@@ -0,0 +1,62 @@
+<?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_Usa
+ * @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\Usa\Model\Resource;
+
+
+class Setup extends \Magento\Core\Model\Resource\Setup
+{
+    /**
+     * @var \Magento\Core\Model\Locale
+     */
+    protected $_localeModel;
+
+    /**
+     * @param \Magento\Core\Model\Resource\Setup\Context $context
+     * @param string $resourceName
+     * @param string $moduleName
+     * @param \Magento\Core\Model\Locale $localeModel
+     * @param string $connectionName
+     */
+    public function __construct(
+        \Magento\Core\Model\Resource\Setup\Context $context,
+        $resourceName,
+        $moduleName,
+        \Magento\Core\Model\Locale $localeModel,
+        $connectionName = ''
+    )
+    {
+        $this->_localeModel = $localeModel;
+        parent::__construct($context, $resourceName, $moduleName, $connectionName);
+    }
+
+    /**
+     * @return \Magento\Core\Model\Locale
+     */
+    public function getLocale()
+    {
+        return $this->_localeModel;
+    }
+}
\ No newline at end of file
diff --git a/app/code/Magento/Usa/Model/Shipping/Carrier/AbstractCarrier.php b/app/code/Magento/Usa/Model/Shipping/Carrier/AbstractCarrier.php
index e51257c7d473401b8284b378358da88092fd7738..d8ebc043c440bb73373a0c8241cea328a326612e 100644
--- a/app/code/Magento/Usa/Model/Shipping/Carrier/AbstractCarrier.php
+++ b/app/code/Magento/Usa/Model/Shipping/Carrier/AbstractCarrier.php
@@ -402,6 +402,7 @@ abstract class AbstractCarrier extends \Magento\Shipping\Model\Carrier\AbstractC
     /**
      * Do request to shipment
      *
+     * @throws \Magento\Core\Exception if there are no packages in request
      * @param \Magento\Shipping\Model\Shipment\Request $request
      * @return array
      */
@@ -450,6 +451,7 @@ abstract class AbstractCarrier extends \Magento\Shipping\Model\Carrier\AbstractC
     /**
      * Do request to RMA shipment
      *
+     * @throws \Magento\Core\Exception if there are no packages in request
      * @param $request
      * @return array
      */
diff --git a/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl.php b/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl.php
index a580b1e8681c1410f9e2612ed3e605dc0071db88..c5602f3bda0f2994727c3c099fb4cc261261c6c9 100644
--- a/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl.php
+++ b/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl.php
@@ -30,7 +30,7 @@ namespace Magento\Usa\Model\Shipping\Carrier;
  * DHL shipping implementation
  */
 class Dhl
-    extends \Magento\Usa\Model\Shipping\Carrier\AbstractCarrier
+    extends \Magento\Usa\Model\Shipping\Carrier\Dhl\AbstractDhl
     implements \Magento\Shipping\Model\Carrier\CarrierInterface
 {
 
@@ -97,18 +97,74 @@ class Dhl
      */
     protected $_customizableContainerTypes = array('P');
 
+    /**
+     * Success code
+     *
+     * @var int
+     */
     const SUCCESS_CODE = 203;
+
+    /**
+     * Success label code
+     *
+     * @var int
+     */
     const SUCCESS_LABEL_CODE = 100;
 
+    /**
+     * Code for required additional protection
+     *
+     * @var string
+     */
     const ADDITIONAL_PROTECTION_ASSET = 'AP';
+
+    /**
+     * Code for not required additional protection
+     *
+     * @var string
+     */
     const ADDITIONAL_PROTECTION_NOT_REQUIRED = 'NR';
 
+    /**
+     * Config code of additional protection
+     *
+     * @var int
+     */
     const ADDITIONAL_PROTECTION_VALUE_CONFIG = 0;
+
+    /**
+     * Subtotal code of additional protection
+     *
+     * @var int
+     */
     const ADDITIONAL_PROTECTION_VALUE_SUBTOTAL = 1;
+
+    /**
+     * Subtotal with discount code of additional protection
+     *
+     * @var int
+     */
     const ADDITIONAL_PROTECTION_VALUE_SUBTOTAL_WITH_DISCOUNT = 2;
 
+    /**
+     * Round to floor(lowest) code of additional protection
+     *
+     * @var int
+     */
     const ADDITIONAL_PROTECTION_ROUNDING_FLOOR = 0;
+
+    /**
+     * Round to ceil(highest) code of additional protection
+     *
+     * @var int
+     */
     const ADDITIONAL_PROTECTION_ROUNDING_CEIL = 1;
+
+    /**
+     * Round to precision code of additional protection
+     *
+     * @var int
+     */
     const ADDITIONAL_PROTECTION_ROUNDING_ROUND = 2;
 
     /**
@@ -125,6 +181,11 @@ class Dhl
      */
     protected $string;
 
+    /**
+     * @var \Zend_Http_ClientFactory
+     */
+    protected $_httpClientFactory;
+
     /**
      * @param \Magento\Core\Model\Store\Config $coreStoreConfig
      * @param \Magento\Shipping\Model\Rate\Result\ErrorFactory $rateErrorFactory
@@ -141,6 +202,7 @@ class Dhl
      * @param \Magento\Directory\Helper\Data $directoryData
      * @param \Magento\Usa\Helper\Data $usaData
      * @param \Magento\Stdlib\String $string
+     * @param \Zend_Http_ClientFactory $httpClientFactory
      * @param array $data
      * 
      * @SuppressWarnings(PHPMD.ExcessiveParameterList)
@@ -161,10 +223,12 @@ class Dhl
         \Magento\Directory\Helper\Data $directoryData,
         \Magento\Usa\Helper\Data $usaData,
         \Magento\Stdlib\String $string,
+        \Zend_Http_ClientFactory $httpClientFactory,
         array $data = array()
     ) {
         $this->string = $string;
         $this->_usaData = $usaData;
+        $this->_httpClientFactory = $httpClientFactory;
         parent::__construct(
             $coreStoreConfig,
             $rateErrorFactory,
@@ -495,34 +559,6 @@ class Dhl
         $r->setService($freeMethod);
     }
 
-    /**
-     * Get shipping date
-     *
-     * @param bool $domestic
-     * @return string
-     */
-    protected function _getShipDate($domestic = true)
-    {
-        if ($domestic) {
-            $days = explode(',', $this->getConfigData('shipment_days'));
-        } else {
-            $days = explode(',', $this->getConfigData('intl_shipment_days'));
-        }
-
-        if (!$days) {
-            return date('Y-m-d');
-        }
-
-        $i = 0;
-        $weekday = date('w');
-        while (!in_array($weekday, $days) && $i < 10) {
-            $i++;
-            $weekday = date('w', strtotime("+$i day"));
-        }
-
-        return date('Y-m-d', strtotime("+$i day"));
-    }
-
     /**
      * Get xml quotes
      *
@@ -612,6 +648,7 @@ class Dhl
                     $shippingDuty->addChild('CustomsValue', $customsValue);
                     $shippingDuty->addChild('IsSEDReqd', 'N');
                 }
+
                 if ($shipment !== false) {
                     $hasShipCode = true;
                     $this->_createShipmentXml($shipment, $shipKey);
@@ -621,7 +658,7 @@ class Dhl
 
         if (!$hasShipCode) {
             $this->_errors[] = __('We don\'t have a way to ship to the selected shipping address. Please choose another address or edit the current address.');
-            return;
+            return null;
         }
 
         $request = $xml->asXML();
@@ -634,14 +671,21 @@ class Dhl
                 if (!$url) {
                     $url = $this->_defaultGatewayUrl;
                 }
-                $ch = curl_init();
-                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-                curl_setopt($ch, CURLOPT_URL, $url);
-                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
-                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
-                curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
-                $responseBody = curl_exec($ch);
-                curl_close($ch);
+                $config = array(
+                    'adapter' => 'Zend_Http_Client_Adapter_Curl',
+                    'curloptions' => array(
+                        CURLOPT_RETURNTRANSFER => true,
+                        CURLOPT_URL => $url,
+                        CURLOPT_SSL_VERIFYPEER => true,
+                        CURLOPT_SSL_VERIFYHOST => false,
+                        CURLOPT_POSTFIELDS => $request
+                    )
+                );
+                $client = $this->_httpClientFactory->create(
+                    array('data' => $config)
+                );
+                $response = $client->request();
+                $responseBody = $response->getBody();
 
                 $debugData['result'] = $responseBody;
                 $this->_setCachedQuotes($request, $responseBody);
@@ -1099,8 +1143,7 @@ class Dhl
     /**
      * Send request for tracking
      *
-     * @param array $tracking
-     * @return null
+     * @param array $trackings
      */
     protected function _getXMLTracking($trackings)
     {
@@ -1132,15 +1175,24 @@ class Dhl
             if (!$url) {
                 $url = $this->_defaultGatewayUrl;
             }
-            $ch = curl_init();
-            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-            curl_setopt($ch, CURLOPT_URL, $url);
-            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
-            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
-            curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
-            $responseBody = curl_exec($ch);
+
+            $config = array(
+                'adapter' => 'Zend_Http_Client_Adapter_Curl',
+                'curloptions' => array(
+                    CURLOPT_RETURNTRANSFER => true,
+                    CURLOPT_URL => $url,
+                    CURLOPT_SSL_VERIFYPEER => true,
+                    CURLOPT_SSL_VERIFYHOST => false,
+                    CURLOPT_POSTFIELDS => $request
+                )
+            );
+            $client = $this->_httpClientFactory->create(
+                array('data' => $config)
+            );
+            $response = $client->request();
+            $responseBody = $response->getBody();
+
             $debugData['result'] = $responseBody;
-            curl_close($ch);
         } catch (\Exception $e) {
             $debugData['result'] = array('error' => $e->getMessage(), 'code' => $e->getCode());
             $responseBody = '';
@@ -1152,9 +1204,8 @@ class Dhl
     /**
      * Parse xml tracking response
      *
-     * @param array $trackingvalue
+     * @param array $trackings value
      * @param string $response
-     * @return null
      */
     protected function _parseXmlTrackingResponse($trackings, $response)
     {
diff --git a/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl/AbstractDhl.php b/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl/AbstractDhl.php
new file mode 100644
index 0000000000000000000000000000000000000000..202c5a6d3fb1076d8ce8fcb9f8d9b23fd5764c58
--- /dev/null
+++ b/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl/AbstractDhl.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_Usa
+ * @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\Usa\Model\Shipping\Carrier\Dhl;
+
+abstract class AbstractDhl extends \Magento\Usa\Model\Shipping\Carrier\AbstractCarrier
+{
+    /**
+     * Response condition code for service is unavailable at the requested date
+     */
+    const CONDITION_CODE_SERVICE_DATE_UNAVAILABLE = 1003;
+
+    /**
+     * Count of days to look forward if day is not unavailable
+     */
+    const UNAVAILABLE_DATE_LOOK_FORWARD = 5;
+
+    /**
+     * Date format for request
+     */
+    const REQUEST_DATE_FORMAT = 'Y-m-d';
+
+    /**
+     * Get shipping date
+     *
+     * @param bool $domestic
+     * @return string
+     */
+    protected function _getShipDate($domestic = true)
+    {
+        return $this->_determineShippingDay(
+            $this->getConfigData($domestic ? 'shipment_days' : 'intl_shipment_days'),
+            date(self::REQUEST_DATE_FORMAT)
+        );
+    }
+
+    /**
+     * Determine shipping day according to configuration settings
+     *
+     * @param array $shippingDays
+     * @param string $date
+     * @return string
+     */
+    protected function _determineShippingDay($shippingDays, $date)
+    {
+        if (empty($shippingDays)) {
+            return $date;
+        }
+
+        $shippingDays = explode(',', $shippingDays);
+
+        $i = -1;
+        do {
+            $i++;
+            $weekday = date('D', strtotime("$date +$i day"));
+        } while (!in_array($weekday, $shippingDays) && $i < 10);
+
+        return date(self::REQUEST_DATE_FORMAT, strtotime("$date +$i day"));
+    }
+}
diff --git a/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl/International.php b/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl/International.php
index 6679bf69a56a326676b67ee52a37dbc438ce03cb..f6ecedb7a131f0cf2ef3d4d44345ad559ae01e2c 100644
--- a/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl/International.php
+++ b/app/code/Magento/Usa/Model/Shipping/Carrier/Dhl/International.php
@@ -30,7 +30,7 @@ namespace Magento\Usa\Model\Shipping\Carrier\Dhl;
  * DHL International (API v1.4)
  */
 class International
-    extends \Magento\Usa\Model\Shipping\Carrier\AbstractCarrier
+    extends \Magento\Usa\Model\Shipping\Carrier\Dhl\AbstractDhl
     implements \Magento\Shipping\Model\Carrier\CarrierInterface
 {
     /**
@@ -185,11 +185,6 @@ class International
      */
     protected $mathDivision;
 
-    /**
-     * @var \Magento\Stdlib\DateTime
-     */
-    protected $dateTime;
-
     /**
      * Modules directory with read permissions
      *
@@ -197,6 +192,16 @@ class International
      */
     protected $modulesDirectory;
 
+    /**
+     * @var \Magento\Stdlib\DateTime
+     */
+    protected $_dateTime;
+
+    /**
+     * @var \Zend_Http_ClientFactory
+     */
+    protected $_httpClientFactory;
+
     /**
      * @param \Magento\Core\Model\Store\Config $coreStoreConfig
      * @param \Magento\Shipping\Model\Rate\Result\ErrorFactory $rateErrorFactory
@@ -217,8 +222,9 @@ class International
      * @param \Magento\Core\Model\StoreManagerInterface $storeManager
      * @param \Magento\Stdlib\String $string
      * @param \Magento\Math\Division $mathDivision
-     * @param \Magento\Stdlib\DateTime $dateTime
      * @param \Magento\Filesystem $filesystem
+     * @param \Magento\Stdlib\DateTime $dateTime
+     * @param \Zend_Http_ClientFactory $httpClientFactory
      * @param array $data
      */
     public function __construct(
@@ -241,8 +247,9 @@ class International
         \Magento\Core\Model\StoreManagerInterface $storeManager,
         \Magento\Stdlib\String $string,
         \Magento\Math\Division $mathDivision,
-        \Magento\Stdlib\DateTime $dateTime,
         \Magento\Filesystem $filesystem,
+        \Magento\Stdlib\DateTime $dateTime,
+        \Zend_Http_ClientFactory $httpClientFactory,
         array $data = array()
     ) {
         $this->modulesDirectory = $filesystem->getDirectoryRead(\Magento\Filesystem::MODULES);
@@ -252,7 +259,8 @@ class International
         $this->_configReader = $configReader;
         $this->string = $string;
         $this->mathDivision = $mathDivision;
-        $this->dateTime = $dateTime;
+        $this->_dateTime = $dateTime;
+        $this->_httpClientFactory = $httpClientFactory;
         parent::__construct(
             $coreStoreConfig,
             $rateErrorFactory,
@@ -369,7 +377,13 @@ class International
         return $this->_result;
     }
 
-    protected function _addParams($requestObject)
+    /**
+     * Fills request object with Dhl config parameters
+     *
+     * @param \Magento\Object $requestObject
+     * @return \Magento\Object
+     */
+    protected function _addParams(\Magento\Object $requestObject)
     {
         $request = $this->_request;
         foreach ($this->_requestVariables as $code => $objectCode) {
@@ -892,13 +906,79 @@ class International
      * @return \Magento\Core\Model\AbstractModel|\Magento\Shipping\Model\Rate\Result
      */
     protected function _getQuotes()
+    {
+        $responseBody = '';
+        try {
+            $debugData = array();
+            for ($offset = 0; $offset <= self::UNAVAILABLE_DATE_LOOK_FORWARD; $offset++) {
+                $debugData['try-' . $offset] = array();
+                $debugPoint = &$debugData['try-' . $offset];
+
+                $requestXml = $this->_buildQuotesRequestXml();
+                $date = date(self::REQUEST_DATE_FORMAT, strtotime($this->_getShipDate() . " +$offset days"));
+                $this->_setQuotesRequestXmlDate($requestXml, $date);
+
+                $request = $requestXml->asXML();
+                $debugPoint['request'] = $request;
+                $responseBody = $this->_getCachedQuotes($request);
+                $debugPoint['from_cache'] = ($responseBody === null);
+
+                if ($debugPoint['from_cache']) {
+                    $responseBody = $this->_getQuotesFromServer($request);
+                }
+
+                $debugPoint['response'] = $responseBody;
+
+                $bodyXml = $this->_xmlElFactory->create(
+                    array('data' => $responseBody)
+                );
+                $code = $bodyXml->xpath('//GetQuoteResponse/Note/Condition/ConditionCode');
+                if (isset($code[0]) && (int)$code[0] == self::CONDITION_CODE_SERVICE_DATE_UNAVAILABLE) {
+                    $debugPoint['info'] = sprintf(
+                        __("DHL service is not available at %s date"),
+                        $date
+                    );
+                } else {
+                    break;
+                }
+
+                $this->_setCachedQuotes($request, $responseBody);
+            }
+            $this->_debug($debugData);
+        } catch (\Exception $e) {
+            $this->_errors[$e->getCode()] = $e->getMessage();
+        }
+        return $this->_parseResponse($responseBody);
+    }
+
+    /**
+     * Get shipping quotes from DHL service
+     *
+     * @param string $request
+     * @return string
+     */
+    protected function _getQuotesFromServer($request)
+    {
+        $client = $this->_httpClientFactory->create();
+        $client->setUri((string)$this->getConfigData('gateway_url'));
+        $client->setConfig(array('maxredirects' => 0, 'timeout' => 30));
+        $client->setRawData(utf8_encode($request));
+        return $client->request(\Zend_Http_Client::POST)->getBody();
+    }
+
+    /**
+     * Build qoutes request XML object
+     *
+     * @return \SimpleXMLElement
+     */
+    protected function _buildQuotesRequestXml()
     {
         $rawRequest = $this->_rawRequest;
         $xmlStr = '<?xml version = "1.0" encoding = "UTF-8"?>'
-                . '<p:DCTRequest xmlns:p="http://www.dhl.com" xmlns:p1="http://www.dhl.com/datatypes" '
-                . 'xmlns:p2="http://www.dhl.com/DCTRequestdatatypes" '
-                . 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
-                . 'xsi:schemaLocation="http://www.dhl.com DCT-req.xsd "/>';
+            . '<p:DCTRequest xmlns:p="http://www.dhl.com" xmlns:p1="http://www.dhl.com/datatypes" '
+            . 'xmlns:p2="http://www.dhl.com/DCTRequestdatatypes" '
+            . 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
+            . 'xsi:schemaLocation="http://www.dhl.com DCT-req.xsd "/>';
         $xml = $this->_xmlElFactory->create(array('data' => $xmlStr));
         $nodeGetQuote = $xml->addChild('GetQuote', '', '');
         $nodeRequest = $nodeGetQuote->addChild('Request');
@@ -914,7 +994,7 @@ class International
 
         $nodeBkgDetails = $nodeGetQuote->addChild('BkgDetails');
         $nodeBkgDetails->addChild('PaymentCountryCode', $rawRequest->getOrigCountryId());
-        $nodeBkgDetails->addChild('Date', $this->dateTime->now(true));
+        $nodeBkgDetails->addChild('Date', $this->_dateTime->now(true));
         $nodeBkgDetails->addChild('ReadyTime', 'PT' . (int)(string)$this->getConfigData('ready_time') . 'H00M');
 
         $nodeBkgDetails->addChild('DimensionUnit', $this->_getDimensionUnit());
@@ -941,28 +1021,20 @@ class International
             $nodeDutiable->addChild('DeclaredCurrency', $baseCurrencyCode);
             $nodeDutiable->addChild('DeclaredValue', sprintf("%.2F", $rawRequest->getValue()));
         }
+        return $xml;
+    }
 
-        $request = $xml->asXML();
-        $request = utf8_encode($request);
-        $responseBody = $this->_getCachedQuotes($request);
-        if ($responseBody === null) {
-            $debugData = array('request' => $request);
-            try {
-                $client = new \Magento\HTTP\ZendClient();
-                $client->setUri((string)$this->getConfigData('gateway_url'));
-                $client->setConfig(array('maxredirects' => 0, 'timeout' => 30));
-                $client->setRawData($request);
-                $responseBody = $client->request(\Magento\HTTP\ZendClient::POST)->getBody();
-                $debugData['result'] = $responseBody;
-                $this->_setCachedQuotes($request, $responseBody);
-            } catch (\Exception $e) {
-                $this->_errors[$e->getCode()] = $e->getMessage();
-                $responseBody = '';
-            }
-            $this->_debug($debugData);
-        }
-
-        return $this->_parseResponse($responseBody);
+    /**
+     * Set pick-up date in request XML object
+     *
+     * @param \SimpleXMLElement $requestXml
+     * @param string $date
+     * @return \SimpleXMLElement
+     */
+    protected function _setQuotesRequestXmlDate(\SimpleXMLElement $requestXml, $date)
+    {
+        $requestXml->GetQuote->BkgDetails->Date = $date;
+        return $requestXml;
     }
 
     /**
@@ -1160,13 +1232,14 @@ class International
     protected function getCountryParams($countryCode)
     {
         if (empty($this->_countryParams)) {
-
             $usaEtcPath = $this->_configReader->getModuleDir('etc', 'Magento_Usa');
             $countriesXmlPath = $this->modulesDirectory->getRelativePath(
                 $usaEtcPath  . '/dhl/international/countries.xml'
             );
             $countriesXml = $this->modulesDirectory->readFile($countriesXmlPath);
-            $this->_countryParams = new \Magento\Simplexml\Element($countriesXml);
+            $this->_countryParams = $this->_xmlElFactory->create(
+                array('data' => $countriesXml)
+            );
         }
         if (isset($this->_countryParams->$countryCode)) {
             $countryParams = new \Magento\Object($this->_countryParams->$countryCode->asArray());
@@ -1466,7 +1539,7 @@ class International
         if ($responseBody === null) {
             $debugData = array('request' => $request);
             try {
-                $client = new \Magento\HTTP\ZendClient();
+                $client = $this->_httpClientFactory->create();
                 $client->setUri((string)$this->getConfigData('gateway_url'));
                 $client->setConfig(array('maxredirects' => 0, 'timeout' => 30));
                 $client->setRawData($request);
diff --git a/app/code/Magento/Usa/Model/Simplexml/Element.php b/app/code/Magento/Usa/Model/Simplexml/Element.php
index 0bc76464b011f8f268dc529d47f7529de812614d..19666f9507f4fb40ca40879b31d602c97919aff6 100644
--- a/app/code/Magento/Usa/Model/Simplexml/Element.php
+++ b/app/code/Magento/Usa/Model/Simplexml/Element.php
@@ -34,7 +34,7 @@
  */
 namespace Magento\Usa\Model\Simplexml;
 
-class Element extends \SimpleXMLElement
+class Element extends \Magento\Simplexml\Element
 {
     /**
      * Adds an attribute to the SimpleXML element
@@ -49,7 +49,7 @@ class Element extends \SimpleXMLElement
         if (!is_null($value)) {
             $value = $this->xmlentities($value);
         }
-        return parent::addAttribute($name, $value, $namespace);
+        parent::addAttribute($name, $value, $namespace);
     }
 
     /**
@@ -74,10 +74,10 @@ class Element extends \SimpleXMLElement
      * @param string
      * @return string
      */
-    public function xmlentities($value)
+    public function xmlentities($value = null)
     {
         $value = str_replace('&amp;', '&', $value);
         $value = str_replace('&', '&amp;', $value);
         return $value;
     }
-}
+}
\ No newline at end of file
diff --git a/app/code/Magento/Usa/etc/adminhtml/system.xml b/app/code/Magento/Usa/etc/adminhtml/system.xml
index f16732256860be452d80c5662aa2051d3fddddaf..19147acfee999a93f941a4e014bd99716a130ceb 100644
--- a/app/code/Magento/Usa/etc/adminhtml/system.xml
+++ b/app/code/Magento/Usa/etc/adminhtml/system.xml
@@ -168,12 +168,12 @@
                 </field>
                 <field id="shipment_days" translate="label" type="multiselect" sortOrder="1390" showInDefault="1" showInWebsite="1" showInStore="0">
                     <label>Domestic Shipment Days</label>
-                    <source_model>Magento\Backend\Model\Config\Source\Locale\Weekdays</source_model>
+                    <source_model>Magento\Backend\Model\Config\Source\Locale\Weekdaycodes</source_model>
                     <can_be_empty>1</can_be_empty>
                 </field>
                 <field id="intl_shipment_days" translate="label" type="multiselect" sortOrder="1400" showInDefault="1" showInWebsite="1" showInStore="0">
                     <label>International Shipment Days</label>
-                    <source_model>Magento\Backend\Model\Config\Source\Locale\Weekdays</source_model>
+                    <source_model>Magento\Backend\Model\Config\Source\Locale\Weekdaycodes</source_model>
                     <can_be_empty>1</can_be_empty>
                 </field>
                 <field id="debug" translate="label" type="select" sortOrder="1950" showInDefault="1" showInWebsite="1" showInStore="0">
diff --git a/app/code/Magento/Usa/etc/config.xml b/app/code/Magento/Usa/etc/config.xml
index 475da2ce3101ecb5f0ffe31d95b5fac9150b497e..0967adce90e549befb7fb1851e1b4c643fb5c98f 100644
--- a/app/code/Magento/Usa/etc/config.xml
+++ b/app/code/Magento/Usa/etc/config.xml
@@ -57,8 +57,8 @@
                 <max_package_weight>150</max_package_weight>
                 <handling_type>F</handling_type>
                 <handling_action>O</handling_action>
-                <shipment_days>1,2,3,4,5,6</shipment_days>
-                <intl_shipment_days>1,2,3,4,5</intl_shipment_days>
+                <shipment_days>Mon,Tue,Wed,Thu,Fri,Sat</shipment_days>
+                <intl_shipment_days>Mon,Tue,Wed,Thu,Fri</intl_shipment_days>
                 <additional_protection_rounding>0</additional_protection_rounding>
             </dhl>
             <fedex>
@@ -157,6 +157,7 @@
                 <size>R</size>
                 <handling_type>F</handling_type>
                 <handling_action>O</handling_action>
+                <shipment_days>Mon,Tue,Wed,Thu,Fri</shipment_days>
             </dhlint>
         </carriers>
     </default>
diff --git a/app/code/Magento/Usa/etc/di.xml b/app/code/Magento/Usa/etc/di.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fd18f534c118a4092e81b02d7daf071e4446ba86
--- /dev/null
+++ b/app/code/Magento/Usa/etc/di.xml
@@ -0,0 +1,34 @@
+<?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>
+    <type name="Magento\Module\Updater\SetupFactory">
+        <param name="resourceTypes">
+            <value>
+                <usa_setup>Magento\Usa\Model\Resource\Setup</usa_setup>
+            </value>
+        </param>
+    </type>
+</config>
diff --git a/app/code/Magento/Usa/etc/module.xml b/app/code/Magento/Usa/etc/module.xml
index ad989be964a96e1b9584122eebe30f0f1432acd1..c93192c3006ce1f99b288fed725e2a4ec216dfb8 100755
--- a/app/code/Magento/Usa/etc/module.xml
+++ b/app/code/Magento/Usa/etc/module.xml
@@ -24,7 +24,7 @@
  */
 -->
 <config>
-    <module name="Magento_Usa" version="1.6.0.1" active="true">
+    <module name="Magento_Usa" version="1.6.0.3" active="true">
         <sequence>
             <module name="Magento_Sales"/>
             <module name="Magento_Shipping"/>
diff --git a/app/code/Magento/Usa/sql/usa_setup/upgrade-1.6.0.1-1.6.0.2.php b/app/code/Magento/Usa/sql/usa_setup/upgrade-1.6.0.1-1.6.0.2.php
new file mode 100644
index 0000000000000000000000000000000000000000..62149bab2be9809aac2d57da9c3375d87dbf4c89
--- /dev/null
+++ b/app/code/Magento/Usa/sql/usa_setup/upgrade-1.6.0.1-1.6.0.2.php
@@ -0,0 +1,108 @@
+<?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_Usa
+ * @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)
+ */
+
+$installer = $this;
+$configDataTable = $installer->getTable('core_config_data');
+$connection = $installer->getConnection();
+
+$oldToNewMethodCodesMap = array(
+    'First-Class'                                               => '0_FCLE',
+    'First-Class Mail International Large Envelope'             => 'INT_14',
+    'First-Class Mail International Letter'                     => 'INT_13',
+    'First-Class Mail International Letters'                    => 'INT_13',
+    'First-Class Mail International Package'                    => 'INT_15',
+    'First-Class Mail International Parcel'                     => 'INT_13',
+    'First-Class Package International Service'                 => 'INT_15',
+    'First-Class Mail'                                          => '0_FCLE',
+    'First-Class Mail Flat'                                     => '0_FCLE',
+    'First-Class Mail Large Envelope'                           => '0_FCLE',
+    'First-Class Mail International'                            => 'INT_14',
+    'First-Class Mail Letter'                                   => '0_FCL',
+    'First-Class Mail Parcel'                                   => '0_FCP',
+    'First-Class Mail Package'                                  => '0_FCP',
+    'Parcel Post'                                               => '4',
+    'Standard Post'                                             => '4',
+    'Media Mail'                                                => '6',
+    'Library Mail'                                              => '7',
+    'Express Mail'                                              => '3',
+    'Express Mail PO to PO'                                     => '3',
+    'Express Mail Flat Rate Envelope'                           => '13',
+    'Express Mail Flat-Rate Envelope Sunday/Holiday Guarantee'  => '25',
+    'Express Mail Sunday/Holiday Guarantee'                     => '23',
+    'Express Mail Flat Rate Envelope Hold For Pickup'           => '27',
+    'Express Mail Hold For Pickup'                              => '2',
+    'Global Express Guaranteed (GXG)'                           => 'INT_4',
+    'Global Express Guaranteed Non-Document Rectangular'        => 'INT_6',
+    'Global Express Guaranteed Non-Document Non-Rectangular'    => 'INT_7',
+    'USPS GXG Envelopes'                                        => 'INT_12',
+    'Express Mail International'                                => 'INT_1',
+    'Express Mail International Flat Rate Envelope'             => 'INT_10',
+    'Priority Mail'                                             => '1',
+    'Priority Mail Small Flat Rate Box'                         => '28',
+    'Priority Mail Medium Flat Rate Box'                        => '17',
+    'Priority Mail Large Flat Rate Box'                         => '22',
+    'Priority Mail Flat Rate Envelope'                          => '16',
+    'Priority Mail International'                               => 'INT_2',
+    'Priority Mail International Flat Rate Envelope'            => 'INT_8',
+    'Priority Mail International Small Flat Rate Box'           => 'INT_16',
+    'Priority Mail International Medium Flat Rate Box'          => 'INT_9',
+    'Priority Mail International Large Flat Rate Box'           => 'INT_11',
+);
+
+$select = $connection->select()
+    ->from($configDataTable)
+    ->where('path IN (?)',
+        array(
+            'carriers/usps/free_method',
+            'carriers/usps/allowed_methods'
+        )
+    );
+$oldConfigValues = $connection->fetchAll($select);
+
+foreach ($oldConfigValues as $oldValue) {
+    $newValue = '';
+    if (stripos($oldValue['path'], 'free_method') && isset($oldToNewMethodCodesMap[$oldValue['value']])) {
+        $newValue = $oldToNewMethodCodesMap[$oldValue['value']];
+    } else if (stripos($oldValue['path'], 'allowed_methods')) {
+        $newValuesList = array();
+        foreach (explode(',', $oldValue['value']) as $shippingMethod) {
+            if (isset($oldToNewMethodCodesMap[$shippingMethod])) {
+                $newValuesList[] = $oldToNewMethodCodesMap[$shippingMethod];
+            }
+        }
+        $newValue = implode(',', $newValuesList);
+    } else {
+        continue;
+    }
+
+    if (!empty($newValue) && $newValue != $oldValue['value']) {
+        $whereConfigId = $connection->quoteInto('config_id = ?', $oldValue['config_id']);
+        $connection->update($configDataTable,
+            array('value' => $newValue),
+            $whereConfigId
+        );
+    }
+}
diff --git a/app/code/Magento/Usa/sql/usa_setup/upgrade-1.6.0.2-1.6.0.3.php b/app/code/Magento/Usa/sql/usa_setup/upgrade-1.6.0.2-1.6.0.3.php
new file mode 100644
index 0000000000000000000000000000000000000000..75bb158b0e577701560dd189d944a5fa05179237
--- /dev/null
+++ b/app/code/Magento/Usa/sql/usa_setup/upgrade-1.6.0.2-1.6.0.3.php
@@ -0,0 +1,49 @@
+<?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_Usa
+ * @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)
+ */
+
+$days = $this->getLocale()->getTranslationList('days');
+
+$days = array_keys($days['format']['wide']);
+foreach ($days as $key => $value) {
+    $days[$key] = ucfirst($value);
+}
+
+$select = $this->getConnection()
+    ->select()
+    ->from($this->getTable('core_config_data'), array('config_id', 'value'))
+    ->where('path = ?', 'carriers/dhl/shipment_days')
+    ->orWhere('path = ?', 'carriers/dhl/intl_shipment_days');
+
+foreach ($this->getConnection()->fetchAll($select) as $configRow) {
+    $row = array('value' => implode(',', array_intersect_key($days, array_flip(explode(',', $configRow['value'])))));
+    $this->getConnection()->update(
+        $this->getTable('core_config_data'),
+        $row,
+        array(
+            'config_id = ?' => $configRow['config_id']
+        )
+    );
+}
diff --git a/app/code/Magento/Wishlist/view/frontend/layout/default.xml b/app/code/Magento/Wishlist/view/frontend/layout/default.xml
index 17c8f37839399c1eb3d0addda89ebace4adec122..d1e63d967bcc446717ee2fc503566064214c871f 100644
--- a/app/code/Magento/Wishlist/view/frontend/layout/default.xml
+++ b/app/code/Magento/Wishlist/view/frontend/layout/default.xml
@@ -28,6 +28,6 @@
         <block class="Magento\Wishlist\Block\Link" name="wish-list-link" after="my-account-link"/>
     </referenceBlock>
     <referenceContainer name="right">
-        <block class="Magento\Wishlist\Block\Customer\Sidebar" name="wishlist_sidebar" as="wishlist" template="Magento_Wishlist::sidebar.phtml"/>
+        <block class="Magento\Wishlist\Block\Customer\Sidebar" name="wishlist_sidebar" as="wishlist" template="Magento_Wishlist::sidebar.phtml" cacheable="false"/>
     </referenceContainer>
 </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 4e39cd692634c07ef1014a0e07c70789af395336..f16b0db368f9d758283a3e1c3725e1224f019437 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
@@ -30,10 +30,10 @@
         </action>
     </referenceBlock>
     <referenceContainer name="product.info.type">
-        <block class="Magento\Catalog\Block\Product\View\Type\Configurable" name="product.info.configurable" as="product_type_data" template="product/view/type/default.phtml"/>
+        <block class="Magento\Catalog\Block\Product\View\Type\Configurable" name="product.info.configurable" as="product_type_data" template="product/view/type/default.phtml" cacheable="false"/>
         <container name="product.info.configurable.extra" after="product.info.configurable" as="product_type_data_extra" label="Product Extra Info"/>
     </referenceContainer>
     <referenceBlock name="product.info.options.wrapper">
-        <block class="Magento\Catalog\Block\Product\View\Type\Configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="product/view/type/options/configurable.phtml"/>
+        <block class="Magento\Catalog\Block\Product\View\Type\Configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="product/view/type/options/configurable.phtml" cacheable="false"/>
     </referenceBlock>
 </layout>
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 7154d4b6be69c5c66b9e14753ff2fce53675f4b2..00287a5ad4c24799abeb465d0250ab91500a9516 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
@@ -26,36 +26,36 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceContainer name="content">
-        <block class="Magento\Wishlist\Block\Customer\Wishlist" name="customer.wishlist" template="view.phtml">
-            <block class="Magento\Wishlist\Block\Customer\Wishlist\Items" name="customer.wishlist.items" as="items" template="item/list.phtml">
-                <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Image" name="customer.wishlist.item.image" before="-" template="item/column/image.phtml">
+        <block class="Magento\Wishlist\Block\Customer\Wishlist" name="customer.wishlist" template="view.phtml" cacheable="false">
+            <block class="Magento\Wishlist\Block\Customer\Wishlist\Items" name="customer.wishlist.items" as="items" template="item/list.phtml" cacheable="false">
+                <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Image" name="customer.wishlist.item.image" before="-" template="item/column/image.phtml" cacheable="false">
                     <arguments>
                         <argument name="col_class" xsi:type="string">photo</argument>
                     </arguments>
                 </block>
-                <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Comment" name="customer.wishlist.item.info" template="item/column/info.phtml">
+                <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Comment" name="customer.wishlist.item.info" template="item/column/info.phtml" cacheable="false">
                     <arguments>
                         <argument name="col_class" xsi:type="string">item</argument>
                         <argument name="title" translate="true" xsi:type="string">Product Details and Comment</argument>
                     </arguments>
                 </block>
-                <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Cart" name="customer.wishlist.item.cart" template="item/column/cart.phtml">
+                <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Cart" name="customer.wishlist.item.cart" template="item/column/cart.phtml" cacheable="false">
                     <arguments>
                         <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"/>
+                    <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">
+                <block class="Magento\Wishlist\Block\Customer\Wishlist\Item\Column\Remove" name="customer.wishlist.item.remove" template="item/column/remove.phtml" cacheable="false">
                     <arguments>
                         <argument name="col_class" xsi:type="string">remove</argument>
                     </arguments>
                 </block>
             </block>
             <container name="customer.wishlist.buttons" as="control_buttons" label="Wishlist Control Buttons">
-                <block class="Magento\Wishlist\Block\Customer\Wishlist\Button" name="customer.wishlist.button.share" template="button/share.phtml"/>
-                <block class="Magento\Wishlist\Block\Customer\Wishlist\Button" name="customer.wishlist.button.toCart" template="button/tocart.phtml"/>
-                <block class="Magento\Wishlist\Block\Customer\Wishlist\Button" name="customer.wishlist.button.update" template="button/update.phtml"/>
+                <block class="Magento\Wishlist\Block\Customer\Wishlist\Button" name="customer.wishlist.button.share" template="button/share.phtml" cacheable="false"/>
+                <block class="Magento\Wishlist\Block\Customer\Wishlist\Button" name="customer.wishlist.button.toCart" template="button/tocart.phtml" cacheable="false"/>
+                <block class="Magento\Wishlist\Block\Customer\Wishlist\Button" name="customer.wishlist.button.update" template="button/update.phtml" cacheable="false"/>
             </container>
         </block>
     </referenceContainer>
diff --git a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_share.xml b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_share.xml
index 2b4316bb10ca2bb658dfce736ebb9ace25469a66..b9d93294fee9ef3163674f00f9bac2afaf099c07 100644
--- a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_share.xml
+++ b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_index_share.xml
@@ -26,6 +26,6 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <update handle="customer_account"/>
     <referenceContainer name="content">
-        <block class="Magento\Wishlist\Block\Customer\Sharing" name="wishlist.sharing" template="sharing.phtml"/>
+        <block class="Magento\Wishlist\Block\Customer\Sharing" name="wishlist.sharing" template="sharing.phtml" cacheable="false"/>
     </referenceContainer>
 </layout>
diff --git a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_shared_index.xml b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_shared_index.xml
index 34501eaed01db461f6a67314a8ec6fc1ec38a8d1..e00cb6359f533bf25963f7359e811d57de431dc7 100644
--- a/app/code/Magento/Wishlist/view/frontend/layout/wishlist_shared_index.xml
+++ b/app/code/Magento/Wishlist/view/frontend/layout/wishlist_shared_index.xml
@@ -25,6 +25,6 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <referenceContainer name="content">
-        <block class="Magento\Wishlist\Block\Share\Wishlist" name="customer.wishlist" template="shared.phtml"/>
+        <block class="Magento\Wishlist\Block\Share\Wishlist" name="customer.wishlist" template="shared.phtml" cacheable="false"/>
     </referenceContainer>
 </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
index ec164342aa88939e716984ca79e111fb59d7c2a6..0cd6a17a30de88f1a8574d036eaf708006fbcf86 100644
--- a/app/design/frontend/magento_plushe/Magento_Customer/layout/default.xml
+++ b/app/design/frontend/magento_plushe/Magento_Customer/layout/default.xml
@@ -25,9 +25,9 @@
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <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"/>
-        <block class="Magento\Customer\Block\Account\RegisterLink" after="authorization-link-login" name="register-link">
+        <block class="Magento\Customer\Block\Account\Customer" name="customer" template="account/customer.phtml" before="-" cacheable="false"/>
+        <block class="Magento\Customer\Block\Account\AuthorizationLink" name="authorization-link-login" cacheable="false"/>
+        <block class="Magento\Customer\Block\Account\RegisterLink" after="authorization-link-login" name="register-link" cacheable="false">
             <arguments>
                 <argument name="label" xsi:type="string">Register</argument>
             </arguments>
diff --git a/app/design/frontend/magento_plushe/Magento_Theme/layout/default.xml b/app/design/frontend/magento_plushe/Magento_Theme/layout/default.xml
index 69d04b93b162d7513863bb93ce651c3f6a91d595..8bb5354bee5c456fe5ec6cb7f063b37b5bca7d89 100644
--- a/app/design/frontend/magento_plushe/Magento_Theme/layout/default.xml
+++ b/app/design/frontend/magento_plushe/Magento_Theme/layout/default.xml
@@ -30,7 +30,7 @@
         </arguments>
     </referenceBlock>
 
-    <referenceContainer name="header">
+    <referenceContainer name="header-wrapper">
         <block class="Magento\View\Element\Html\Links" name="header.links" after="minicart">
             <arguments>
                 <argument name="css_class" xsi:type="string">links</argument>
@@ -38,6 +38,14 @@
         </block>
     </referenceContainer>
 
+    <referenceBlock name="header.links">
+        <block class="Magento\Theme\Block\Html\Header" name="header" as="header" before="-">
+            <arguments>
+                <argument name="show_part" xsi:type="string">welcome</argument>
+            </arguments>
+        </block>
+    </referenceBlock>
+
     <referenceBlock name="top.links">
         <arguments>
             <argument name="css_class" xsi:type="string">links</argument>
diff --git a/app/design/frontend/magento_plushe/css/styles.css b/app/design/frontend/magento_plushe/css/styles.css
index 6b5a8b9d13789502d35843114778818e6a02ce07..e52f0d24738021642eeb69e2121d28bca92bcd76 100644
--- a/app/design/frontend/magento_plushe/css/styles.css
+++ b/app/design/frontend/magento_plushe/css/styles.css
@@ -439,6 +439,73 @@ hr {
   position: static;
   width: auto;
 }
+/*
+    Responsive
+-------------------------------------- */
+.mobileAction {
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
+  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;
+}
+.mobileAction span {
+  font-size: 18px;
+}
+.mobilePrimaryAction {
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
+  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;
+  background-color: #da370a;
+  color: #ffffff;
+}
+.mobilePrimaryAction span {
+  font-size: 18px;
+}
+.mobileSecondaryAction {
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
+  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;
+  background-color: #c2c2c2;
+  color: #ffffff;
+}
+.mobileSecondaryAction span {
+  font-size: 18px;
+}
 .primary.action,
 .action.myPrimary,
 input[type="submit"],
@@ -1103,8 +1170,6 @@ input[type="reset"],
   border: 1px solid #c2c2c2;
   border-radius: 3px;
   font: 400 14px "sourcesanspro";
-  /* Prevent background color leak outs */
-
   background-clip: padding-box;
   outline: none;
   height: 32px;
@@ -1224,8 +1289,6 @@ input[type="number"] {
   border: 1px solid #c2c2c2;
   border-radius: 3px;
   font: 400 14px "sourcesanspro";
-  /* Prevent background color leak outs */
-
   background-clip: padding-box;
   outline: none;
   height: 32px;
@@ -1306,8 +1369,6 @@ select {
   border: 1px solid #c2c2c2;
   border-radius: 3px;
   font: 400 14px "sourcesanspro";
-  /* Prevent background color leak outs */
-
   background-clip: padding-box;
   outline: none;
   padding: 5px 10px 4px;
@@ -1333,8 +1394,6 @@ textarea {
   border: 1px solid #c2c2c2;
   border-radius: 3px;
   font: 400 14px "sourcesanspro";
-  /* Prevent background color leak outs */
-
   background-clip: padding-box;
   outline: none;
   height: auto;
@@ -5106,8 +5165,6 @@ body {
   border: 1px solid #c2c2c2;
   border-radius: 3px;
   font: 400 14px "sourcesanspro";
-  /* Prevent background color leak outs */
-
   background-clip: padding-box;
   outline: none;
   height: 32px;
@@ -5160,7 +5217,7 @@ body {
   margin-bottom: 0;
 }
 .block.add.review .fieldset > .field:not(.ratings) .nested {
-  padding: 0 0 0;
+  padding: 0;
 }
 .block.add.review .fieldset > .field:not(.ratings) .nested .field {
   margin: 5px 0;
@@ -5399,7 +5456,7 @@ body {
   margin-bottom: 0;
 }
 .opc.wrapper .form:not(.login) .field .nested {
-  padding: 0 0 0;
+  padding: 0;
 }
 .opc.wrapper .form:not(.login) .field .nested .field {
   margin: 5px 0;
@@ -5551,7 +5608,7 @@ body {
   margin-bottom: 0;
 }
 .fieldset.ccard .field .nested {
-  padding: 0 0 0;
+  padding: 0;
 }
 .fieldset.ccard .field .nested .field {
   margin: 5px 0;
@@ -5684,7 +5741,7 @@ body {
   margin-bottom: 0;
 }
 .fieldset.guest > .field .nested {
-  padding: 0 0 0;
+  padding: 0;
 }
 .fieldset.guest > .field .nested .field {
   margin: 5px 0;
@@ -5731,6 +5788,39 @@ body {
   font-size: 24px;
   color: #da370a;
 }
+.order.data.items tr.tax.totals.details {
+  display: none;
+}
+.order.data.items tr.tax.totals.details.shown {
+  display: table-row;
+}
+.order.data.items tr.tax.totals.summary .detailed {
+  cursor: pointer;
+}
+.order.data.items tr.tax.totals.summary .detailed:before {
+  font-family: "icons";
+  font-size: 18px;
+  line-height: 18px;
+  height: 18px;
+  margin: 0;
+  overflow: hidden;
+  content: "\e00d";
+  font-style: normal;
+  speak: none;
+  font-weight: normal;
+  -webkit-font-smoothing: antialiased;
+  display: inline-block;
+  vertical-align: middle;
+  text-align: center;
+}
+.order.data.items tr.tax.totals.summary .detailed:before {
+  vertical-align: top;
+  font-size: 12px;
+  margin-right: 5px;
+}
+.order.data.items tr.tax.totals.summary.expanded .detailed:before {
+  content: "\e011";
+}
 .order.data.items tfoot .amount {
   text-align: right;
 }
@@ -8732,8 +8822,6 @@ span.widget.link {
   border: 1px solid #c2c2c2;
   border-radius: 3px;
   font: 400 14px "sourcesanspro";
-  /* Prevent background color leak outs */
-
   background-clip: padding-box;
   outline: none;
   height: 32px;
@@ -8848,7 +8936,7 @@ span.widget.link {
   margin-bottom: 0;
 }
 .product.main.info .product.options.wrapper .field .nested {
-  padding: 0 0 0;
+  padding: 0;
 }
 .product.main.info .product.options.wrapper .field .nested .field {
   margin: 5px 0;
@@ -8904,8 +8992,6 @@ span.widget.link {
   border: 1px solid #c2c2c2;
   border-radius: 3px;
   font: 400 14px "sourcesanspro";
-  /* Prevent background color leak outs */
-
   background-clip: padding-box;
   outline: none;
   height: 32px;
@@ -9692,7 +9778,8 @@ img[align="right"] {
 .customer.welcome + li {
   display: none;
 }
-.customer.welcome + li {
+.customer.welcome + li,
+.customer.welcome + .greet.welcome + li {
   display: none !important;
 }
 .login.container {
@@ -9824,7 +9911,7 @@ img[align="right"] {
   margin-bottom: 0;
 }
 .form.login .fieldset.login .field .nested {
-  padding: 0 0 0;
+  padding: 0;
 }
 .form.login .fieldset.login .field .nested .field {
   margin: 5px 0;
@@ -10295,8 +10382,6 @@ img[align="right"] {
   border: 1px solid #c2c2c2;
   border-radius: 3px;
   font: 400 14px "sourcesanspro";
-  /* Prevent background color leak outs */
-
   background-clip: padding-box;
   outline: none;
   height: 32px;
@@ -10525,7 +10610,7 @@ img[align="right"] {
 .form.password.reset .fieldset > .field .nested,
 .form.paypal.review .fieldset > .field .nested,
 .form.send.confirmation .fieldset > .field .nested {
-  padding: 0 0 0;
+  padding: 0;
 }
 .form.send.friend .fieldset > .field .nested .field,
 .form.address.edit .fieldset > .field .nested .field,
@@ -11900,70 +11985,6 @@ img[align="right"] {
   position: relative;
   z-index: 1;
 }
-.mobileAction {
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
-  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;
-}
-.mobileAction span {
-  font-size: 18px;
-}
-.mobilePrimaryAction {
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
-  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;
-  background-color: #da370a;
-  color: #ffffff;
-}
-.mobilePrimaryAction span {
-  font-size: 18px;
-}
-.mobileSecondaryAction {
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
-  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;
-  background-color: #c2c2c2;
-  color: #ffffff;
-}
-.mobileSecondaryAction span {
-  font-size: 18px;
-}
 /* Smartphones (portrait) ----------- */
 @media only screen and (max-width: 640px) {
   .scrollTable .wrapper.table,
@@ -13065,13 +13086,6 @@ img[align="right"] {
   .opc.wrapper .order-review .actions.back span:before {
     display: none;
   }
-  .opc.wrapper .load.indicator {
-    /*            left: 0;
-              position: absolute;
-              top: 10px;
-              width: 100%;*/
-  
-  }
   .block.progress.onepage {
     background: #f8f8f8;
     border-top: 1px solid #e5e5e5;
@@ -13183,9 +13197,8 @@ img[align="right"] {
     font-size: 18px;
   }
   /*
-  Magento_Checkout
-  Multishipping
-  -------------------------------------- */
+          Magento_Checkout - Multishipping
+      -------------------------------------- */
   .multicheckout.progress {
     width: 100%;
     float: none;
@@ -13368,7 +13381,9 @@ img[align="right"] {
   .form.login .fieldset.login .field .control {
     width: 100%;
   }
-  /* Registration */
+  /*
+          Forms
+      -------------------------------------- */
   .form.send.friend .fieldset,
   .form.address.edit .fieldset,
   .form.edit.account .fieldset,
@@ -13631,9 +13646,7 @@ img[align="right"] {
     float: none;
   }
   /*
-      *    Mage_Customer
-      *
-      *    Account
+          Mage_Customer - Account
       ----------------------------------------------------------------------------- */
   .col2-left-layout.account .column.main {
     display: block;
@@ -13795,7 +13808,9 @@ img[align="right"] {
   .data.table.orders .col.shipping {
     display: none;
   }
-  /* Address book */
+  /*
+          Address book
+      -------------------------------------- */
   .block.addresses:not(.dashboard) {
     margin-bottom: 20px;
   }
@@ -13837,7 +13852,7 @@ img[align="right"] {
     font-size: 18px;
   }
   /*
-      My Account -> Billing agreements
+          My Account -> Billing agreements
       -------------------------------------- */
   .billing.agreements .form.new.agreement > .field {
     display: inline-block;
@@ -13857,7 +13872,7 @@ img[align="right"] {
     padding-bottom: 6px;
   }
   /*
-      My Account -> Wishlist
+          My Account -> Wishlist
       -------------------------------------- */
   .account .form.wishlist.items .data.table.wishlist {
     margin-bottom: 0;
@@ -13869,9 +13884,8 @@ img[align="right"] {
     width: 15em;
   }
   /*
-     *    My Account -> My orders
-     *
-    ----------------------------------------------------------------------------- */
+          My Account -> My orders
+      ----------------------------------------------------------------------------- */
   .order.details .order.toolbar {
     clear: both;
     float: none;
@@ -14619,7 +14633,7 @@ img[align="right"] {
   }
   /*
       Magento_Catalog Compare
-  -------------------------------------- */
+      -------------------------------------- */
   .catalog-product-compare-index .action.print {
     margin: -20px 0 20px;
   }
diff --git a/app/design/frontend/magento_plushe/less/lib/forms.less b/app/design/frontend/magento_plushe/less/lib/forms.less
index 7e3b98afc9cad9599b4069622034e3361eb6b4ac..6a80aee59b9122f1a91eb8c3f391f02f2305b86f 100644
--- a/app/design/frontend/magento_plushe/less/lib/forms.less
+++ b/app/design/frontend/magento_plushe/less/lib/forms.less
@@ -23,153 +23,6 @@
 //  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 //  */
 
-//  #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;
-    }
-}
-
-.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;
-    }
-}
-
 .hasRequired {
     &:after {
         content: attr(data-hasrequired);
@@ -677,19 +530,19 @@ textarea {
 }
 
 // #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;
+@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;
diff --git a/app/design/frontend/magento_plushe/less/lib/icons.less b/app/design/frontend/magento_plushe/less/lib/icons.less
index 219892c575ee78e27f564394df9ab6f18bb4d64e..8b73c25c940dfab9285a2ca6bb351bf1c295a344 100644
--- a/app/design/frontend/magento_plushe/less/lib/icons.less
+++ b/app/design/frontend/magento_plushe/less/lib/icons.less
@@ -23,81 +23,6 @@
 //  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 //  */
 
-// # 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";
-
 .example.icon {
     display: inline-block;
     margin: 0 0 16px;
@@ -146,78 +71,3 @@
     .iconAfter(@icon-cart, 16px, 10px,"icons");
     .iconHideText(16px);
 }
-
-//#Using mixin:
-.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;
-    }
-}
diff --git a/app/design/frontend/magento_plushe/less/lib/snippets.less b/app/design/frontend/magento_plushe/less/lib/snippets.less
index 8ae1b6703f3d143f85f446d38d30f436ff9325fa..adbb1bdfc4199b3fdbb55e5dffe12809df91e2ff 100644
--- a/app/design/frontend/magento_plushe/less/lib/snippets.less
+++ b/app/design/frontend/magento_plushe/less/lib/snippets.less
@@ -104,7 +104,7 @@
         .field {
             margin: 5px 0;
         }
-        padding: 0 0 0;
+        padding: 0;
     }
 }
 
@@ -144,3 +144,409 @@
 .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/less/responsive/responsive.less b/app/design/frontend/magento_plushe/less/responsive/responsive.less
index c2b590e20c148daf864fa17fb9c4163d7b950e6d..2728ac92fd41d5718d8e81ea4d8e18ab3d8eb8ed 100644
--- a/app/design/frontend/magento_plushe/less/responsive/responsive.less
+++ b/app/design/frontend/magento_plushe/less/responsive/responsive.less
@@ -22,40 +22,6 @@
 //  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 //  */
 
-@breakPoint1: 640px;
-@icon-expand-mobile: "+";
-@icon-collapse-mobile: "–";
-
-.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;
-}
-
 ///* Smartphones (portrait and landscape) ----------- */
 //@media only screen
 //and (min-device-width : 320px)
@@ -1144,12 +1110,12 @@ and (max-width : @breakPoint1) {
         }
 
         // Load indicator
-        .load.indicator {
-/*            left: 0;
-            position: absolute;
-            top: 10px;
-            width: 100%;*/
-        }
+//        .load.indicator {
+///*            left: 0;
+//            position: absolute;
+//            top: 10px;
+//            width: 100%;*/
+//        }
     }
 
     // Your Checkout Progress block
@@ -1268,10 +1234,9 @@ and (max-width : @breakPoint1) {
         }
     }
 
-/*
-Magento_Checkout
-Multishipping
--------------------------------------- */
+    /*
+        Magento_Checkout - Multishipping
+    -------------------------------------- */
 
     .multicheckout {
         &.progress {
@@ -1438,7 +1403,9 @@ Multishipping
         }
     }
 
-    /* Registration */
+    /*
+        Forms
+    -------------------------------------- */
     .form.send.friend,
     .form.address.edit,
     .form.edit.account,
@@ -1451,47 +1418,7 @@ Multishipping
     .form.password.reset,
     .form.add.tag,
     .form.paypal.review {
-        .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;
-            }
-        }
+        .formResponsive();
     }
 
     .form.search.advanced,
@@ -1537,9 +1464,7 @@ Multishipping
     }
 
     /*
-    *    Mage_Customer
-    *
-    *    Account
+        Mage_Customer - Account
     ----------------------------------------------------------------------------- */
     .col2-left-layout.account {
         .column.main {
@@ -1696,7 +1621,9 @@ Multishipping
         }
     }
 
-    /* Address book */
+    /*
+        Address book
+    -------------------------------------- */
 
     .block.addresses:not(.dashboard) {
         margin-bottom: 20px;
@@ -1731,7 +1658,7 @@ Multishipping
     }
 
     /*
-    My Account -> Billing agreements
+        My Account -> Billing agreements
     -------------------------------------- */
     .billing.agreements {
         .form.new.agreement {
@@ -1746,7 +1673,7 @@ Multishipping
 
 
     /*
-    My Account -> Wishlist
+        My Account -> Wishlist
     -------------------------------------- */
     .account {
         .form.wishlist.items {
@@ -1763,10 +1690,8 @@ Multishipping
     }
 
     /*
-   *    My Account -> My orders
-   *
-  ----------------------------------------------------------------------------- */
-
+        My Account -> My orders
+    ----------------------------------------------------------------------------- */
 
     .order.details {
         .order.toolbar {
@@ -2444,11 +2369,10 @@ Multishipping
 
     /*
     Magento_Catalog Compare
--------------------------------------- */
+    -------------------------------------- */
     .catalog-product-compare-index {
         .action.print {
             margin: -20px 0 20px;
         }
     }
-
-}
\ No newline at end of file
+}
diff --git a/app/design/frontend/magento_plushe/less/styles.less b/app/design/frontend/magento_plushe/less/styles.less
index ce54fa847d4053d718b55d66a2d76a4f116152dc..29da0e624922eff5be81110407b020bb3c74b37a 100644
--- a/app/design/frontend/magento_plushe/less/styles.less
+++ b/app/design/frontend/magento_plushe/less/styles.less
@@ -1256,6 +1256,26 @@ body {
         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;
@@ -4531,7 +4551,8 @@ img[align="right"] {
     }
 }
 
-.customer.welcome + li {
+.customer.welcome + li,
+.customer.welcome + .greet.welcome + li {
     display: none !important;
 }
 
@@ -4651,102 +4672,7 @@ img[align="right"] {
 .form.password.reset,
 .form.paypal.review,
 .form.send.confirmation {
-    .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;
-        }
-    }
+    .formCommon();
 }
 
 .form.send.friend {
diff --git a/app/design/frontend/magento_plushe/less/styles/base.less b/app/design/frontend/magento_plushe/less/styles/base.less
index e3c351b381c922f08fda2419e12f5ec46b9dc42f..2652ea51403270c434f1f8a3d501d5a80b8b0ab8 100644
--- a/app/design/frontend/magento_plushe/less/styles/base.less
+++ b/app/design/frontend/magento_plushe/less/styles/base.less
@@ -46,8 +46,6 @@
 
 .font-face( "icons", "@{baseDir}/fonts/icons/icons", 400, normal, true );
 
-@baseDir: ~".."; //default
-
 html, body, button, input, select, textarea {
     font: @baseFontWeight @baseFontSize/@baseLineHeight @baseFont;
     color: @baseColor;
diff --git a/app/design/frontend/magento_plushe/less/vars.less b/app/design/frontend/magento_plushe/less/vars.less
index 74684cf3e6b064ce76905ed4713c9fa33904608b..9d68619185a004b1b0406ca0b82967780f097f1a 100644
--- a/app/design/frontend/magento_plushe/less/vars.less
+++ b/app/design/frontend/magento_plushe/less/vars.less
@@ -134,4 +134,85 @@
 @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: "–";
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/LayoutTest.php b/dev/tests/integration/testsuite/Magento/Core/Model/LayoutTest.php
index 6f08269d86a77d6f3da777aa93881616f4cab002..72458399b2bb608cb79fe0ee6c5b8d4a0f246faf 100644
--- a/dev/tests/integration/testsuite/Magento/Core/Model/LayoutTest.php
+++ b/dev/tests/integration/testsuite/Magento/Core/Model/LayoutTest.php
@@ -500,4 +500,20 @@ class LayoutTest extends \PHPUnit_Framework_TestCase
         $result = $this->_layout->renderElement('container2', false);
         $this->assertEquals('<div id="container2-2" class="class22">Test21Test22</div>', $result);
     }
+
+    public function testIsCacheable()
+    {
+        $this->_layout->setXml(simplexml_load_file(__DIR__ . '/_files/layout/cacheable.xml',
+            'Magento\View\Layout\Element'));
+        $this->_layout->generateElements();
+        $this->assertTrue($this->_layout->isCacheable());
+    }
+
+    public function testIsNonCacheable()
+    {
+        $this->_layout->setXml(simplexml_load_file(__DIR__ . '/_files/layout/non_cacheable.xml',
+            'Magento\View\Layout\Element'));
+        $this->_layout->generateElements();
+        $this->assertFalse($this->_layout->isCacheable());
+    }
 }
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/layout/cacheable.xml b/dev/tests/integration/testsuite/Magento/Core/Model/_files/layout/cacheable.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0680fc8f3dcafa57f433a279444fe146c18b82ad
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Core/Model/_files/layout/cacheable.xml
@@ -0,0 +1,34 @@
+<?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">
+    <container name="cachable_container1-1" label="test1" htmlTag="div" htmlId="cachable_container11" htmlClass="class11">
+        <block class="Magento\View\Element\Text" name="block-1-in-cacheable-container1">
+            <action method="setText">
+                <argument name="text" xsi:type="string">Test11</argument>
+            </action>
+        </block>
+    </container>
+</layout>
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/layout/non_cacheable.xml b/dev/tests/integration/testsuite/Magento/Core/Model/_files/layout/non_cacheable.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0bac7ca5161d6a353abc7945d28ab87b87c4c202
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Core/Model/_files/layout/non_cacheable.xml
@@ -0,0 +1,34 @@
+<?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">
+    <container name="non_cachable_container1-1" label="test1" htmlTag="div" htmlId="non_cachable_container11" htmlClass="class11">
+        <block class="Magento\View\Element\Text" name="block-1-in-non-cacheable-container1" cacheable="false">
+            <action method="setText">
+                <argument name="text" xsi:type="string">Test11</argument>
+            </action>
+        </block>
+    </container>
+</layout>
diff --git a/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/code/Magento/Test/etc/widget.xml b/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/code/Magento/Test/etc/widget.xml
index d512be2215a2ed223d25b354b929dae6dbc7e51b..f4cfd8ca238d76fafa277c85fe19c95f2fc438de 100644
--- a/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/code/Magento/Test/etc/widget.xml
+++ b/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/code/Magento/Test/etc/widget.xml
@@ -25,7 +25,7 @@
 -->
 <widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="../../../../../../../../../../../../../app/code/Magento/Widget/etc/widget.xsd">
-    <widget id="sales_widget_guestform" class="Magento\Sales\Block\Widget\Guest\Form" is_email_compatible="true">
+    <widget id="sales_widget_guestform" class="Magento\Sales\Block\Widget\Guest\Form" is_email_compatible="true" >
         <label translate="true">Orders and Returns</label>
         <description translate="true">Orders and Returns Search Form</description>
         <parameters>
diff --git a/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/design/frontend/Test/etc/widget.xml b/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/design/frontend/Test/etc/widget.xml
index 809c1fd2d230858616c8a7f2409546f65dbdaa20..c31eba925a8b578981be45b285491a4bfa00b806 100644
--- a/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/design/frontend/Test/etc/widget.xml
+++ b/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/design/frontend/Test/etc/widget.xml
@@ -25,7 +25,7 @@
 -->
 <widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="../../../../../../../../../../../../../app/code/Magento/Widget/etc/widget.xsd">
-    <widget id="new_products" class="Magento\Sales\Block\Widget\Guest\Form" is_email_compatible="true">
+    <widget id="new_products" class="Magento\Sales\Block\Widget\Guest\Form" is_email_compatible="true" >
         <label translate="true">Orders and Returns</label>
         <description translate="true">Orders and Returns Search Form</description>
         <parameters>
diff --git a/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/widgetSecond.xml b/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/widgetSecond.xml
index d51aa4719e500d27e289ac22f728e747f0569c6a..8699f99bdd115b8f4631bd1c8784e2d3b2a397ca 100644
--- a/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/widgetSecond.xml
+++ b/dev/tests/integration/testsuite/Magento/Widget/Model/Config/_files/widgetSecond.xml
@@ -25,7 +25,7 @@
 -->
 <widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="../../../../../../../../../app/code/Magento/Widget/etc/widget.xsd">
-    <widget id="new_products" class="Magento\Sales\Block\Widget\Guest\Form" is_email_compatible="true">
+    <widget id="new_products" class="Magento\Sales\Block\Widget\Guest\Form" is_email_compatible="true" >
         <label translate="true">Orders and Returns</label>
         <description translate="true">Orders and Returns Search Form</description>
         <parameters>
diff --git a/dev/tests/js/testsuite/mage/validation/validate-test.js b/dev/tests/js/testsuite/mage/validation/validate-test.js
index 6d77a377431a8c0c785efec20bcdcc3a4491a43a..a3255988afe96f064741cc34ecf43906927195b7 100644
--- a/dev/tests/js/testsuite/mage/validation/validate-test.js
+++ b/dev/tests/js/testsuite/mage/validation/validate-test.js
@@ -320,7 +320,7 @@ MageValidationTest.prototype.testValidateOneRequiredByName = function () {
 };
 
 MageValidationTest.prototype.testLessThanEqualsTo = function () {
-    /*:DOC += <input type="text" value=6  id="element1" />*/
+    /*:DOC += <input type="text" value=6 id="element1" />*/
     /*:DOC += <input type="text" value=5 id="element2" />*/
     var element1 = document.getElementById('element1');
     assertFalse($.validator.methods['less-than-equals-to'].call(this, element1.value,
@@ -335,15 +335,21 @@ MageValidationTest.prototype.testLessThanEqualsTo = function () {
     assertTrue($.validator.methods['less-than-equals-to'].call(this, element3.value,
         element3, '#element4'));
 
-    /*:DOC += <input type="text" value=6  id="element5" />*/
+    /*:DOC += <input type="text" value=6 id="element5" />*/
     /*:DOC += <input type="text" id="element6" />*/
     var element5 = document.getElementById('element5');
     assertTrue($.validator.methods['less-than-equals-to'].call(this, element5.value,
         element5, '#element6'));
+
+    /*:DOC += <input type="text" value=20  id="element7" />*/
+    /*:DOC += <input type="text" value=100 id="element8" />*/
+    var element7 = document.getElementById('element7');
+    assertTrue($.validator.methods['less-than-equals-to'].call(this, element7.value,
+        element7, '#element8'));
 };
 
 MageValidationTest.prototype.testGreaterThanEqualsTo = function () {
-    /*:DOC += <input type="text" value=6  id="element1" />*/
+    /*:DOC += <input type="text" value=6 id="element1" />*/
     /*:DOC += <input type="text" value=7 id="element2" />*/
     var element1 = document.getElementById('element1');
     assertFalse($.validator.methods['greater-than-equals-to'].call(this, element1.value,
@@ -358,11 +364,17 @@ MageValidationTest.prototype.testGreaterThanEqualsTo = function () {
     assertTrue($.validator.methods['greater-than-equals-to'].call(this, element3.value,
         element3, '#element4'));
 
-    /*:DOC += <input type="text" value=6  id="element5" />*/
+    /*:DOC += <input type="text" value=6 id="element5" />*/
     /*:DOC += <input type="text" id="element6" />*/
     var element5 = document.getElementById('element5');
     assertTrue($.validator.methods['greater-than-equals-to'].call(this, element5.value,
         element5, '#element6'));
+
+    /*:DOC += <input type="text" value=100 id="element7" />*/
+    /*:DOC += <input type="text" value=20  id="element8" />*/
+    var element7 = document.getElementById('element7');
+    assertTrue($.validator.methods['greater-than-equals-to'].call(this, element7.value,
+        element7, '#element8'));
 };
 
 MageValidationTest.prototype.testValidateGroupedQty = function () {
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 c8a8edb1eb24c495c8311f2037221c6eac736ef4..3438fbe93c13c24fe9b4ebfc7f8d3e4b1ff932b5 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/Di/CompilerTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Di/CompilerTest.php
@@ -117,9 +117,10 @@ class CompilerTest extends \PHPUnit_Framework_TestCase
             if (\Magento\TestFramework\Utility\Classes::isVirtual($instanceName)) {
                 $instanceName = \Magento\TestFramework\Utility\Classes::resolveVirtualType($instanceName);
             }
-            $parameters = $parameters['parameters'];
-            if (!class_exists($instanceName)) {
-                $this->fail('Detected configuration of non existed class: ' . $instanceName);
+
+
+            if (!$this->_classExistsAsReal($instanceName)) {
+                continue;
             }
 
             $reflectionClass = new \ReflectionClass($instanceName);
@@ -129,6 +130,7 @@ class CompilerTest extends \PHPUnit_Framework_TestCase
                 $this->fail('Class ' . $instanceName . ' does not have __constructor');
             }
 
+            $parameters = $parameters['parameters'];
             $classParameters = $constructor->getParameters();
             foreach ($classParameters as $classParameter) {
                 $parameterName = $classParameter->getName();
@@ -142,6 +144,24 @@ class CompilerTest extends \PHPUnit_Framework_TestCase
         }
     }
 
+    /**
+     * Checks if class is a real one or generated Factory
+     * @param $instanceName class name
+     * @throws \PHPUnit_Framework_AssertionFailedError
+     * @return bool
+     */
+    protected function _classExistsAsReal($instanceName)
+    {
+        if (class_exists($instanceName)) {
+            return true;
+        }
+        // check for generated factory
+        if (substr($instanceName, -7) == 'Factory' && class_exists(substr($instanceName, 0, -7))) {
+            return false;
+        }
+        $this->fail('Detected configuration of non existed class: ' . $instanceName);
+    }
+
     /**
      * Get php classes list
      *
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Widget/_files/widget.xml b/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Widget/_files/widget.xml
index 312d137d1e861fe041a73d201398c0e9a61a5420..1be258a24ae7615c1b9949b1ce9acf1ed62830e8 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Widget/_files/widget.xml
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Widget/_files/widget.xml
@@ -25,7 +25,7 @@
 -->
 <widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Widget/etc/widget.xsd">
-    <widget id="sales_widget_guestform" class="Magento\Sales\Block\Widget\Guest\Form" is_email_compatible="true">
+    <widget id="sales_widget_guestform" class="Magento\Sales\Block\Widget\Guest\Form" is_email_compatible="true" >
         <label translate="true">Orders and Returns</label>
         <description translate="true">Orders and Returns Search Form</description>
         <parameters>
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 5f7f8681a3308369c741e329dcd0ecedc52f1cb2..0fce58d9963ecdbfd4cc8eefde048b29ae1b6105 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
@@ -1777,4 +1777,5 @@ return array(
     array('Magento\Catalog\Model\Resource\Convert'),
     array('Magento\Reminder\Model\Resource\HelperFactory'),
     array('Magento\Reminder\Model\Resource\Helper'),
+    array('Magento\CatalogRule\Block\Adminhtml\Promo\Widget\Chooser'),
 );
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 1c4c9f8255a667275e931bde880e1c53d28ccc4e..783a3677b3bb50311ad87af0f2a5e8710287f544 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
@@ -471,6 +471,26 @@ return array(
         'Magento\View\Asset\MinifyService',
         'Magento\Core\Model\Asset\Config::XML_PATH_MINIFICATION_ADAPTER'
     ),
+    array(
+        'USE_PARENT_IMAGE',
+        'Magento\Checkout\Block\Cart\Item\Renderer\Configurable',
+        'Magento\Catalog\Model\Config\Source\Product\Thumbnail::OPTION_USE_PARENT_IMAGE'
+    ),
+    array(
+        'USE_PARENT_IMAGE',
+        'Magento\Checkout\Block\Cart\Item\Renderer\Grouped',
+        'Magento\Catalog\Model\Config\Source\Product\Thumbnail::OPTION_USE_PARENT_IMAGE'
+    ),
+    array(
+        'CONFIGURABLE_PRODUCT_IMAGE',
+        'Magento\Checkout\Block\Cart\Item\Renderer\Configurable',
+        'Magento\Checkout\Block\Cart\Item\Renderer\Configurable::CONFIG_THUMBNAIL_SOURCE'
+    ),
+    array(
+        'GROUPED_PRODUCT_IMAGE',
+        'Magento\Checkout\Block\Cart\Item\Renderer\Grouped',
+        'Magento\Checkout\Block\Cart\Item\Renderer\Grouped::CONFIG_THUMBNAIL_SOURCE'
+    ),
     array('TYPE_BLOCK', '\Magento\Core\Model\Layout', '\Magento\View\Layout\Element'),
     array('TYPE_CONTAINER', '\Magento\Core\Model\Layout', '\Magento\View\Layout\Element'),
     array('TYPE_ACTION', '\Magento\Core\Model\Layout', '\Magento\View\Layout\Element'),
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 4600f8dbdbf45f6a9bd63dff3c115ae1fed1c5f5..c1f0cb868f47c0a2602129f24cd3e8e1614127b4 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
@@ -725,6 +725,10 @@ return array(
     array('shouldCustomerHaveOneBalance'),
     array('shouldShowOneBalance'),
     array('sortChildren'),
+    array('overrideProductThumbnail', 'Magento\Checkout\Block\Cart\Item\Renderer'),
+    array('_getThumbnail', 'Magento\Checkout\Block\Cart\Item\Renderer'),
+    array('getConfigurableProduct', 'Magento\Checkout\Block\Cart\Item\Renderer\Configurable'),
+    array('getProductAttributes', 'Magento\Checkout\Block\Cart\Item\Renderer\Configurable'),
     array('substDistroServerVars', 'Magento\Core\Model\Config'),
     array('superGroupGridOnlyAction', 'Magento\Catalog\Controller\Adminhtml\Product'),
     array('toOptionArray', 'Magento\Cms\Model\Resource\Page\Collection'),
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 20868762bb8540218b92b7a287fc05c2a245b9e1..037f90f4ad2f78a854f556443b61a9bda39d692c 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
@@ -254,6 +254,7 @@ return array(
     array('_appState', 'Magento\View\Asset\MinifyService', 'appState'),
     array('_properties', 'Magento\View\Asset\PropertyGroup', 'properties'),
     array('_viewUrl', 'Magento\View\Asset\PublicFile', 'viewUrl'),
+    array('_productThumbnail', 'Magento\Checkout\Block\Cart\Item\Renderer'),
     array('_file', 'Magento\View\Asset\PublicFile', 'file'),
     array('_contentType', 'Magento\View\Asset\PublicFile', 'contentType'),
     array('_url', 'Magento\View\Asset\Remote', 'url'),
diff --git a/dev/tests/unit/testsuite/Magento/Catalog/Model/System/Config/Source/InputtypeTest.php b/dev/tests/unit/testsuite/Magento/Catalog/Model/System/Config/Source/InputtypeTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..62afa965bbb2c9cdf2de34c5ebc4d8549ea7894d
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Catalog/Model/System/Config/Source/InputtypeTest.php
@@ -0,0 +1,58 @@
+<?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\System\Config\Source;
+
+class InputtypeTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\TestFramework\Helper\ObjectManager
+     */
+    protected $_helper;
+
+    /**
+     * @var \Magento\Catalog\Model\System\Config\Source\Inputtype
+     */
+    protected $_model;
+
+    protected function setUp()
+    {
+        $this->_helper = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $this->_model = $this->_helper->getObject('\Magento\Catalog\Model\System\Config\Source\Inputtype');
+    }
+
+    public function testToOptionArrayIsArray()
+    {
+        $this->assertInternalType('array', $this->_model->toOptionArray());
+    }
+
+    public function testToOptionArrayValid()
+    {
+        $expects = array(
+            array('value' => 'multiselect', 'label' => 'Multiple Select'),
+            array('value' => 'select', 'label' => 'Dropdown')
+
+        );
+        $this->assertEquals($expects, $this->_model->toOptionArray());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Centinel/Model/ServiceTest.php b/dev/tests/unit/testsuite/Magento/Centinel/Model/ServiceTest.php
index 23cb9dc0fbd10bf4bc3b41362dcee3af4a8bc168..3ba23c5ffadedb72c3a8addf8c2a2670f069a571 100644
--- a/dev/tests/unit/testsuite/Magento/Centinel/Model/ServiceTest.php
+++ b/dev/tests/unit/testsuite/Magento/Centinel/Model/ServiceTest.php
@@ -38,7 +38,10 @@ class ServiceTest extends \PHPUnit_Framework_TestCase
         $url = $this->getMock('Magento\Core\Model\Url', ['getUrl'], [], '', false);
         $url->expects($this->once())
             ->method('getUrl')
-            ->with($this->equalTo('url_prefix/authenticationstart'))
+            ->with(
+                $this->equalTo('url_prefix/authenticationstart'),
+                $this->equalTo(array('_secure' => true, '_current' => false, 'isIframe' => true))
+            )
             ->will($this->returnValue('some value'));
 
         $helper = new \Magento\TestFramework\Helper\ObjectManager($this);
diff --git a/dev/tests/unit/testsuite/Magento/Checkout/Block/Cart/Item/Renderer/ConfigurableTest.php b/dev/tests/unit/testsuite/Magento/Checkout/Block/Cart/Item/Renderer/ConfigurableTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..f4240a8d72707ffd347f1941c94d592abd29820d
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Checkout/Block/Cart/Item/Renderer/ConfigurableTest.php
@@ -0,0 +1,225 @@
+<?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_Checkout
+ * @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\Checkout\Block\Cart\Item\Renderer;
+
+use Magento\Checkout\Block\Cart\Item\Renderer\Configurable as Renderer;
+use \Magento\Catalog\Model\Config\Source\Product\Thumbnail as ThumbnailSource;
+
+class ConfigurableTest extends \PHPUnit_Framework_TestCase
+{
+    /** @var \Magento\View\ConfigInterface|\PHPUnit_Framework_MockObject_MockObject */
+    protected $_configManager;
+
+    /** @var \Magento\Catalog\Helper\Image|\PHPUnit_Framework_MockObject_MockObject */
+    protected $_imageHelper;
+
+    /** @var \Magento\Core\Model\Store\Config|\PHPUnit_Framework_MockObject_MockObject */
+    protected $_storeConfig;
+
+    /** @var Renderer */
+    protected $_renderer;
+
+    protected function setUp()
+    {
+        parent::setUp();
+        $objectManagerHelper = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $this->_configManager = $this->getMock('Magento\View\ConfigInterface', array(), array(), '', false);
+        $this->_imageHelper = $this->getMock(
+            'Magento\Catalog\Helper\Image',
+            array('init', 'resize', '__toString'),
+            array(),
+            '',
+            false
+        );
+        $this->_storeConfig = $this->getMock('Magento\Core\Model\Store\Config', array(), array(), '', false, false);
+        $this->_renderer = $objectManagerHelper->getObject(
+            'Magento\Checkout\Block\Cart\Item\Renderer\Configurable',
+            array(
+                'viewConfig' => $this->_configManager,
+                'imageHelper' => $this->_imageHelper,
+                'storeConfig' => $this->_storeConfig,
+            )
+        );
+    }
+
+    public function testGetProductThumbnailUrl()
+    {
+        $url = 'pub/media/catalog/product/cache/1/thumbnail/75x/9df78eab33525d08d6e5fb8d27136e95/_/_/__green.gif';
+        $objectManagerHelper = new \Magento\TestFramework\Helper\ObjectManager($this);
+
+        $configView = $this->getMock('Magento\Config\View', array('getVarValue'), array(), '', false);
+        $configView->expects($this->any())->method('getVarValue')->will($this->returnValue(75));
+
+        $this->_configManager->expects($this->any())->method('getViewConfig')->will($this->returnValue($configView));
+
+        $product = $this->getMock(
+            'Magento\Catalog\Model\Product',
+            array('isConfigurable', '__wakeup'),
+            array(),
+            '',
+            false
+        );
+        $product->expects($this->any())->method('isConfigurable')->will($this->returnValue(true));
+
+        $childProduct = $this->getMock(
+            'Magento\Catalog\Model\Product',
+            array('getThumbnail', 'getDataByKey', '__wakeup'),
+            array(),
+            '',
+            false
+        );
+        $childProduct->expects($this->any())->method('getThumbnail')->will($this->returnValue('/_/_/__green.gif'));
+
+        $this->_imageHelper->expects($this->any())->method('init')->will($this->returnValue($this->_imageHelper));
+        $this->_imageHelper->expects($this->any())->method('resize')->will($this->returnValue($this->_imageHelper));
+        $this->_imageHelper->expects($this->any())->method('__toString')->will($this->returnValue($url));
+
+        $arguments = array(
+            'statusListFactory' => $this->getMock(
+                'Magento\Sales\Model\Status\ListFactory', array(), array(), '', false
+            ),
+            'productFactory' => $this->getMock('Magento\Catalog\Model\ProductFactory', array(), array(), '', false),
+            'itemOptionFactory' => $this->getMock(
+                'Magento\Sales\Model\Quote\Item\OptionFactory', array(), array(), '', false
+            ),
+        );
+        $childItem = $objectManagerHelper->getObject('Magento\Sales\Model\Quote\Item', $arguments);
+        $childItem->setData('product', $childProduct);
+
+        $item = $objectManagerHelper->getObject('Magento\Sales\Model\Quote\Item', $arguments);
+        $item->setData('product', $product);
+        $item->addChild($childItem);
+
+        $this->_renderer->setItem($item);
+
+        $configurableUrl = $this->_renderer->getProductThumbnailUrl();
+        $this->assertNotNull($configurableUrl);
+    }
+
+    /**
+     * Child thumbnail is available and config option is not set to use parent thumbnail.
+     */
+    public function testGetProductForThumbnail()
+    {
+        $childHasThumbnail = true;
+        $useParentThumbnail = false;
+        $products = $this->_initProducts($childHasThumbnail, $useParentThumbnail);
+
+        $productForThumbnail = $this->_renderer->getProductForThumbnail();
+        $this->assertSame(
+            $products['childProduct'],
+            $productForThumbnail,
+            'Child product was expected to be returned.'
+        );
+    }
+
+    /**
+     * Child thumbnail is not available and config option is not set to use parent thumbnail.
+     */
+    public function testGetProductForThumbnailChildThumbnailNotAvailable()
+    {
+        $childHasThumbnail = false;
+        $useParentThumbnail = false;
+        $products = $this->_initProducts($childHasThumbnail, $useParentThumbnail);
+
+        $productForThumbnail = $this->_renderer->getProductForThumbnail();
+        $this->assertSame(
+            $products['parentProduct'],
+            $productForThumbnail,
+            'Parent product was expected to be returned.'
+        );
+    }
+
+    /**
+     * Child thumbnail is available and config option is set to use parent thumbnail.
+     */
+    public function testGetProductForThumbnailConfigUseParent()
+    {
+        $childHasThumbnail = true;
+        $useParentThumbnail = true;
+        $products = $this->_initProducts($childHasThumbnail, $useParentThumbnail);
+
+        $productForThumbnail = $this->_renderer->getProductForThumbnail();
+        $this->assertSame(
+            $products['parentProduct'],
+            $productForThumbnail,
+            'Parent product was expected to be returned '
+                . 'if "checkout/cart/configurable_product_image option" is set to "parent" in system config.'
+        );
+    }
+
+    /**
+     * Initialize parent configurable product and child product.
+     *
+     * @param bool $childHasThumbnail
+     * @param bool $useParentThumbnail
+     * @return \Magento\Catalog\Model\Product[]|\PHPUnit_Framework_MockObject_MockObject[]
+     */
+    protected function _initProducts($childHasThumbnail = true, $useParentThumbnail = false)
+    {
+        /** Set option which can force usage of parent product thumbnail when configurable product is displayed */
+        $thumbnailToBeUsed = $useParentThumbnail
+            ? ThumbnailSource::OPTION_USE_PARENT_IMAGE
+            : ThumbnailSource::OPTION_USE_OWN_IMAGE;
+        $this->_storeConfig->expects($this->any())
+            ->method('getConfig')
+            ->with(Renderer::CONFIG_THUMBNAIL_SOURCE)
+            ->will($this->returnValue($thumbnailToBeUsed));
+
+        /** Initialized parent product */
+        /** @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject $parentProduct */
+        $parentProduct = $this->getMock('Magento\Catalog\Model\Product', array(), array(), '', false);
+
+        /** Initialize child product */
+        /** @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject $childProduct */
+        $childProduct = $this->getMock(
+            'Magento\Catalog\Model\Product',
+            array('getThumbnail', '__wakeup'),
+            array(),
+            '',
+            false
+        );
+        $childThumbnail = $childHasThumbnail ? 'thumbnail.jpg' : 'no_selection';
+        $childProduct->expects($this->any())->method('getThumbnail')->will($this->returnValue($childThumbnail));
+
+        /** Mock methods which return parent and child products */
+        /** @var \Magento\Sales\Model\Quote\Item\Option|\PHPUnit_Framework_MockObject_MockObject $itemOption */
+        $itemOption = $this->getMock('Magento\Sales\Model\Quote\Item\Option', array(), array(), '', false);
+        $itemOption->expects($this->any())->method('getProduct')->will($this->returnValue($childProduct));
+        /** @var \Magento\Sales\Model\Quote\Item|\PHPUnit_Framework_MockObject_MockObject $item */
+        $item = $this->getMock('Magento\Sales\Model\Quote\Item', array(), array(), '', false);
+        $item->expects($this->any())->method('getProduct')->will($this->returnValue($parentProduct));
+        $item->expects($this->any())
+            ->method('getOptionByCode')
+            ->with('simple_product')
+            ->will($this->returnValue($itemOption));
+        $this->_renderer->setItem($item);
+
+        return ['parentProduct' => $parentProduct, 'childProduct' => $childProduct];
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Checkout/Block/Cart/Item/Renderer/GroupedTest.php b/dev/tests/unit/testsuite/Magento/Checkout/Block/Cart/Item/Renderer/GroupedTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..201361a81ed843b0ef34783120875a0348135f35
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Checkout/Block/Cart/Item/Renderer/GroupedTest.php
@@ -0,0 +1,155 @@
+<?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_Checkout
+ * @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\Checkout\Block\Cart\Item\Renderer;
+
+use Magento\Checkout\Block\Cart\Item\Renderer\Grouped as Renderer;
+use \Magento\Catalog\Model\Config\Source\Product\Thumbnail as ThumbnailSource;
+
+class GroupedTest extends \PHPUnit_Framework_TestCase
+{
+    /** @var \Magento\Core\Model\Store\Config|\PHPUnit_Framework_MockObject_MockObject */
+    protected $_storeConfig;
+
+    /** @var Renderer */
+    protected $_renderer;
+
+    protected function setUp()
+    {
+        parent::setUp();
+        $objectManagerHelper = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $this->_storeConfig = $this->getMock('Magento\Core\Model\Store\Config', array(), array(), '', false, false);
+        $this->_renderer = $objectManagerHelper->getObject(
+            'Magento\Checkout\Block\Cart\Item\Renderer\Grouped',
+            array(
+                'storeConfig' => $this->_storeConfig,
+            )
+        );
+    }
+
+    /**
+     * Child thumbnail is available and config option is not set to use parent thumbnail.
+     */
+    public function testGetProductForThumbnail()
+    {
+        $childHasThumbnail = true;
+        $useParentThumbnail = false;
+        $products = $this->_initProducts($childHasThumbnail, $useParentThumbnail);
+
+        $productForThumbnail = $this->_renderer->getProductForThumbnail();
+        $this->assertSame(
+            $products['childProduct'],
+            $productForThumbnail,
+            'Child product was expected to be returned.'
+        );
+    }
+
+    /**
+     * Child thumbnail is not available and config option is not set to use parent thumbnail.
+     */
+    public function testGetProductForThumbnailChildThumbnailNotAvailable()
+    {
+        $childHasThumbnail = false;
+        $useParentThumbnail = false;
+        $products = $this->_initProducts($childHasThumbnail, $useParentThumbnail);
+
+        $productForThumbnail = $this->_renderer->getProductForThumbnail();
+        $this->assertSame(
+            $products['parentProduct'],
+            $productForThumbnail,
+            'Parent product was expected to be returned.'
+        );
+    }
+
+    /**
+     * Child thumbnail is available and config option is set to use parent thumbnail.
+     */
+    public function testGetProductForThumbnailConfigUseParent()
+    {
+        $childHasThumbnail = true;
+        $useParentThumbnail = true;
+        $products = $this->_initProducts($childHasThumbnail, $useParentThumbnail);
+
+        $productForThumbnail = $this->_renderer->getProductForThumbnail();
+        $this->assertSame(
+            $products['parentProduct'],
+            $productForThumbnail,
+            'Parent product was expected to be returned '
+                . 'if "checkout/cart/grouped_product_image" is set to "parent" in system config.'
+        );
+    }
+
+    /**
+     * Initialize parent grouped product and child product.
+     *
+     * @param bool $childHasThumbnail
+     * @param bool $useParentThumbnail
+     * @return \Magento\Catalog\Model\Product[]|\PHPUnit_Framework_MockObject_MockObject[]
+     */
+    protected function _initProducts($childHasThumbnail = true, $useParentThumbnail = false)
+    {
+        /** Set option which can force usage of parent product thumbnail when grouped product is displayed */
+        $thumbnailToBeUsed = $useParentThumbnail
+            ? ThumbnailSource::OPTION_USE_PARENT_IMAGE
+            : ThumbnailSource::OPTION_USE_OWN_IMAGE;
+        $this->_storeConfig->expects($this->any())
+            ->method('getConfig')
+            ->with(Renderer::CONFIG_THUMBNAIL_SOURCE)
+            ->will($this->returnValue($thumbnailToBeUsed));
+
+        /** Initialized parent product */
+        /** @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject $parentProduct */
+        $parentProduct = $this->getMock('Magento\Catalog\Model\Product', array(), array(), '', false);
+
+        /** Initialize child product */
+        /** @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject $childProduct */
+        $childProduct = $this->getMock(
+            'Magento\Catalog\Model\Product',
+            array('getThumbnail', '__wakeup'),
+            array(),
+            '',
+            false
+        );
+        $childThumbnail = $childHasThumbnail ? 'thumbnail.jpg' : 'no_selection';
+        $childProduct->expects($this->any())->method('getThumbnail')->will($this->returnValue($childThumbnail));
+
+        /** Mock methods which return parent and child products */
+        /** @var \Magento\Sales\Model\Quote\Item\Option|\PHPUnit_Framework_MockObject_MockObject $itemOption */
+        $itemOption = $this->getMock('Magento\Sales\Model\Quote\Item\Option', array(), array(), '', false);
+        $itemOption->expects($this->any())->method('getProduct')->will($this->returnValue($parentProduct));
+        /** @var \Magento\Sales\Model\Quote\Item|\PHPUnit_Framework_MockObject_MockObject $item */
+        $item = $this->getMock('Magento\Sales\Model\Quote\Item', array(), array(), '', false);
+        $item->expects($this->any())->method('getProduct')->will($this->returnValue($childProduct));
+        $item->expects($this->any())
+            ->method('getOptionByCode')
+            ->with('product_type')
+            ->will($this->returnValue($itemOption));
+        $this->_renderer->setItem($item);
+
+        return ['parentProduct' => $parentProduct, 'childProduct' => $childProduct];
+    }
+}
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 540cf6fc5384670d659118570eb7b669e74294a9..1439db0d80e09f20a6b3e4b340533b7911cee35f 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
@@ -24,76 +24,65 @@
  * @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\Checkout\Block\Cart\Item;
 
+use Magento\Checkout\Block\Cart\Item\Renderer as Renderer;
+
 class RendererTest extends \PHPUnit_Framework_TestCase
 {
-    public function testGetProductThumbnailUrlForConfigurable()
-    {
-        $url = 'pub/media/catalog/product/cache/1/thumbnail/75x/9df78eab33525d08d6e5fb8d27136e95/_/_/__green.gif';
-        $objectManagerHelper = new \Magento\TestFramework\Helper\ObjectManager($this);
-
-        $configView = $this->getMock('Magento\Config\View', array('getVarValue'), array(), '', false);
-        $configView->expects($this->any())->method('getVarValue')->will($this->returnValue(75));
-
-        $configManager = $this->getMock('Magento\View\ConfigInterface', array(), array(), '', false);
-        $configManager->expects($this->any())->method('getViewConfig')->will($this->returnValue($configView));
-
-        $product = $this->getMock(
-            'Magento\Catalog\Model\Product',
-            array('isConfigurable', '__wakeup'),
-            array(),
-            '',
-            false
-        );
-        $product->expects($this->any())->method('isConfigurable')->will($this->returnValue(true));
-
-        $childProduct = $this->getMock(
-            'Magento\Catalog\Model\Product',
-            array('getThumbnail', 'getDataByKey', '__wakeup'),
-            array(),
-            '',
-            false
-        );
-        $childProduct->expects($this->any())->method('getThumbnail')->will($this->returnValue('/_/_/__green.gif'));
-
-        $helperImage = $this->getMock('Magento\Catalog\Helper\Image',
-            array('init', 'resize', '__toString'), array(), '', false
-        );
-        $helperImage->expects($this->any())->method('init')->will($this->returnValue($helperImage));
-        $helperImage->expects($this->any())->method('resize')->will($this->returnValue($helperImage));
-        $helperImage->expects($this->any())->method('__toString')->will($this->returnValue($url));
+    /** @var \Magento\Catalog\Helper\Image|\PHPUnit_Framework_MockObject_MockObject */
+    protected $_imageHelper;
 
+    /** @var Renderer */
+    protected $_renderer;
 
-        $arguments = array(
-            'statusListFactory' => $this->getMock(
-                'Magento\Sales\Model\Status\ListFactory', array(), array(), '', false
-            ),
-            'productFactory' => $this->getMock('Magento\Catalog\Model\ProductFactory', array(), array(), '', false),
-            'itemOptionFactory' => $this->getMock(
-                'Magento\Sales\Model\Quote\Item\OptionFactory', array(), array(), '', false
-            ),
+    protected function setUp()
+    {
+        parent::setUp();
+        $objectManagerHelper = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $this->_imageHelper = $this->getMock('Magento\Catalog\Helper\Image', array(), array(), '', false);
+        $this->_renderer = $objectManagerHelper->getObject(
+            'Magento\Checkout\Block\Cart\Item\Renderer',
+            ['imageHelper' => $this->_imageHelper]
         );
-        $childItem = $objectManagerHelper->getObject('Magento\Sales\Model\Quote\Item', $arguments);
-        $childItem->setData('product', $childProduct);
+    }
 
-        $item = $objectManagerHelper->getObject('Magento\Sales\Model\Quote\Item', $arguments);
-        $item->setData('product', $product);
-        $item->addChild($childItem);
+    public function testGetProductForThumbnail()
+    {
+        $product = $this->_initProduct();
+        $productForThumbnail = $this->_renderer->getProductForThumbnail();
+        $this->assertEquals($product->getName(), $productForThumbnail->getName(), 'Invalid product was returned.');
+    }
 
-        $configurable = $objectManagerHelper->getObject(
-            'Magento\Checkout\Block\Cart\Item\Renderer\Configurable',
-            array(
-                'viewConfig' => $configManager,
-                'imageHelper' => $helperImage,
-            ));
+    public function testGetProductThumbnail()
+    {
+        $productForThumbnail = $this->_initProduct();
+        /** Ensure that image helper was initialized with correct arguments */
+        $this->_imageHelper->expects($this->once())
+            ->method('init')
+            ->with($productForThumbnail, 'thumbnail')
+            ->will($this->returnSelf());
+        $productThumbnail = $this->_renderer->getProductThumbnail();
+        $this->assertSame($this->_imageHelper, $productThumbnail, 'Invalid product thumbnail is returned.');
+    }
 
-        $layout = $configurable->getLayout();
-        $layout->expects($this->any())->method('helper')->will($this->returnValue($helperImage));
+    /**
+     * Initialize product.
+     *
+     * @return \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected function _initProduct()
+    {
+        /** @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject $product */
+        $product = $this->getMock('Magento\Catalog\Model\Product', array(), array(), '', false);
+        $product->expects($this->any())->method('getName')->will($this->returnValue('Parent Product'));
 
-        $configurable->setItem($item);
+        /** @var \Magento\Sales\Model\Quote\Item|\PHPUnit_Framework_MockObject_MockObject $item */
+        $item = $this->getMock('Magento\Sales\Model\Quote\Item', array(), array(), '', false);
+        $item->expects($this->any())->method('getProduct')->will($this->returnValue($product));
 
-        $configurableUrl = $configurable->getProductThumbnailUrl();
-        $this->assertNotNull($configurableUrl);
+        $this->_renderer->setItem($item);
+        return $product;
     }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Sales/Model/Config/_files/sales_invalid_scope.xml b/dev/tests/unit/testsuite/Magento/Sales/Model/Config/_files/sales_invalid_scope.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f7571e652492cdd00419176ad8523f6ec5f10304
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Sales/Model/Config/_files/sales_invalid_scope.xml
@@ -0,0 +1,46 @@
+<?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>
+    <section name="section1">
+        <group name="group1">
+            <item name="item1" instance="instance1" sort_order="1">
+                <renderer name="renderer1" instance="instance1"/>
+            </item>
+        </group>
+        <group name="group2">
+            <item name="item1" instance="instance1" sort_order="1"/>
+        </group>
+    </section>
+    <section name="section2">
+        <group name="group1">
+            <item name="item1" instance="instance1" sort_order="1"/>
+        </group>
+    </section>
+    <order>
+        <available_product_type name="type1"/>
+        <available_product_type name="type2"/>
+    </order>
+</config>
diff --git a/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/InternationalTest.php b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/InternationalTest.php
index fe0a902c2e3addc6a858c8ad508181b9c0afdd44..52b2a07f69bb9eca6a3011a707b00a6f048d399e 100644
--- a/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/InternationalTest.php
+++ b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/InternationalTest.php
@@ -34,9 +34,128 @@ class InternationalTest extends \PHPUnit_Framework_TestCase
      */
     protected $_helper;
 
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_httpResponse;
+
+    /**
+     * @var \Magento\Usa\Model\Shipping\Carrier\Dhl
+     */
+    protected $_model;
+
     public function setUp()
     {
         $this->_helper = new \Magento\TestFramework\Helper\ObjectManager($this);
+        $coreStoreConfig = $this->getMockBuilder('\Magento\Core\Model\Store\Config')
+            ->setMethods(array('getConfigFlag', 'getConfig'))
+            ->disableOriginalConstructor()
+            ->getMock();
+        $coreStoreConfig->expects($this->any())->method('getConfigFlag')->will($this->returnValue(true));
+        $coreStoreConfig->expects($this->any())->method('getConfig')
+            ->will($this->returnCallback(array($this, 'coreStoreConfigGetConfig')));
+
+        // xml element factory
+        $xmlElFactory = $this->getMockBuilder('\Magento\Usa\Model\Simplexml\ElementFactory')
+            ->disableOriginalConstructor()
+            ->setMethods(array('create'))
+            ->getMock();
+        $xmlElFactory->expects($this->any())
+            ->method('create')
+            ->will(
+                $this->returnCallback(
+                    function ($data) {
+                        $oM = new \Magento\TestFramework\Helper\ObjectManager($this);
+                        return  $oM->getObject('\Magento\Usa\Model\Simplexml\Element', array('data' => $data['data']));
+                    }
+                )
+            );
+
+        // rate factory
+        $rateFactory = $this->getMockBuilder('\Magento\Shipping\Model\Rate\ResultFactory')->disableOriginalConstructor()
+            ->setMethods(array('create'))
+            ->getMock();
+        $rateResult = $this->getMockBuilder('\Magento\Shipping\Model\Rate\Result')->disableOriginalConstructor()
+            ->setMethods(null)
+            ->getMock();
+        $rateFactory->expects($this->any())->method('create')->will($this->returnValue($rateResult));
+
+        // rate method factory
+        $rateMethodFactory = $this->getMockBuilder('\Magento\Shipping\Model\Rate\Result\MethodFactory')
+            ->disableOriginalConstructor()
+            ->setMethods(array('create'))
+            ->getMock();
+        $rateMethod = $this->getMockBuilder('Magento\Shipping\Model\Rate\Result\Method')->disableOriginalConstructor()
+            ->setMethods(array('setPrice'))
+            ->getMock();
+        $rateMethod->expects($this->any())->method('setPrice')->will($this->returnSelf());
+
+        $rateMethodFactory->expects($this->any())->method('create')->will($this->returnValue($rateMethod));
+
+        // http client
+        $this->_httpResponse = $this->getMockBuilder('\Zend_Http_Response')->disableOriginalConstructor()
+            ->setMethods(array('getBody'))
+            ->getMock();
+
+        $httpClient = $this->getMockBuilder('\Zend_Http_Client')->disableOriginalConstructor()
+            ->setMethods(array('request'))
+            ->getMock();
+        $httpClient->expects($this->any())->method('request')->will($this->returnValue($this->_httpResponse));
+
+        $httpClientFactory = $this->getMockBuilder('\Zend_Http_ClientFactory')->disableOriginalConstructor()
+            ->setMethods(array('create'))
+            ->getMock();
+        $httpClientFactory->expects($this->any())->method('create')->will($this->returnValue($httpClient));
+        $modulesDirectory = $this->getMockBuilder('\Magento\Filesystem\Directory\Read')->disableOriginalConstructor()
+            ->setMethods(array('getRelativePath', 'readFile'))
+            ->getMock();
+        $modulesDirectory->expects($this->any())->method('readFile')
+            ->will($this->returnValue(file_get_contents(__DIR__ . '/_files/countries.xml')));
+        $filesystem = $this->getMockBuilder('\Magento\Filesystem')->disableOriginalConstructor()
+            ->setMethods(array('getDirectoryRead'))
+            ->getMock();
+        $filesystem->expects($this->any())->method('getDirectoryRead')->will($this->returnValue($modulesDirectory));
+        $storeManager = $this->getMockBuilder('\Magento\Core\Model\StoreManager')->disableOriginalConstructor()
+            ->setMethods(array('getWebsite'))
+            ->getMock();
+        $website = $this->getMockBuilder('\Magento\Core\Model\Website')->disableOriginalConstructor()
+            ->setMethods(array('getBaseCurrencyCode', '__wakeup'))
+            ->getMock();
+        $website->expects($this->any())->method('getBaseCurrencyCode')->will($this->returnValue('USD'));
+        $storeManager->expects($this->any())->method('getWebsite')->will($this->returnValue($website));
+
+        $arguments = array(
+            'coreStoreConfig' => $coreStoreConfig,
+            'xmlElFactory' => $xmlElFactory,
+            'rateFactory' => $rateFactory,
+            'rateMethodFactory' => $rateMethodFactory,
+            'httpClientFactory' => $httpClientFactory,
+            'filesystem' => $filesystem,
+            'storeManager' => $storeManager,
+            'data' => array('id' => 'dhlint', 'store' => '1')
+        );
+        $this->_model = $this->_helper->getObject('Magento\Usa\Model\Shipping\Carrier\Dhl\International', $arguments);
+    }
+
+    /**
+     * Callback function, emulates getConfig function
+     * @param $path
+     * @return null|string
+     */
+    public function coreStoreConfigGetConfig($path)
+    {
+        $pathMap = array(
+            'carriers/dhlint/shipment_days' => 'Mon,Tue,Wed,Thu,Fri,Sat',
+            'carriers/dhlint/intl_shipment_days' => 'Mon,Tue,Wed,Thu,Fri,Sat',
+            'carriers/dhlint/allowed_methods' => 'IE',
+            'carriers/dhlint/international_searvice' => 'IE',
+            'carriers/dhlint/gateway_url' => 'https://xmlpi-ea.dhl.com/XMLShippingServlet',
+            'carriers/dhlint/id' => 'some ID',
+            'carriers/dhlint/password' => 'some password',
+            'carriers/dhlint/content_type' => 'N',
+            'carriers/dhlint/nondoc_methods' => '1,3,4,8,P,Q,E,F,H,J,M,V,Y'
+        );
+        return (isset($pathMap[$path])) ? $pathMap[$path] : null;
     }
 
     public function testPrepareShippingLabelContent()
@@ -92,4 +211,15 @@ class InternationalTest extends \PHPUnit_Framework_TestCase
         $method->setAccessible(true);
         return $method->invoke($model, $xml);
     }
+
+    public function testCollectRates()
+    {
+        $this->_httpResponse->expects($this->any())
+            ->method('getBody')
+            ->will($this->returnValue(file_get_contents(__DIR__ . '/_files/success_dhlintl_response_rates.xml')));
+        // for setRequest
+        $request_params = include __DIR__ . '/_files/rates_request_data_dhlintl.php';
+        $request = $this->_helper->getObject('Magento\Shipping\Model\Rate\Request', $request_params);
+        $this->assertNotEmpty($this->_model->collectRates($request)->getAllRates());
+    }
 }
diff --git a/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/_files/countries.xml b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/_files/countries.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e61bc3236759e2e34e16308d6b685b8093d10526
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/_files/countries.xml
@@ -0,0 +1,1578 @@
+<?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.
+ *
+ * @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)
+ */
+-->
+<countries>
+    <AD>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Andorra</name>
+    </AD>
+    <AE>
+        <currency>AED</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>United Arab Emirates</name>
+    </AE>
+    <AF>
+        <currency>AFN</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Afghanistan</name>
+    </AF>
+    <AG>
+        <currency>XCD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Antigua</name>
+    </AG>
+    <AI>
+        <currency>XCD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Anguilla</name>
+    </AI>
+    <AL>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Albania</name>
+    </AL>
+    <AM>
+        <currency>AMD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Armenia</name>
+    </AM>
+    <AN>
+        <currency>ANG</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Netherlands Antilles</name>
+    </AN>
+    <AO>
+        <currency>AOA</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Angola</name>
+    </AO>
+    <AR>
+        <currency>ARS</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Argentina</name>
+    </AR>
+    <AS>
+        <currency>USD</currency>
+        <weight_unit>LB</weight_unit>
+        <measure_unit>IN</measure_unit>
+        <name>American Samoa</name>
+    </AS>
+    <AT>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Austria</name>
+        <domestic>1</domestic>
+    </AT>
+    <AU>
+        <currency>AUD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Australia</name>
+    </AU>
+    <AW>
+        <currency>AWG</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Aruba</name>
+    </AW>
+    <AZ>
+        <currency>AZM</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Azerbaijan</name>
+    </AZ>
+    <BA>
+        <currency>BAM</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Bosnia and Herzegovina</name>
+    </BA>
+    <BB>
+        <currency>BBD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Barbados</name>
+    </BB>
+    <BD>
+        <currency>BDT</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Bangladesh</name>
+    </BD>
+    <BE>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Belgium</name>
+        <domestic>1</domestic>
+    </BE>
+    <BF>
+        <currency>XOF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Burkina Faso</name>
+    </BF>
+    <BG>
+        <currency>BGN</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Bulgaria</name>
+        <domestic>1</domestic>
+    </BG>
+    <BH>
+        <currency>BHD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Bahrain</name>
+    </BH>
+    <BI>
+        <currency>BIF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Burundi</name>
+    </BI>
+    <BJ>
+        <currency>XOF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Benin</name>
+    </BJ>
+    <BM>
+        <currency>BMD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Bermuda</name>
+    </BM>
+    <BN>
+        <currency>BND</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Brunei</name>
+    </BN>
+    <BO>
+        <currency>BOB</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Bolivia</name>
+    </BO>
+    <BR>
+        <currency>BRL</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Brazil</name>
+    </BR>
+    <BS>
+        <currency>BSD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Bahamas</name>
+    </BS>
+    <BT>
+        <currency>BTN</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Bhutan</name>
+    </BT>
+    <BW>
+        <currency>BWP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Botswana</name>
+    </BW>
+    <BY>
+        <currency>BYR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Belarus</name>
+    </BY>
+    <BZ>
+        <currency>BZD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Belize</name>
+    </BZ>
+    <CA>
+        <currency>CAD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Canada</name>
+    </CA>
+    <CD>
+        <currency>CDF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Congo, The Democratic Republic of</name>
+    </CD>
+    <CF>
+        <currency>XAF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Central African Republic</name>
+    </CF>
+    <CG>
+        <currency>XAF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Congo</name>
+    </CG>
+    <CH>
+        <currency>CHF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Switzerland</name>
+    </CH>
+    <CI>
+        <currency>XOF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Cote d'Ivoire</name>
+    </CI>
+    <CK>
+        <currency>NZD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Cook Islands</name>
+    </CK>
+    <CL>
+        <currency>CLP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Chile</name>
+    </CL>
+    <CM>
+        <currency>XAF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Cameroon</name>
+    </CM>
+    <CN>
+        <currency>CNY</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>China, People's Republic</name>
+    </CN>
+    <CO>
+        <currency>COP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Colombia</name>
+    </CO>
+    <CR>
+        <currency>CRC</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Costa Rica</name>
+    </CR>
+    <CU>
+        <currency>CUP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Cuba</name>
+    </CU>
+    <CV>
+        <currency>CVE</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Cape Verde</name>
+    </CV>
+    <CY>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Cyprus</name>
+        <domestic>1</domestic>
+    </CY>
+    <CZ>
+        <currency>CZK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Czech Republic, The</name>
+        <domestic>1</domestic>
+    </CZ>
+    <DE>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Germany</name>
+        <domestic>1</domestic>
+    </DE>
+    <DJ>
+        <currency>DJF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Djibouti</name>
+    </DJ>
+    <DK>
+        <currency>DKK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Denmark</name>
+        <domestic>1</domestic>
+    </DK>
+    <DM>
+        <currency>XCD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Dominica</name>
+    </DM>
+    <DO>
+        <currency>DOP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Dominican Rep.</name>
+    </DO>
+    <DZ>
+        <currency>DZD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Algeria</name>
+    </DZ>
+    <EC>
+        <currency>USD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Ecuador</name>
+    </EC>
+    <EE>
+        <currency>EEK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Estonia</name>
+        <domestic>1</domestic>
+    </EE>
+    <EG>
+        <currency>EGP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Egypt</name>
+    </EG>
+    <ER>
+        <currency>ERN</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Eritrea</name>
+    </ER>
+    <ES>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Spain</name>
+        <domestic>1</domestic>
+    </ES>
+    <ET>
+        <currency>ETB</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Ethiopia</name>
+    </ET>
+    <FI>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Finland</name>
+        <domestic>1</domestic>
+    </FI>
+    <FJ>
+        <currency>FJD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Fiji</name>
+    </FJ>
+    <FK>
+        <currency>FKP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Falkland Islands</name>
+    </FK>
+    <FM>
+        <currency>USD</currency>
+        <weight_unit>LB</weight_unit>
+        <measure_unit>IN</measure_unit>
+        <name>MICRONESIA, FEDERATED STATES OF</name>
+    </FM>
+    <FO>
+        <currency>DKK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Faroe Islands</name>
+    </FO>
+    <FR>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>France</name>
+        <domestic>1</domestic>
+    </FR>
+    <GA>
+        <currency>XAF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Gabon</name>
+    </GA>
+    <GB>
+        <currency>GBP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>United Kingdom</name>
+        <domestic>1</domestic>
+    </GB>
+    <GD>
+        <currency>XCD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Grenada</name>
+    </GD>
+    <GE>
+        <currency>GEL</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Georgia</name>
+    </GE>
+    <GF>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>French Guyana</name>
+    </GF>
+    <GG>
+        <currency>GBP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Guernsey</name>
+    </GG>
+    <GH>
+        <currency>GHS</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Ghana</name>
+    </GH>
+    <GI>
+        <currency>GIP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Gibraltar</name>
+    </GI>
+    <GL>
+        <currency>DKK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Greenland</name>
+    </GL>
+    <GM>
+        <currency>GMD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Gambia</name>
+    </GM>
+    <GN>
+        <currency>GNF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Guinea Republic</name>
+    </GN>
+    <GP>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Guadeloupe</name>
+    </GP>
+    <GQ>
+        <currency>XAF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Guinea-Equatorial</name>
+    </GQ>
+    <GR>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Greece</name>
+        <domestic>1</domestic>
+    </GR>
+    <GT>
+        <currency>GTQ</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Guatemala</name>
+    </GT>
+    <GU>
+        <currency>USD</currency>
+        <weight_unit>LB</weight_unit>
+        <measure_unit>IN</measure_unit>
+        <region>AM</region>
+        <name>Guam</name>
+    </GU>
+    <GW>
+        <currency>GWP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Guinea-Bissau</name>
+    </GW>
+    <GY>
+        <currency>GYD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Guyana (British)</name>
+    </GY>
+    <HK>
+        <currency>HKD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Hong Kong</name>
+    </HK>
+    <HN>
+        <currency>HNL</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Honduras</name>
+    </HN>
+    <HR>
+        <currency>HRK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Croatia</name>
+    </HR>
+    <HT>
+        <currency>HTG</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Haiti</name>
+    </HT>
+    <HU>
+        <currency>HUF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Hungary</name>
+        <domestic>1</domestic>
+    </HU>
+    <IC>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Canary Islands, The</name>
+    </IC>
+    <ID>
+        <currency>IDR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Indonesia</name>
+    </ID>
+    <IE>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Ireland, Republic Of</name>
+        <domestic>1</domestic>
+    </IE>
+    <IL>
+        <currency>ILS</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Israel</name>
+    </IL>
+    <IN>
+        <currency>INR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>India</name>
+    </IN>
+    <IQ>
+        <currency>IQD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Iraq</name>
+    </IQ>
+    <IR>
+        <currency>IRR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Iran (Islamic Republic of)</name>
+    </IR>
+    <IS>
+        <currency>ISK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Iceland</name>
+    </IS>
+    <IT>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Italy</name>
+        <domestic>1</domestic>
+    </IT>
+    <JE>
+        <currency>GBP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Jersey</name>
+    </JE>
+    <JM>
+        <currency>JMD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Jamaica</name>
+    </JM>
+    <JO>
+        <currency>JOD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Jordan</name>
+    </JO>
+    <JP>
+        <currency>JPY</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Japan</name>
+    </JP>
+    <KE>
+        <currency>KES</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Kenya</name>
+    </KE>
+    <KG>
+        <currency>KGS</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Kyrgyzstan</name>
+    </KG>
+    <KH>
+        <currency>KHR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Cambodia</name>
+    </KH>
+    <KI>
+        <currency>AUD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Kiribati</name>
+    </KI>
+    <KM>
+        <currency>KMF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Comoros</name>
+    </KM>
+    <KN>
+        <currency>XCD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>St. Kitts</name>
+    </KN>
+    <KP>
+        <currency>KPW</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Korea, The D.P.R of</name>
+    </KP>
+    <KR>
+        <currency>KRW</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Korea, Republic Of</name>
+    </KR>
+    <KV>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Kosovo</name>
+    </KV>
+    <KW>
+        <currency>KWD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Kuwait</name>
+    </KW>
+    <KY>
+        <currency>KYD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Cayman Islands</name>
+    </KY>
+    <KZ>
+        <currency>KZT</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Kazakhstan</name>
+    </KZ>
+    <LA>
+        <currency>LAK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Lao People's Democratic Republic</name>
+    </LA>
+    <LB>
+        <currency>USD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Lebanon</name>
+    </LB>
+    <LC>
+        <currency>XCD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>St. Lucia</name>
+    </LC>
+    <LI>
+        <currency>CHF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Liechtenstein</name>
+    </LI>
+    <LK>
+        <currency>LKR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Sri Lanka</name>
+    </LK>
+    <LR>
+        <currency>LRD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Liberia</name>
+    </LR>
+    <LS>
+        <currency>LSL</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Lesotho</name>
+    </LS>
+    <LT>
+        <currency>LTL</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Lithuania</name>
+        <domestic>1</domestic>
+    </LT>
+    <LU>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Luxembourg</name>
+        <domestic>1</domestic>
+    </LU>
+    <LV>
+        <currency>LVL</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Latvia</name>
+        <domestic>1</domestic>
+    </LV>
+    <LY>
+        <currency>LYD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Libya</name>
+    </LY>
+    <MA>
+        <currency>MAD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Morocco</name>
+    </MA>
+    <MC>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Monaco</name>
+    </MC>
+    <MD>
+        <currency>MDL</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Moldova, Republic Of</name>
+    </MD>
+    <ME>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Montenegro, Republic of</name>
+    </ME>
+    <MG>
+        <currency>MGA</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Madagascar</name>
+    </MG>
+    <MH>
+        <currency>USD</currency>
+        <weight_unit>LB</weight_unit>
+        <measure_unit>IN</measure_unit>
+        <name>Marshall Islands</name>
+    </MH>
+    <MK>
+        <currency>MKD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Macedonia, Rep. of (FYROM)</name>
+    </MK>
+    <ML>
+        <currency>XOF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Mali</name>
+    </ML>
+    <MM>
+        <currency>USD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Myanmar</name>
+    </MM>
+    <MN>
+        <currency>MNT</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Mongolia</name>
+    </MN>
+    <MO>
+        <currency>MOP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Macau</name>
+    </MO>
+    <MP>
+        <currency>USD</currency>
+        <weight_unit>LB</weight_unit>
+        <measure_unit>IN</measure_unit>
+        <name>Saipan</name>
+    </MP>
+    <MQ>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Martinique</name>
+    </MQ>
+    <MR>
+        <currency>MRO</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Mauritania</name>
+    </MR>
+    <MS>
+        <currency>XCD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Montserrat</name>
+    </MS>
+    <MT>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Malta</name>
+        <domestic>1</domestic>
+    </MT>
+    <MU>
+        <currency>MUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Mauritius</name>
+    </MU>
+    <MV>
+        <currency>MVR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Maldives</name>
+    </MV>
+    <MW>
+        <currency>MWK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Malawi</name>
+    </MW>
+    <MX>
+        <currency>MXN</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Mexico</name>
+    </MX>
+    <MY>
+        <currency>MYR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Malaysia</name>
+    </MY>
+    <MZ>
+        <currency>MZN</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Mozambique</name>
+    </MZ>
+    <NA>
+        <currency>ZAR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Namibia</name>
+    </NA>
+    <NC>
+        <currency>XPF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>New Caledonia</name>
+    </NC>
+    <NE>
+        <currency>XOF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Niger</name>
+    </NE>
+    <NG>
+        <currency>NGN</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Nigeria</name>
+    </NG>
+    <NI>
+        <currency>NIO</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Nicaragua</name>
+    </NI>
+    <NL>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Netherlands, The</name>
+        <domestic>1</domestic>
+    </NL>
+    <NO>
+        <currency>NOK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Norway</name>
+    </NO>
+    <NP>
+        <currency>NPR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Nepal</name>
+    </NP>
+    <NR>
+        <currency>AUD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Nauru, Republic Of</name>
+    </NR>
+    <NU>
+        <currency>NZD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Niue</name>
+    </NU>
+    <NZ>
+        <currency>NZD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>New Zealand</name>
+    </NZ>
+    <OM>
+        <currency>OMR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Oman</name>
+    </OM>
+    <PA>
+        <currency>PAB</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Panama</name>
+    </PA>
+    <PE>
+        <currency>PEN</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Peru</name>
+    </PE>
+    <PF>
+        <currency>XPF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Tahiti</name>
+    </PF>
+    <PG>
+        <currency>PGK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Papua New Guinea</name>
+    </PG>
+    <PH>
+        <currency>PHP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Philippines, The</name>
+    </PH>
+    <PK>
+        <currency>PKR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Pakistan</name>
+    </PK>
+    <PL>
+        <currency>PLN</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Poland</name>
+        <domestic>1</domestic>
+    </PL>
+    <PR>
+        <currency>USD</currency>
+        <weight_unit>LB</weight_unit>
+        <measure_unit>IN</measure_unit>
+        <region>AM</region>
+        <name>Puerto Rico</name>
+    </PR>
+    <PT>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Portugal</name>
+        <domestic>1</domestic>
+    </PT>
+    <PW>
+        <currency>USD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Palau</name>
+    </PW>
+    <PY>
+        <currency>PYG</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Paraguay</name>
+    </PY>
+    <QA>
+        <currency>QAR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Qatar</name>
+    </QA>
+    <RE>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Reunion, Island Of</name>
+    </RE>
+    <RO>
+        <currency>RON</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Romania</name>
+        <domestic>1</domestic>
+    </RO>
+    <RS>
+        <currency>RSD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Serbia, Republic of</name>
+    </RS>
+    <RU>
+        <currency>RUB</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Russian Federation, The</name>
+    </RU>
+    <RW>
+        <currency>RWF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Rwanda</name>
+    </RW>
+    <SA>
+        <currency>SAR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Saudi Arabia</name>
+    </SA>
+    <SB>
+        <currency>SBD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Solomon Islands</name>
+    </SB>
+    <SC>
+        <currency>SCR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Seychelles</name>
+    </SC>
+    <SD>
+        <currency>SDG</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Sudan</name>
+    </SD>
+    <SE>
+        <currency>SEK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Sweden</name>
+        <domestic>1</domestic>
+    </SE>
+    <SG>
+        <currency>SGD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Singapore</name>
+    </SG>
+    <SI>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Slovenia</name>
+        <domestic>1</domestic>
+    </SI>
+    <SK>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>EA</region>
+        <name>Slovakia</name>
+        <domestic>1</domestic>
+    </SK>
+    <SL>
+        <currency>SLL</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Sierra Leone</name>
+    </SL>
+    <SM>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>San Marino</name>
+    </SM>
+    <SN>
+        <currency>XOF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Senegal</name>
+    </SN>
+    <SO>
+        <currency>SOS</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Somalia</name>
+    </SO>
+    <SR>
+        <currency>SRD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Suriname</name>
+    </SR>
+    <ST>
+        <currency>STD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Sao Tome and Principe</name>
+    </ST>
+    <SV>
+        <currency>USD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>El Salvador</name>
+    </SV>
+    <SY>
+        <currency>SYP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Syria</name>
+    </SY>
+    <SZ>
+        <currency>SZL</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Swaziland</name>
+    </SZ>
+    <TC>
+        <currency>USD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Turks and Caicos Islands</name>
+    </TC>
+    <TD>
+        <currency>XAF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Chad</name>
+    </TD>
+    <TG>
+        <currency>XOF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Togo</name>
+    </TG>
+    <TH>
+        <currency>THB</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Thailand</name>
+    </TH>
+    <TJ>
+        <currency>TJS</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Tajikistan</name>
+    </TJ>
+    <TL>
+        <currency>USD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>East Timor</name>
+    </TL>
+    <TN>
+        <currency>TND</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Tunisia</name>
+    </TN>
+    <TO>
+        <currency>TOP</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Tonga</name>
+    </TO>
+    <TR>
+        <currency>TRY</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Turkey</name>
+    </TR>
+    <TT>
+        <currency>TTD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Trinidad and Tobago</name>
+    </TT>
+    <TV>
+        <currency>AUD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Tuvalu</name>
+    </TV>
+    <TW>
+        <currency>TWD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Taiwan</name>
+    </TW>
+    <TZ>
+        <currency>TZS</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Tanzania</name>
+    </TZ>
+    <UA>
+        <currency>UAH</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Ukraine</name>
+    </UA>
+    <UG>
+        <currency>UGX</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Uganda</name>
+    </UG>
+    <US>
+        <currency>USD</currency>
+        <weight_unit>LB</weight_unit>
+        <measure_unit>IN</measure_unit>
+        <region>AM</region>
+        <name>United States Of America</name>
+    </US>
+    <UY>
+        <currency>UYU</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Uruguay</name>
+    </UY>
+    <UZ>
+        <currency>UZS</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Uzbekistan</name>
+    </UZ>
+    <VC>
+        <currency>XCD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>St. Vincent</name>
+    </VC>
+    <VE>
+        <currency>VEF</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Venezuela</name>
+    </VE>
+    <VG>
+        <currency>USD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Virgin Islands (British)</name>
+    </VG>
+    <VI>
+        <currency>USD</currency>
+        <weight_unit>LB</weight_unit>
+        <measure_unit>IN</measure_unit>
+        <name>Virgin Islands (US)</name>
+    </VI>
+    <VN>
+        <currency>VND</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Vietnam</name>
+    </VN>
+    <VU>
+        <currency>VUV</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Vanuatu</name>
+    </VU>
+    <WS>
+        <currency>WST</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Samoa</name>
+    </WS>
+    <XB>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Bonaire</name>
+    </XB>
+    <XC>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Curacao</name>
+    </XC>
+    <XE>
+        <currency>ANG</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>St. Eustatius</name>
+    </XE>
+    <XM>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>St. Maarten</name>
+    </XM>
+    <XN>
+        <currency>XCD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>Nevis</name>
+    </XN>
+    <XS>
+        <currency>SIS</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Somaliland, Rep of (North Somalia)</name>
+    </XS>
+    <XY>
+        <currency>ANG</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AM</region>
+        <name>St. Barthelemy</name>
+    </XY>
+    <YE>
+        <currency>YER</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>Yemen, Republic of</name>
+    </YE>
+    <YT>
+        <currency>EUR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Mayotte</name>
+    </YT>
+    <ZA>
+        <currency>ZAR</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <region>AP</region>
+        <name>South Africa</name>
+    </ZA>
+    <ZM>
+        <currency>ZMK</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Zambia</name>
+    </ZM>
+    <ZW>
+        <currency>ZWD</currency>
+        <weight_unit>KG</weight_unit>
+        <measure_unit>CM</measure_unit>
+        <name>Zimbabwe</name>
+    </ZW>
+</countries>
\ No newline at end of file
diff --git a/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/_files/rates_request_data_dhlintl.php b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/_files/rates_request_data_dhlintl.php
new file mode 100644
index 0000000000000000000000000000000000000000..2c1c4ffb32d15c3e22e0d126b875544db28e3305
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/_files/rates_request_data_dhlintl.php
@@ -0,0 +1,67 @@
+<?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)
+ */
+return array(
+    'data' => array(
+        'dest_country_id' => 'DE',
+        'dest_region_id' => '82',
+        'dest_region_code' => 'BER',
+        'dest_street' => 'Turmstraße 17',
+        'dest_city' => 'Berlin',
+        'dest_postcode' => '10559',
+        'dest_postal' => '10559',
+        'package_value' => '5',
+        'package_value_with_discount' => '5',
+        'package_weight' => '5',
+        'package_qty' => '1',
+        'package_physical_value' => '5',
+        'free_method_weight' => '5',
+        'store_id' => '1',
+        'website_id' => '1',
+        'free_shipping' => '0',
+        'limit_carrier' => null,
+        'base_subtotal_incl_tax' => '5',
+        'orig_country_id' => 'US',
+        'country_id' => 'US',
+        'region_id' => '12',
+        'city'=> 'Fremont',
+        'postcode' => '94538',
+        'dhl_id' => 'MAGEN_8501',
+        'dhl_password' => 'QR2GO1U74X',
+        'dhl_account' => '799909537',
+        'dhl_shipping_intl_key' => '54233F2B2C4E5C4B4C5E5A59565530554B405641475D5659',
+        'girth' => null,
+        'height' => null,
+        'length' => null,
+        'width' => null,
+        'weight' => 1,
+        'dhl_shipment_type' => 'P',
+        'dhl_duitable' => 0,
+        'dhl_duty_payment_type' => 'R',
+        'dhl_content_desc' => 'Big Box',
+        'limit_method' => 'IE',
+        'ship_date' => '2014-01-09',
+        'action' => 'RateEstimate',
+        'all_items' => array()
+    )
+);
\ No newline at end of file
diff --git a/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/_files/success_dhlintl_response_rates.xml b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/_files/success_dhlintl_response_rates.xml
new file mode 100644
index 0000000000000000000000000000000000000000..67923cf583e1cad292bf9a99fe922b6bd2ca299c
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/Dhl/_files/success_dhlintl_response_rates.xml
@@ -0,0 +1,496 @@
+<?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.
+ *
+ * @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)
+ */
+-->
+
+<res:DCTResponse xmlns:res="http://www.dhl.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                 xsi:schemaLocation="http://www.dhl.com DCT-Response.xsd">
+    <GetQuoteResponse>
+        <Response>
+            <ServiceHeader>
+                <MessageTime>2014-01-09T12:13:29.498+00:00</MessageTime>
+                <SiteID>EvgeniyUSA</SiteID>
+            </ServiceHeader>
+        </Response>
+        <BkgDetails>
+            <OriginServiceArea>
+                <FacilityCode>NUQ</FacilityCode>
+                <ServiceAreaCode>NUQ</ServiceAreaCode>
+            </OriginServiceArea>
+            <DestinationServiceArea>
+                <FacilityCode>BER</FacilityCode>
+                <ServiceAreaCode>BER</ServiceAreaCode>
+            </DestinationServiceArea>
+            <QtdShp>
+                <GlobalProductCode>E</GlobalProductCode>
+                <LocalProductCode>E</LocalProductCode>
+                <ProductShortName>EXPRESS 9:00</ProductShortName>
+                <LocalProductName>EXPRESS 9:00 NONDOC</LocalProductName>
+                <NetworkTypeCode>TD</NetworkTypeCode>
+                <POfferedCustAgreement>N</POfferedCustAgreement>
+                <TransInd>Y</TransInd>
+                <PickupDate>2014-01-09</PickupDate>
+                <PickupCutoffTime>PT16H15M</PickupCutoffTime>
+                <BookingTime>PT15H15M</BookingTime>
+                <CurrencyCode>USD</CurrencyCode>
+                <ExchangeRate>1.000000</ExchangeRate>
+                <WeightCharge>42.060</WeightCharge>
+                <WeightChargeTax>0.000</WeightChargeTax>
+                <TotalTransitDays>2</TotalTransitDays>
+                <PickupPostalLocAddDays>0</PickupPostalLocAddDays>
+                <DeliveryPostalLocAddDays>0</DeliveryPostalLocAddDays>
+                <PickupNonDHLCourierCode />
+                <DeliveryNonDHLCourierCode />
+                <DeliveryDate>2014-01-13</DeliveryDate>
+                <DeliveryTime>PT9H</DeliveryTime>
+                <DimensionalWeight>2.205</DimensionalWeight>
+                <WeightUnit>LB</WeightUnit>
+                <PickupDayOfWeekNum>4</PickupDayOfWeekNum>
+                <DestinationDayOfWeekNum>1</DestinationDayOfWeekNum>
+                <QtdShpExChrg>
+                    <SpecialServiceType>FF</SpecialServiceType>
+                    <LocalServiceType>FF</LocalServiceType>
+                    <GlobalServiceName>FUEL SURCHARGE</GlobalServiceName>
+                    <LocalServiceTypeName>FUEL SURCHARGE</LocalServiceTypeName>
+                    <ChargeCodeType>SCH</ChargeCodeType>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <ChargeValue>3.790</ChargeValue>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>3.790</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>BILLC</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>3.790</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>PULCL</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>3.790</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>BASEC</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                </QtdShpExChrg>
+                <PricingDate>2014-01-09</PricingDate>
+                <ShippingCharge>45.850</ShippingCharge>
+                <TotalTaxAmount>0.000</TotalTaxAmount>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>BILLC</CurrencyRoleTypeCode>
+                    <WeightCharge>42.060</WeightCharge>
+                    <TotalAmount>45.850</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>PULCL</CurrencyRoleTypeCode>
+                    <WeightCharge>42.060</WeightCharge>
+                    <TotalAmount>45.850</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>BASEC</CurrencyRoleTypeCode>
+                    <WeightCharge>42.060</WeightCharge>
+                    <TotalAmount>45.850</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+            </QtdShp>
+            <QtdShp>
+                <GlobalProductCode>Q</GlobalProductCode>
+                <LocalProductCode>Q</LocalProductCode>
+                <ProductShortName>MEDICAL EXPRESS</ProductShortName>
+                <LocalProductName>MEDICAL EXPRESS</LocalProductName>
+                <NetworkTypeCode>TD</NetworkTypeCode>
+                <POfferedCustAgreement>Y</POfferedCustAgreement>
+                <TransInd>N</TransInd>
+                <PickupDate>2014-01-09</PickupDate>
+                <PickupCutoffTime>PT16H15M</PickupCutoffTime>
+                <BookingTime>PT15H15M</BookingTime>
+                <CurrencyCode>USD</CurrencyCode>
+                <ExchangeRate>1.000000</ExchangeRate>
+                <WeightCharge>32.350</WeightCharge>
+                <WeightChargeTax>0.000</WeightChargeTax>
+                <TotalTransitDays>2</TotalTransitDays>
+                <PickupPostalLocAddDays>0</PickupPostalLocAddDays>
+                <DeliveryPostalLocAddDays>0</DeliveryPostalLocAddDays>
+                <PickupNonDHLCourierCode />
+                <DeliveryNonDHLCourierCode />
+                <DeliveryDate>2014-01-13</DeliveryDate>
+                <DeliveryTime>PT9H</DeliveryTime>
+                <DimensionalWeight>2.205</DimensionalWeight>
+                <WeightUnit>LB</WeightUnit>
+                <PickupDayOfWeekNum>4</PickupDayOfWeekNum>
+                <DestinationDayOfWeekNum>1</DestinationDayOfWeekNum>
+                <QtdShpExChrg>
+                    <SpecialServiceType>FF</SpecialServiceType>
+                    <LocalServiceType>FF</LocalServiceType>
+                    <GlobalServiceName>FUEL SURCHARGE</GlobalServiceName>
+                    <LocalServiceTypeName>FUEL SURCHARGE</LocalServiceTypeName>
+                    <ChargeCodeType>SCH</ChargeCodeType>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <ChargeValue>2.910</ChargeValue>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>2.910</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>BILLC</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>2.910</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>PULCL</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>2.910</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>BASEC</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                </QtdShpExChrg>
+                <PricingDate>2014-01-09</PricingDate>
+                <ShippingCharge>35.260</ShippingCharge>
+                <TotalTaxAmount>0.000</TotalTaxAmount>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>BILLC</CurrencyRoleTypeCode>
+                    <WeightCharge>32.350</WeightCharge>
+                    <TotalAmount>35.260</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>PULCL</CurrencyRoleTypeCode>
+                    <WeightCharge>32.350</WeightCharge>
+                    <TotalAmount>35.260</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>BASEC</CurrencyRoleTypeCode>
+                    <WeightCharge>32.350</WeightCharge>
+                    <TotalAmount>35.260</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+            </QtdShp>
+            <QtdShp>
+                <GlobalProductCode>Y</GlobalProductCode>
+                <LocalProductCode>Y</LocalProductCode>
+                <ProductShortName>EXPRESS 12:00</ProductShortName>
+                <LocalProductName>EXPRESS 12:00 NONDOC</LocalProductName>
+                <NetworkTypeCode>TD</NetworkTypeCode>
+                <POfferedCustAgreement>N</POfferedCustAgreement>
+                <TransInd>Y</TransInd>
+                <PickupDate>2014-01-09</PickupDate>
+                <PickupCutoffTime>PT16H15M</PickupCutoffTime>
+                <BookingTime>PT15H15M</BookingTime>
+                <CurrencyCode>USD</CurrencyCode>
+                <ExchangeRate>1.000000</ExchangeRate>
+                <WeightCharge>34.290</WeightCharge>
+                <WeightChargeTax>0.000</WeightChargeTax>
+                <TotalTransitDays>2</TotalTransitDays>
+                <PickupPostalLocAddDays>0</PickupPostalLocAddDays>
+                <DeliveryPostalLocAddDays>0</DeliveryPostalLocAddDays>
+                <PickupNonDHLCourierCode />
+                <DeliveryNonDHLCourierCode />
+                <DeliveryDate>2014-01-13</DeliveryDate>
+                <DeliveryTime>PT12H</DeliveryTime>
+                <DimensionalWeight>2.205</DimensionalWeight>
+                <WeightUnit>LB</WeightUnit>
+                <PickupDayOfWeekNum>4</PickupDayOfWeekNum>
+                <DestinationDayOfWeekNum>1</DestinationDayOfWeekNum>
+                <QtdShpExChrg>
+                    <SpecialServiceType>FF</SpecialServiceType>
+                    <LocalServiceType>FF</LocalServiceType>
+                    <GlobalServiceName>FUEL SURCHARGE</GlobalServiceName>
+                    <LocalServiceTypeName>FUEL SURCHARGE</LocalServiceTypeName>
+                    <ChargeCodeType>SCH</ChargeCodeType>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <ChargeValue>3.090</ChargeValue>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>3.090</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>BILLC</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>3.090</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>PULCL</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>3.090</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>BASEC</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                </QtdShpExChrg>
+                <PricingDate>2014-01-09</PricingDate>
+                <ShippingCharge>37.380</ShippingCharge>
+                <TotalTaxAmount>0.000</TotalTaxAmount>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>BILLC</CurrencyRoleTypeCode>
+                    <WeightCharge>34.290</WeightCharge>
+                    <TotalAmount>37.380</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>PULCL</CurrencyRoleTypeCode>
+                    <WeightCharge>34.290</WeightCharge>
+                    <TotalAmount>37.380</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>BASEC</CurrencyRoleTypeCode>
+                    <WeightCharge>34.290</WeightCharge>
+                    <TotalAmount>37.380</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+            </QtdShp>
+            <QtdShp>
+                <GlobalProductCode>3</GlobalProductCode>
+                <LocalProductCode>3</LocalProductCode>
+                <ProductShortName>B2C</ProductShortName>
+                <LocalProductName>EXPRESS WORLDWIDE (B2C)</LocalProductName>
+                <NetworkTypeCode>TD</NetworkTypeCode>
+                <POfferedCustAgreement>Y</POfferedCustAgreement>
+                <TransInd>N</TransInd>
+                <PickupDate>2014-01-09</PickupDate>
+                <PickupCutoffTime>PT16H15M</PickupCutoffTime>
+                <BookingTime>PT15H15M</BookingTime>
+                <ExchangeRate>1.000000</ExchangeRate>
+                <WeightCharge>0</WeightCharge>
+                <WeightChargeTax>0.000</WeightChargeTax>
+                <TotalTransitDays>2</TotalTransitDays>
+                <PickupPostalLocAddDays>0</PickupPostalLocAddDays>
+                <DeliveryPostalLocAddDays>0</DeliveryPostalLocAddDays>
+                <PickupNonDHLCourierCode />
+                <DeliveryNonDHLCourierCode />
+                <DeliveryDate>2014-01-13</DeliveryDate>
+                <DeliveryTime>PT23H59M</DeliveryTime>
+                <DimensionalWeight>2.205</DimensionalWeight>
+                <WeightUnit>LB</WeightUnit>
+                <PickupDayOfWeekNum>4</PickupDayOfWeekNum>
+                <DestinationDayOfWeekNum>1</DestinationDayOfWeekNum>
+                <PricingDate>2014-01-09</PricingDate>
+                <ShippingCharge>0.000</ShippingCharge>
+                <TotalTaxAmount>0.000</TotalTaxAmount>
+                <QtdSInAdCur>
+                    <CurrencyRoleTypeCode>BILLC</CurrencyRoleTypeCode>
+                    <WeightCharge>0</WeightCharge>
+                    <TotalAmount>0.000</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>PULCL</CurrencyRoleTypeCode>
+                    <WeightCharge>0</WeightCharge>
+                    <TotalAmount>0.000</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>BASEC</CurrencyRoleTypeCode>
+                    <WeightCharge>0</WeightCharge>
+                    <TotalAmount>0.000</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+            </QtdShp>
+            <QtdShp>
+                <GlobalProductCode>P</GlobalProductCode>
+                <LocalProductCode>P</LocalProductCode>
+                <ProductShortName>EXPRESS WORLDWIDE</ProductShortName>
+                <LocalProductName>EXPRESS WORLDWIDE NONDOC</LocalProductName>
+                <NetworkTypeCode>TD</NetworkTypeCode>
+                <POfferedCustAgreement>N</POfferedCustAgreement>
+                <TransInd>Y</TransInd>
+                <PickupDate>2014-01-09</PickupDate>
+                <PickupCutoffTime>PT16H15M</PickupCutoffTime>
+                <BookingTime>PT15H15M</BookingTime>
+                <CurrencyCode>USD</CurrencyCode>
+                <ExchangeRate>1.000000</ExchangeRate>
+                <WeightCharge>32.350</WeightCharge>
+                <WeightChargeTax>0.000</WeightChargeTax>
+                <TotalTransitDays>2</TotalTransitDays>
+                <PickupPostalLocAddDays>0</PickupPostalLocAddDays>
+                <DeliveryPostalLocAddDays>0</DeliveryPostalLocAddDays>
+                <PickupNonDHLCourierCode />
+                <DeliveryNonDHLCourierCode />
+                <DeliveryDate>2014-01-13</DeliveryDate>
+                <DeliveryTime>PT23H59M</DeliveryTime>
+                <DimensionalWeight>2.205</DimensionalWeight>
+                <WeightUnit>LB</WeightUnit>
+                <PickupDayOfWeekNum>4</PickupDayOfWeekNum>
+                <DestinationDayOfWeekNum>1</DestinationDayOfWeekNum>
+                <QtdShpExChrg>
+                    <SpecialServiceType>FF</SpecialServiceType>
+                    <LocalServiceType>FF</LocalServiceType>
+                    <GlobalServiceName>FUEL SURCHARGE</GlobalServiceName>
+                    <LocalServiceTypeName>FUEL SURCHARGE</LocalServiceTypeName>
+                    <ChargeCodeType>SCH</ChargeCodeType>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <ChargeValue>2.910</ChargeValue>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>2.910</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>BILLC</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>2.910</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>PULCL</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                    <QtdSExtrChrgInAdCur>
+                        <ChargeValue>2.910</ChargeValue>
+                        <CurrencyCode>USD</CurrencyCode>
+                        <CurrencyRoleTypeCode>BASEC</CurrencyRoleTypeCode>
+                    </QtdSExtrChrgInAdCur>
+                </QtdShpExChrg>
+                <PricingDate>2014-01-09</PricingDate>
+                <ShippingCharge>35.260</ShippingCharge>
+                <TotalTaxAmount>0.000</TotalTaxAmount>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>BILLC</CurrencyRoleTypeCode>
+                    <WeightCharge>32.350</WeightCharge>
+                    <TotalAmount>35.260</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>PULCL</CurrencyRoleTypeCode>
+                    <WeightCharge>32.350</WeightCharge>
+                    <TotalAmount>35.260</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+                <QtdSInAdCur>
+                    <CurrencyCode>USD</CurrencyCode>
+                    <CurrencyRoleTypeCode>BASEC</CurrencyRoleTypeCode>
+                    <WeightCharge>32.350</WeightCharge>
+                    <TotalAmount>35.260</TotalAmount>
+                    <TotalTaxAmount>0.000</TotalTaxAmount>
+                    <WeightChargeTax>0.000</WeightChargeTax>
+                </QtdSInAdCur>
+            </QtdShp>
+        </BkgDetails>
+        <Srvs>
+            <Srv>
+                <GlobalProductCode>E</GlobalProductCode>
+                <MrkSrv>
+                    <LocalProductCode>E</LocalProductCode>
+                    <ProductShortName>EXPRESS 9:00</ProductShortName>
+                    <LocalProductName>EXPRESS 9:00 NONDOC</LocalProductName>
+                    <NetworkTypeCode>TD</NetworkTypeCode>
+                    <POfferedCustAgreement>N</POfferedCustAgreement>
+                    <TransInd>Y</TransInd>
+                </MrkSrv>
+                <MrkSrv>
+                    <LocalServiceType>FF</LocalServiceType>
+                    <GlobalServiceName>FUEL SURCHARGE</GlobalServiceName>
+                    <LocalServiceTypeName>FUEL SURCHARGE</LocalServiceTypeName>
+                    <ChargeCodeType>SCH</ChargeCodeType>
+                    <MrkSrvInd>N</MrkSrvInd>
+                </MrkSrv>
+            </Srv>
+            <Srv>
+                <GlobalProductCode>Q</GlobalProductCode>
+                <MrkSrv>
+                    <LocalProductCode>Q</LocalProductCode>
+                    <ProductShortName>MEDICAL EXPRESS</ProductShortName>
+                    <LocalProductName>MEDICAL EXPRESS</LocalProductName>
+                    <NetworkTypeCode>TD</NetworkTypeCode>
+                    <POfferedCustAgreement>Y</POfferedCustAgreement>
+                    <TransInd>N</TransInd>
+                </MrkSrv>
+                <MrkSrv>
+                    <LocalServiceType>FF</LocalServiceType>
+                    <GlobalServiceName>FUEL SURCHARGE</GlobalServiceName>
+                    <LocalServiceTypeName>FUEL SURCHARGE</LocalServiceTypeName>
+                    <ChargeCodeType>SCH</ChargeCodeType>
+                    <MrkSrvInd>N</MrkSrvInd>
+                </MrkSrv>
+            </Srv>
+            <Srv>
+                <GlobalProductCode>Y</GlobalProductCode>
+                <MrkSrv>
+                    <LocalProductCode>Y</LocalProductCode>
+                    <ProductShortName>EXPRESS 12:00</ProductShortName>
+                    <LocalProductName>EXPRESS 12:00 NONDOC</LocalProductName>
+                    <NetworkTypeCode>TD</NetworkTypeCode>
+                    <POfferedCustAgreement>N</POfferedCustAgreement>
+                    <TransInd>Y</TransInd>
+                </MrkSrv>
+                <MrkSrv>
+                    <LocalServiceType>FF</LocalServiceType>
+                    <GlobalServiceName>FUEL SURCHARGE</GlobalServiceName>
+                    <LocalServiceTypeName>FUEL SURCHARGE</LocalServiceTypeName>
+                    <ChargeCodeType>SCH</ChargeCodeType>
+                    <MrkSrvInd>N</MrkSrvInd>
+                </MrkSrv>
+            </Srv>
+            <Srv>
+                <GlobalProductCode>3</GlobalProductCode>
+                <MrkSrv>
+                    <LocalProductCode>3</LocalProductCode>
+                    <ProductShortName>B2C</ProductShortName>
+                    <LocalProductName>EXPRESS WORLDWIDE (B2C)</LocalProductName>
+                    <NetworkTypeCode>TD</NetworkTypeCode>
+                    <POfferedCustAgreement>Y</POfferedCustAgreement>
+                    <TransInd>N</TransInd>
+                </MrkSrv>
+            </Srv>
+            <Srv>
+                <GlobalProductCode>P</GlobalProductCode>
+                <MrkSrv>
+                    <LocalProductCode>P</LocalProductCode>
+                    <ProductShortName>EXPRESS WORLDWIDE</ProductShortName>
+                    <LocalProductName>EXPRESS WORLDWIDE NONDOC</LocalProductName>
+                    <NetworkTypeCode>TD</NetworkTypeCode>
+                    <POfferedCustAgreement>N</POfferedCustAgreement>
+                    <TransInd>Y</TransInd>
+                </MrkSrv>
+                <MrkSrv>
+                    <LocalServiceType>FF</LocalServiceType>
+                    <GlobalServiceName>FUEL SURCHARGE</GlobalServiceName>
+                    <LocalServiceTypeName>FUEL SURCHARGE</LocalServiceTypeName>
+                    <ChargeCodeType>SCH</ChargeCodeType>
+                    <MrkSrvInd>N</MrkSrvInd>
+                </MrkSrv>
+            </Srv>
+        </Srvs>
+    </GetQuoteResponse>
+</res:DCTResponse>
\ No newline at end of file
diff --git a/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/DhlTest.php b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/DhlTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..e2dd6bd9ee94137924fe296c15cb0878cd0aea50
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/DhlTest.php
@@ -0,0 +1,179 @@
+<?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_Usa
+ * @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\Usa\Model\Shipping\Carrier;
+
+
+class DhlTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\TestFramework\Helper\ObjectManager
+     */
+    protected $_helper;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $_httpResponse;
+
+    /**
+     * @var \Magento\Usa\Model\Shipping\Carrier\Dhl
+     */
+    protected $_model;
+
+    public function setUp()
+    {
+        $this->_helper = new \Magento\TestFramework\Helper\ObjectManager($this);
+
+        $coreStoreConfig = $this->getMockBuilder('\Magento\Core\Model\Store\Config')
+            ->setMethods(array('getConfigFlag', 'getConfig'))
+            ->disableOriginalConstructor()
+            ->getMock();
+        $coreStoreConfig->expects($this->any())
+            ->method('getConfigFlag')
+            ->will($this->returnValue(true));
+        $coreStoreConfig->expects($this->any())
+            ->method('getConfig')
+            ->will($this->returnCallback(array($this, 'coreStoreConfigGetConfig')));
+
+        // xml element factory
+        $xmlElFactory = $this->getMockBuilder('\Magento\Usa\Model\Simplexml\ElementFactory')
+            ->disableOriginalConstructor()
+            ->setMethods(array('create'))
+            ->getMock();
+        $xmlElFactory->expects($this->any())
+            ->method('create')
+            ->will(
+                $this->returnCallback(
+                    function ($data) {
+                        $oM = new \Magento\TestFramework\Helper\ObjectManager($this);
+                        return  $oM->getObject('\Magento\Usa\Model\Simplexml\Element', array('data' => $data['data']));
+                    }
+                )
+            );
+
+        // rate factory
+        $rateFactory = $this->getMockBuilder('\Magento\Shipping\Model\Rate\ResultFactory')
+            ->disableOriginalConstructor()
+            ->setMethods(array('create'))
+            ->getMock();
+        $rateResult = $this->getMockBuilder('\Magento\Shipping\Model\Rate\Result')
+            ->disableOriginalConstructor()
+            ->setMethods(null)
+            ->getMock();
+        $rateFactory->expects($this->any())
+            ->method('create')
+            ->will($this->returnValue($rateResult));
+
+        // rate method factory
+        $rateMethodFactory = $this->getMockBuilder('\Magento\Shipping\Model\Rate\Result\MethodFactory')
+            ->disableOriginalConstructor()
+            ->setMethods(array('create'))
+            ->getMock();
+        $rateMethod = $this->getMockBuilder('Magento\Shipping\Model\Rate\Result\Method')
+            ->disableOriginalConstructor()
+            ->setMethods(array('setPrice'))
+            ->getMock();
+        $rateMethod->expects($this->any())
+            ->method('setPrice')
+            ->will($this->returnSelf());
+
+        $rateMethodFactory->expects($this->any())
+            ->method('create')
+            ->will($this->returnValue($rateMethod));
+
+        // http client
+        $this->_httpResponse = $this->getMockBuilder('\Zend_Http_Response')
+            ->disableOriginalConstructor()
+            ->setMethods(array('getBody'))
+            ->getMock();
+
+        $httpClient = $this->getMockBuilder('\Zend_Http_Client')
+            ->disableOriginalConstructor()
+            ->setMethods(array('request'))
+            ->getMock();
+        $httpClient->expects($this->any())
+            ->method('request')
+            ->will($this->returnValue($this->_httpResponse));
+
+        $httpClientFactory = $this->getMockBuilder('\Zend_Http_ClientFactory')
+            ->disableOriginalConstructor()
+            ->setMethods(array('create'))
+            ->getMock();
+        $httpClientFactory->expects($this->any())
+            ->method('create')
+            ->will($this->returnValue($httpClient));
+
+        $data = array(
+            'id' => 'dhl',
+            'store' => '1'
+        );
+
+        $arguments = array(
+            'coreStoreConfig' => $coreStoreConfig,
+            'xmlElFactory' => $xmlElFactory,
+            'rateFactory' => $rateFactory,
+            'rateMethodFactory' => $rateMethodFactory,
+            'httpClientFactory' => $httpClientFactory,
+            'data' => $data
+        );
+
+        $this->_model = $this->_helper->getObject('Magento\Usa\Model\Shipping\Carrier\Dhl', $arguments);
+    }
+
+    /**
+     * Callback function, emulates getConfig function
+     * @param $path
+     * @return null|string
+     */
+    public function coreStoreConfigGetConfig($path)
+    {
+        switch ($path) {
+            case 'carriers/dhl/shipment_days':
+            case 'carriers/dhl/intl_shipment_days':
+                return 'Mon,Tue,Wed,Thu,Fri,Sat';
+            case 'carriers/dhl/allowed_methods':
+                return 'IE';
+            case 'carriers/dhl/international_searvice':
+                return 'IE';
+            default:
+                return null;
+        }
+    }
+
+    public function testCollectRates()
+    {
+        $this->_httpResponse->expects($this->any())
+            ->method('getBody')
+            ->will($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\Shipping\Model\Rate\Request', $request_params);
+
+        $this->assertNotEmpty($this->_model->collectRates($request)->getAllRates());
+    }
+}
diff --git a/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/_files/rates_request_data_dhl.php b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/_files/rates_request_data_dhl.php
new file mode 100644
index 0000000000000000000000000000000000000000..2c1c4ffb32d15c3e22e0d126b875544db28e3305
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/_files/rates_request_data_dhl.php
@@ -0,0 +1,67 @@
+<?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)
+ */
+return array(
+    'data' => array(
+        'dest_country_id' => 'DE',
+        'dest_region_id' => '82',
+        'dest_region_code' => 'BER',
+        'dest_street' => 'Turmstraße 17',
+        'dest_city' => 'Berlin',
+        'dest_postcode' => '10559',
+        'dest_postal' => '10559',
+        'package_value' => '5',
+        'package_value_with_discount' => '5',
+        'package_weight' => '5',
+        'package_qty' => '1',
+        'package_physical_value' => '5',
+        'free_method_weight' => '5',
+        'store_id' => '1',
+        'website_id' => '1',
+        'free_shipping' => '0',
+        'limit_carrier' => null,
+        'base_subtotal_incl_tax' => '5',
+        'orig_country_id' => 'US',
+        'country_id' => 'US',
+        'region_id' => '12',
+        'city'=> 'Fremont',
+        'postcode' => '94538',
+        'dhl_id' => 'MAGEN_8501',
+        'dhl_password' => 'QR2GO1U74X',
+        'dhl_account' => '799909537',
+        'dhl_shipping_intl_key' => '54233F2B2C4E5C4B4C5E5A59565530554B405641475D5659',
+        'girth' => null,
+        'height' => null,
+        'length' => null,
+        'width' => null,
+        'weight' => 1,
+        'dhl_shipment_type' => 'P',
+        'dhl_duitable' => 0,
+        'dhl_duty_payment_type' => 'R',
+        'dhl_content_desc' => 'Big Box',
+        'limit_method' => 'IE',
+        'ship_date' => '2014-01-09',
+        'action' => 'RateEstimate',
+        'all_items' => array()
+    )
+);
\ No newline at end of file
diff --git a/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/_files/success_dhl_response_rates.xml b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/_files/success_dhl_response_rates.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4cdd62bcfe156b8470bfa037f8cc404b1b571069
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/Usa/Model/Shipping/Carrier/_files/success_dhl_response_rates.xml
@@ -0,0 +1,71 @@
+<?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.
+ *
+ * @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)
+ */
+-->
+
+<eCommerce action="Response" version="1.1" timestamp="2014/01/06T06:39:49" transmission_reference="A357C91E">
+    <Requestor>
+        <ID>MAGEN_8501</ID>
+        <Password><![CDATA[********]]></Password>
+    </Requestor>
+    <IntlShipment action="RateEstimate" version="1.0" test="True">
+        <Result>
+            <Code>203</Code>
+            <Desc>Shipment estimate successful.</Desc>
+        </Result>
+        <ShippingCredentials>
+            <ShippingKey>54233F2B2C4E5C4B4C5E5A59565530554B405641475D5659</ShippingKey>
+            <AccountNbr>799909537</AccountNbr>
+        </ShippingCredentials>
+        <EstimateDetail>
+            <DateGenerated>2014-01-06</DateGenerated>
+            <ShipDate>2014-01-06</ShipDate>
+            <Service>
+                <Code>IE</Code>
+            </Service>
+            <ServiceLevelCommitment>
+                <Desc>Estimated Delivery By January 8, 2014 by End of Day</Desc>
+            </ServiceLevelCommitment>
+            <RateEstimate>
+                <TotalChargeEstimate>22.02</TotalChargeEstimate>
+                <Charges>
+                    <Charge>
+                        <Type>
+                            <Code>F</Code>
+                            <Desc>Freight Charges</Desc>
+                        </Type>
+                        <Value>20.20</Value>
+                    </Charge>
+                    <Charge>
+                        <Type>
+                            <Code>O</Code>
+                            <Desc>Other Charges</Desc>
+                        </Type>
+                        <Value>1.82</Value>
+                    </Charge>
+                </Charges>
+            </RateEstimate>
+        </EstimateDetail>
+    </IntlShipment>
+</eCommerce>
\ No newline at end of file
diff --git a/dev/tests/unit/testsuite/Magento/View/Layout/ElementTest.php b/dev/tests/unit/testsuite/Magento/View/Layout/ElementTest.php
index 120d895ac0016e3a8b7a735cb8cc0ceded36703e..f3a046fefbd3a0f334f5f76decb79eda165db648 100644
--- a/dev/tests/unit/testsuite/Magento/View/Layout/ElementTest.php
+++ b/dev/tests/unit/testsuite/Magento/View/Layout/ElementTest.php
@@ -51,4 +51,28 @@ class ElementTest extends \PHPUnit_Framework_TestCase
             array('<block />', ''),
         );
     }
+
+    public function cacheableDataProvider()
+    {
+        return array(
+            array('<containter name="name" />', true),
+            array('<block name="name" cacheable="false" />', false),
+            array('<block name ="bl1"><block name="bl2" /></block>', true),
+            array('<block name ="bl1"><block name="bl2" cacheable="false"/></block>', false),
+            array('<block name="name" />', true),
+            array('<renderer cacheable="false" />', true),
+            array('<renderer name="name" />', true),
+            array('<widget cacheable="false" />', true),
+            array('<widget name="name" />', true)
+        );
+    }
+
+    /**
+     * @dataProvider cacheableDataProvider
+     */
+    public function testIsCacheable($xml, $expected)
+    {
+        $model = new \Magento\View\Layout\Element($xml);
+        $this->assertEquals($expected, $model->isCacheable());
+    }
 }
diff --git a/lib/Magento/View/Layout/Element.php b/lib/Magento/View/Layout/Element.php
index 8342afe7dadba088b21d4ebadaea1a27b8d5f9c4..5b703bb22d3b81085ae69f911a87cd44df19f895 100644
--- a/lib/Magento/View/Layout/Element.php
+++ b/lib/Magento/View/Layout/Element.php
@@ -190,4 +190,14 @@ class Element extends \Magento\Simplexml\Element
     {
         return $this;
     }
+
+    /**
+     * Returns information is this element allows caching
+     *
+     * @return bool
+     */
+    public function isCacheable()
+    {
+        return !(boolean)count($this->xpath('//' . self::TYPE_BLOCK . '[@cacheable="false"]'));
+    }
 }
diff --git a/pub/lib/mage/validation.js b/pub/lib/mage/validation.js
index 52cf200d77e75735aa8616dbfe6acb4589ca590f..a1981b83d0c0f1b4736e63529f1410cf6f838dc4 100644
--- a/pub/lib/mage/validation.js
+++ b/pub/lib/mage/validation.js
@@ -890,7 +890,7 @@
             function(value, element, params) {
                 if ($.isNumeric($(params).val()) && $.isNumeric(value)) {
                     this.lteToVal = $(params).val();
-                    return value <= $(params).val();
+                    return parseFloat(value) <= parseFloat($(params).val());
                 }
                 return true;
             },
@@ -902,7 +902,7 @@
             function(value, element, params) {
                 if ($.isNumeric($(params).val()) && $.isNumeric(value)) {
                     this.gteToVal = $(params).val();
-                    return value >= $(params).val();
+                    return parseFloat(value) >= parseFloat($(params).val());
                 }
                 return true;
             },