Bug 806937: Private browsing mode support for Menu button. [r=mfinkle]
authorSriram Ramasubramanian <sriram@mozilla.com>
Fri, 16 Nov 2012 00:21:46 -0800
changeset 114394 984a10bc4125972a06cc58e5e44fe77867be9051
parent 114393 944db176184ee602ff57e89402feac373000f306
child 114395 585a7f8fc448a9c54097956ebb85585d902af363
push id23917
push useremorley@mozilla.com
push dateThu, 29 Nov 2012 14:20:29 +0000
treeherdermozilla-central@c72d38e7a212 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmfinkle
bugs806937
milestone20.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 806937: Private browsing mode support for Menu button. [r=mfinkle]
mobile/android/base/BrowserToolbar.java
mobile/android/base/Makefile.in
mobile/android/base/MenuButton.java
mobile/android/base/resources/drawable-hdpi-v11/menu_pb.png
mobile/android/base/resources/drawable-land-hdpi-v14/menu_pb.png
mobile/android/base/resources/drawable-land-mdpi-v14/menu_pb.png
mobile/android/base/resources/drawable-land-xhdpi-v14/menu_pb.png
mobile/android/base/resources/drawable-large-hdpi-v11/menu_pb.png
mobile/android/base/resources/drawable-large-mdpi-v11/menu_pb.png
mobile/android/base/resources/drawable-large-xhdpi-v11/menu_pb.png
mobile/android/base/resources/drawable-mdpi-v11/menu_pb.png
mobile/android/base/resources/drawable-xhdpi-v11/menu_pb.png
mobile/android/base/resources/drawable-xlarge-hdpi-v11/menu_pb.png
mobile/android/base/resources/drawable-xlarge-mdpi-v11/menu_pb.png
mobile/android/base/resources/drawable-xlarge-xhdpi-v11/menu_pb.png
mobile/android/base/resources/drawable/menu_level.xml
mobile/android/base/resources/drawable/menu_level.xml.in
mobile/android/base/resources/layout-xlarge-v11/browser_toolbar_menu.xml.in
--- a/mobile/android/base/BrowserToolbar.java
+++ b/mobile/android/base/BrowserToolbar.java
@@ -65,17 +65,17 @@ public class BrowserToolbar implements V
     private ImageView mForward;
     public ImageButton mFavicon;
     public ImageButton mStop;
     public ImageButton mSiteSecurity;
     public ImageButton mReader;
     private AnimationDrawable mProgressSpinner;
     private GeckoTextSwitcher mTabsCount;
     private ImageView mShadow;
-    private ImageButton mMenu;
+    private GeckoImageButton mMenu;
     private LinearLayout mActionItemBar;
     private MenuPopup mMenuPopup;
     private List<View> mFocusOrder;
 
     final private BrowserApp mActivity;
     private LayoutInflater mInflater;
     private Handler mHandler;
     private boolean mHasSoftMenuButton;
@@ -286,17 +286,17 @@ public class BrowserToolbar implements V
         mTitleSlideRight = new TranslateAnimation(-slideWidth, 0, 0, 0);
         mTitleSlideRight.setAnimationListener(this);
 
         final int lockAnimDuration = 300;
         mLockFadeIn.setDuration(lockAnimDuration);
         mTitleSlideLeft.setDuration(lockAnimDuration);
         mTitleSlideRight.setDuration(lockAnimDuration);
 
-        mMenu = (ImageButton) mLayout.findViewById(R.id.menu);
+        mMenu = (GeckoImageButton) mLayout.findViewById(R.id.menu);
         mActionItemBar = (LinearLayout) mLayout.findViewById(R.id.menu_items);
         mHasSoftMenuButton = !mActivity.hasPermanentMenuKey();
 
         if (mHasSoftMenuButton) {
             mMenu.setVisibility(View.VISIBLE);
             mMenu.setOnClickListener(new Button.OnClickListener() {
                 public void onClick(View view) {
                     mActivity.openOptionsMenu();
@@ -794,16 +794,17 @@ public class BrowserToolbar implements V
                 ((GeckoButton) mAwesomeBar).setPrivateMode(tab.isPrivate());
             else if (mAwesomeBar instanceof GeckoRelativeLayout)
                 ((GeckoRelativeLayout) mAwesomeBar).setPrivateMode(tab.isPrivate());
 
             mTabs.setPrivateMode(tab.isPrivate());
             mTabsCount.setPrivateMode(tab.isPrivate());
             ((GeckoTextView) mTabsCount.getCurrentView()).setPrivateMode(tab.isPrivate());
             mTitle.setPrivateMode(tab.isPrivate());
+            mMenu.setPrivateMode(tab.isPrivate());
         }
     }
 
     public void destroy() {
         // The action-items views are reused on rotation.
         // Remove them from their parent, so they can be re-attached to new parent.
         mActionItemBar.removeAllViews();
     }
--- a/mobile/android/base/Makefile.in
+++ b/mobile/android/base/Makefile.in
@@ -221,16 +221,17 @@ FENNEC_PP_JAVA_FILES = \
   $(NULL)
 
 FENNEC_PP_XML_FILES = \
   res/color/awesome_bar_title.xml \
   res/color/awesome_bar_title_hint.xml \
   res/color/tabs_counter_color.xml \
   res/drawable/address_bar_bg.xml \
   res/drawable/address_bar_url.xml \
+  res/drawable/menu_level.xml \
   res/drawable/tabs_button.xml \
   res/drawable/tabs_level.xml \
   res/drawable-xlarge-mdpi-v11/tabs_button.xml \
   res/drawable-xlarge-mdpi-v11/tabs_level.xml \
   res/layout/abouthome_content.xml \
   res/layout/awesomebar_search.xml \
   res/layout/awesomebar_suggestion_row.xml \
   res/layout/browser_toolbar.xml \
@@ -730,16 +731,17 @@ RES_DRAWABLE_MDPI_V11 = \
   res/drawable-mdpi-v11/ic_menu_save_as_pdf.png \
   res/drawable-mdpi-v11/ic_menu_settings.png \
   res/drawable-mdpi-v11/ic_menu_share.png \
   res/drawable-mdpi-v11/ic_menu_synced_tabs.png \
   res/drawable-mdpi-v11/ic_menu_tools.png \
   res/drawable-mdpi-v11/ic_menu_quit.png \
   res/drawable-mdpi-v11/ic_status_logo.png \
   res/drawable-mdpi-v11/menu.png \
+  res/drawable-mdpi-v11/menu_pb.png \
   res/drawable-mdpi-v11/menu_panel_bg.9.png \
   res/drawable-mdpi-v11/menu_popup_bg.9.png \
   res/drawable-mdpi-v11/menu_popup_arrow.png \
   res/drawable-mdpi-v11/menu_item_check.png \
   res/drawable-mdpi-v11/menu_item_more.png \
   res/drawable-mdpi-v11/menu_item_uncheck.png \
   $(NULL)
 
@@ -764,16 +766,17 @@ RES_DRAWABLE_HDPI_V11 = \
   res/drawable-hdpi-v11/ic_menu_save_as_pdf.png \
   res/drawable-hdpi-v11/ic_menu_settings.png \
   res/drawable-hdpi-v11/ic_menu_share.png \
   res/drawable-hdpi-v11/ic_menu_synced_tabs.png \
   res/drawable-hdpi-v11/ic_menu_tools.png \
   res/drawable-hdpi-v11/ic_menu_quit.png \
   res/drawable-hdpi-v11/ic_status_logo.png \
   res/drawable-hdpi-v11/menu.png \
+  res/drawable-hdpi-v11/menu_pb.png \
   res/drawable-hdpi-v11/menu_panel_bg.9.png \
   res/drawable-hdpi-v11/menu_popup_bg.9.png \
   res/drawable-hdpi-v11/menu_popup_arrow.png \
   res/drawable-hdpi-v11/menu_item_check.png \
   res/drawable-hdpi-v11/menu_item_more.png \
   res/drawable-hdpi-v11/menu_item_uncheck.png \
   $(NULL)
 
@@ -798,16 +801,17 @@ RES_DRAWABLE_XHDPI_V11 = \
   res/drawable-xhdpi-v11/ic_menu_save_as_pdf.png \
   res/drawable-xhdpi-v11/ic_menu_settings.png \
   res/drawable-xhdpi-v11/ic_menu_share.png \
   res/drawable-xhdpi-v11/ic_menu_synced_tabs.png \
   res/drawable-xhdpi-v11/ic_menu_tools.png \
   res/drawable-xhdpi-v11/ic_menu_quit.png \
   res/drawable-xhdpi-v11/ic_status_logo.png \
   res/drawable-xhdpi-v11/menu.png \
+  res/drawable-xhdpi-v11/menu_pb.png \
   res/drawable-xhdpi-v11/menu_panel_bg.9.png \
   res/drawable-xhdpi-v11/menu_popup_bg.9.png \
   res/drawable-xhdpi-v11/menu_popup_arrow.png \
   res/drawable-xhdpi-v11/menu_item_check.png \
   res/drawable-xhdpi-v11/menu_item_more.png \
   res/drawable-xhdpi-v11/menu_item_uncheck.png \
   $(NULL)
 
@@ -827,16 +831,17 @@ RES_DRAWABLE_LAND_MDPI_V14 = \
   res/drawable-land-mdpi-v14/address_bar_url_pressed_pb.9.png \
   res/drawable-land-mdpi-v14/remote_tabs_off.png \
   res/drawable-land-mdpi-v14/remote_tabs_on.png \
   res/drawable-land-mdpi-v14/tab_new.png \
   res/drawable-land-mdpi-v14/tabs_carat.png \
   res/drawable-land-mdpi-v14/tabs_carat_pb.png \
   res/drawable-land-mdpi-v14/urlbar_stop.png \
   res/drawable-land-mdpi-v14/menu.png \
+  res/drawable-land-mdpi-v14/menu_pb.png \
   res/drawable-land-mdpi-v14/reader.png \
   res/drawable-land-mdpi-v14/site_security_identified.png \
   res/drawable-land-mdpi-v14/site_security_verified.png \
   $(NULL)
 
 RES_DRAWABLE_LAND_HDPI_V14 = \
   res/drawable-land-hdpi-v14/ic_awesomebar_go.png \
   res/drawable-land-hdpi-v14/ic_awesomebar_search.png \
@@ -848,16 +853,17 @@ RES_DRAWABLE_LAND_HDPI_V14 = \
   res/drawable-land-hdpi-v14/address_bar_url_pressed_pb.9.png \
   res/drawable-land-hdpi-v14/remote_tabs_off.png \
   res/drawable-land-hdpi-v14/remote_tabs_on.png \
   res/drawable-land-hdpi-v14/tab_new.png \
   res/drawable-land-hdpi-v14/tabs_carat.png \
   res/drawable-land-hdpi-v14/tabs_carat_pb.png \
   res/drawable-land-hdpi-v14/urlbar_stop.png \
   res/drawable-land-hdpi-v14/menu.png \
+  res/drawable-land-hdpi-v14/menu_pb.png \
   res/drawable-land-hdpi-v14/reader.png \
   res/drawable-land-hdpi-v14/site_security_identified.png \
   res/drawable-land-hdpi-v14/site_security_verified.png \
   $(NULL)
 
 RES_DRAWABLE_LAND_XHDPI_V14 = \
   res/drawable-land-xhdpi-v14/ic_awesomebar_go.png \
   res/drawable-land-xhdpi-v14/ic_awesomebar_search.png \
@@ -869,16 +875,17 @@ RES_DRAWABLE_LAND_XHDPI_V14 = \
   res/drawable-land-xhdpi-v14/address_bar_url_pressed_pb.9.png \
   res/drawable-land-xhdpi-v14/remote_tabs_off.png \
   res/drawable-land-xhdpi-v14/remote_tabs_on.png \
   res/drawable-land-xhdpi-v14/tab_new.png \
   res/drawable-land-xhdpi-v14/tabs_carat.png \
   res/drawable-land-xhdpi-v14/tabs_carat_pb.png \
   res/drawable-land-xhdpi-v14/urlbar_stop.png \
   res/drawable-land-xhdpi-v14/menu.png \
+  res/drawable-land-xhdpi-v14/menu_pb.png \
   res/drawable-land-xhdpi-v14/reader.png \
   res/drawable-land-xhdpi-v14/site_security_identified.png \
   res/drawable-land-xhdpi-v14/site_security_verified.png \
   $(NULL)
 
 RES_DRAWABLE_LARGE_MDPI_V11 = \
   res/drawable-large-mdpi-v11/address_bar_bg_normal.xml \
   res/drawable-large-mdpi-v11/address_bar_bg_private.xml \
@@ -899,16 +906,17 @@ RES_DRAWABLE_LARGE_MDPI_V11 = \
   res/drawable-large-mdpi-v11/remote_tabs_off.png \
   res/drawable-large-mdpi-v11/remote_tabs_on.png \
   res/drawable-large-mdpi-v11/tab_new.png \
   res/drawable-large-mdpi-v11/urlbar_stop.png \
   res/drawable-large-mdpi-v11/reader.png \
   res/drawable-large-mdpi-v11/site_security_identified.png \
   res/drawable-large-mdpi-v11/site_security_verified.png \
   res/drawable-large-mdpi-v11/menu.png \
+  res/drawable-large-mdpi-v11/menu_pb.png \
   res/drawable-large-mdpi-v11/tabs_carat.png \
   res/drawable-large-mdpi-v11/tabs_carat_pb.png \
   $(NULL)
 
 RES_DRAWABLE_LARGE_HDPI_V11 = \
   res/drawable-large-hdpi-v11/address_bar_texture_tablet.png \
   res/drawable-large-hdpi-v11/address_bar_texture_tablet_pb.png \
   res/drawable-large-hdpi-v11/address_bar_back_button_bg.png \
@@ -926,16 +934,17 @@ RES_DRAWABLE_LARGE_HDPI_V11 = \
   res/drawable-large-hdpi-v11/remote_tabs_off.png \
   res/drawable-large-hdpi-v11/remote_tabs_on.png \
   res/drawable-large-hdpi-v11/tab_new.png \
   res/drawable-large-hdpi-v11/urlbar_stop.png \
   res/drawable-large-hdpi-v11/reader.png \
   res/drawable-large-hdpi-v11/site_security_identified.png \
   res/drawable-large-hdpi-v11/site_security_verified.png \
   res/drawable-large-hdpi-v11/menu.png \
+  res/drawable-large-hdpi-v11/menu_pb.png \
   res/drawable-large-hdpi-v11/tabs_carat.png \
   res/drawable-large-hdpi-v11/tabs_carat_pb.png \
   $(NULL)
 
 RES_DRAWABLE_LARGE_XHDPI_V11 = \
   res/drawable-large-xhdpi-v11/address_bar_texture_tablet.png \
   res/drawable-large-xhdpi-v11/address_bar_texture_tablet_pb.png \
   res/drawable-large-xhdpi-v11/address_bar_back_button_bg.png \
@@ -953,47 +962,51 @@ RES_DRAWABLE_LARGE_XHDPI_V11 = \
   res/drawable-large-xhdpi-v11/remote_tabs_on.png \
   res/drawable-large-xhdpi-v11/remote_tabs_off.png \
   res/drawable-large-xhdpi-v11/tab_new.png \
   res/drawable-large-xhdpi-v11/urlbar_stop.png \
   res/drawable-large-xhdpi-v11/reader.png \
   res/drawable-large-xhdpi-v11/site_security_identified.png \
   res/drawable-large-xhdpi-v11/site_security_verified.png \
   res/drawable-large-xhdpi-v11/menu.png \
+  res/drawable-large-xhdpi-v11/menu_pb.png \
   res/drawable-large-xhdpi-v11/tabs_carat.png \
   res/drawable-large-xhdpi-v11/tabs_carat_pb.png \
   $(NULL)
 
 RES_DRAWABLE_XLARGE_MDPI_V11 = \
   res/drawable-xlarge-mdpi-v11/awesomebar_tab_center.9.png \
   res/drawable-xlarge-mdpi-v11/awesomebar_tab_left.9.png \
   res/drawable-xlarge-mdpi-v11/awesomebar_tab_right.9.png \
   res/drawable-xlarge-mdpi-v11/menu.png \
+  res/drawable-xlarge-mdpi-v11/menu_pb.png \
   res/drawable-xlarge-mdpi-v11/tabs_carat_contracted.png \
   res/drawable-xlarge-mdpi-v11/tabs_carat_contracted_pb.png \
   res/drawable-xlarge-mdpi-v11/tabs_carat_expanded.png \
   res/drawable-xlarge-mdpi-v11/tabs_carat_expanded_pb.png \
   $(NULL)
 
 RES_DRAWABLE_XLARGE_HDPI_V11 = \
   res/drawable-xlarge-hdpi-v11/awesomebar_tab_center.9.png \
   res/drawable-xlarge-hdpi-v11/awesomebar_tab_left.9.png \
   res/drawable-xlarge-hdpi-v11/awesomebar_tab_right.9.png \
   res/drawable-xlarge-hdpi-v11/menu.png \
+  res/drawable-xlarge-hdpi-v11/menu_pb.png \
   res/drawable-xlarge-hdpi-v11/tabs_carat_contracted.png \
   res/drawable-xlarge-hdpi-v11/tabs_carat_contracted_pb.png \
   res/drawable-xlarge-hdpi-v11/tabs_carat_expanded.png \
   res/drawable-xlarge-hdpi-v11/tabs_carat_expanded_pb.png \
   $(NULL)
 
 RES_DRAWABLE_XLARGE_XHDPI_V11 = \
   res/drawable-xlarge-xhdpi-v11/awesomebar_tab_center.9.png \
   res/drawable-xlarge-xhdpi-v11/awesomebar_tab_left.9.png \
   res/drawable-xlarge-xhdpi-v11/awesomebar_tab_right.9.png \
   res/drawable-xlarge-xhdpi-v11/menu.png \
+  res/drawable-xlarge-xhdpi-v11/menu_pb.png \
   res/drawable-xlarge-xhdpi-v11/tabs_carat_contracted.png \
   res/drawable-xlarge-xhdpi-v11/tabs_carat_contracted_pb.png \
   res/drawable-xlarge-xhdpi-v11/tabs_carat_expanded.png \
   res/drawable-xlarge-xhdpi-v11/tabs_carat_expanded_pb.png \
   $(NULL)
 
 RES_COLOR = \
   res/color/menu_item_title.xml \
@@ -1028,17 +1041,16 @@ MOZ_ANDROID_DRAWABLES += \
   mobile/android/base/resources/drawable/awesomebar_tab_selected.xml            \
   mobile/android/base/resources/drawable/awesomebar_tab_unselected.xml          \
   mobile/android/base/resources/drawable/desktop_notification.png               \
   mobile/android/base/resources/drawable/highlight.xml                          \
   mobile/android/base/resources/drawable/handle_end_level.xml                   \
   mobile/android/base/resources/drawable/handle_start_level.xml                 \
   mobile/android/base/resources/drawable/menu_button.xml                        \
   mobile/android/base/resources/drawable/menu_item_checkmark.xml                \
-  mobile/android/base/resources/drawable/menu_level.xml                         \
   mobile/android/base/resources/drawable/progress_spinner.xml                   \
   mobile/android/base/resources/drawable/progress_spinner_1.png                 \
   mobile/android/base/resources/drawable/progress_spinner_2.png                 \
   mobile/android/base/resources/drawable/progress_spinner_3.png                 \
   mobile/android/base/resources/drawable/progress_spinner_4.png                 \
   mobile/android/base/resources/drawable/progress_spinner_5.png                 \
   mobile/android/base/resources/drawable/progress_spinner_6.png                 \
   mobile/android/base/resources/drawable/progress_spinner_7.png                 \
--- a/mobile/android/base/MenuButton.java
+++ b/mobile/android/base/MenuButton.java
@@ -61,16 +61,17 @@ public class MenuButton extends ShapedBu
         Drawable drawable = mActivity.getLightweightTheme().getDrawableWithAlpha(this, 34);
         if (drawable == null)
             return;
 
         Resources resources = getContext().getResources();
         LayerDrawable layers = new LayerDrawable(new Drawable[] { new ColorDrawable(Color.BLACK), drawable }); 
 
         StateListDrawable stateList = new StateListDrawable();
+        stateList.addState(new int[] { R.attr.state_private }, new ColorDrawable(Color.BLACK));
         stateList.addState(new int[] { android.R.attr.state_pressed }, resources.getDrawable(R.drawable.highlight));
         stateList.addState(new int[] {}, layers);
 
         LevelListDrawable levelList = new LevelListDrawable();
         levelList.addLevel(0, 1, stateList);
         levelList.addLevel(2, 2, new ColorDrawable(Color.TRANSPARENT));
 
         setBackgroundDrawable(levelList);
new file mode 100644
index 0000000000000000000000000000000000000000..72d2aea58b9fbf180777efe174c4647447808d6b
GIT binary patch
literal 1594
zc$}S7Yfuwc6ke6l`l?h-M`hG?v4Pqq`+z)lOUQ(50%3^6@Jh!PT{a6WW_QD8F(Hmq
zEn3CeQH#z{X4Dym+Oa<RKuj5Et2ng<Ukt^zh(#-CE#iX;RV%jLP+~hB#~;13yZ4@R
zzwexL&pl@=9ZOTEPnkCb0D$SXG}0;0i^K0T6XowuKy|e|&6O-JDN87n{FKN5Cbv+)
zfHsaQVw?=+E-!6mk^o>rF`Mm@T=oot7C1E(#;60F7YL6eW57$%s~8C^V2W7Y0Nrl-
z5&~Jb0m{?Z5xdvS6tihTk;w`!&8CB^Xxt4Mlfk3_AsgTri2?(hhxZWy12k%vkk?@~
z41uE%X_W!`J1Cdk0h$Go0X6Cb6^)=MsMV^`M2%L9z6@driouBdXjNz;q0thU4jdbh
z>`inR5>C=O=1Z0gP_ZO=2^jYK{c3-LS`dq16vy$f4GdGs2$ip#m#Bb>_r*pmkc^KO
zS+B$jJQ$X#0-;PYKv3ieoY!uDY?$|rB}z^i9H6`~szzXrgCl64<YWq;j`n4jdl}ft
z_=GZ%mhYo5_Ft}^P7MR)XoyUal`n<zkOE!CF}!3W4UoK}cC&86s@GXjRF{b8Fhr|I
zQ9Ythu%=+R2{&6XECG$!coG-W;W`Ajk|>E-P}G8%5>iZfB8h4ea8#p5$OzZQ`y`5|
znFyEthiiT+moSSAB?)4-Ab27b;3yU(!B;GJL35TCjJH!X%ZC*&hA(I=Rz_r3Gj6LW
zaNuZ$3HAvQ$c|HVW|Bm#7&>}#3^S1ksn=Rfh$#`*Kx16@|H&FG2Lu17Tp}vD2E)t8
z#V-qw+lS%ho)P8dI2$;16#&K;+elM(;KD%lnUXBi?5~S%rIsAwJdfgMR-E4$b3D#l
zlq1oHlGj~MUmLaXSY9;gS4+#HFK%AFe{)oNcl;7p_Y`inrqWiUytl`fL@S4aLat7q
z)qZU6sngV3Rqy>da;q`6GHsx4@5tWvOKEB8zucv(8#Z0Fq%1nnT5_j(ed~skdwPO?
z*ht_iTU)--)^hIrwryuGC6`wGe5lU$jji$1#*sUHmVva%^A`oL9Q6f;eo!bfo0$Bz
z(ly;VBB98L!g@REcQ~}3?O+D)cilc|kL!cBJJRn@omitAK88er<F!&^+)>@Qb;(>y
z-TviYz0+8G2iQdioj1R~ac;{JzQ&yTptPp!wFml{SL&5L_16MDimK(g%;!0P`{tG*
z;gj4~HQz2Msc*aR(xBq^eZAI@XJl}=qoSg#1z(^J&9@D`-}qZ!$L^}U@}7mty!a4Y
zWsLC@jO=WkVBR=&-qyldCA*HZYd0-M?=>A(I72bi3gqYwcV*|eDk4L<;m6t&n%&VL
zJfrsh3G;{1;}#!D>DL)osM@CO7<y36PUhkB`DeSK;hoBcg}v>Q?ERU_(81>y4Lhb)
zAE@cG8tU?&i#fRRgYChAKTf~hG^;B%VLY?5)5RZ3YSyml-#1tjY=JY(vzX5&*T(U$
zTzsQz;vC<Zk1lJ!qgN2kxv`r@wkn)LPRkdXhW?PLWClKWpx1a^$u{r17Mjz3yCXI?
zD|S7knG-iGe(d;l^<86I8&|ppuZFvz;kowy>q{opbe`khC7wOmU@GZ1@kZ;=&D0~E
nz}kn)bis#%nXkJZ&0GoiJ(l?|FtyXee{-8<DS0?$<(q#2s25k=
new file mode 100644
index 0000000000000000000000000000000000000000..72d2aea58b9fbf180777efe174c4647447808d6b
GIT binary patch
literal 1594
zc$}S7Yfuwc6ke6l`l?h-M`hG?v4Pqq`+z)lOUQ(50%3^6@Jh!PT{a6WW_QD8F(Hmq
zEn3CeQH#z{X4Dym+Oa<RKuj5Et2ng<Ukt^zh(#-CE#iX;RV%jLP+~hB#~;13yZ4@R
zzwexL&pl@=9ZOTEPnkCb0D$SXG}0;0i^K0T6XowuKy|e|&6O-JDN87n{FKN5Cbv+)
zfHsaQVw?=+E-!6mk^o>rF`Mm@T=oot7C1E(#;60F7YL6eW57$%s~8C^V2W7Y0Nrl-
z5&~Jb0m{?Z5xdvS6tihTk;w`!&8CB^Xxt4Mlfk3_AsgTri2?(hhxZWy12k%vkk?@~
z41uE%X_W!`J1Cdk0h$Go0X6Cb6^)=MsMV^`M2%L9z6@driouBdXjNz;q0thU4jdbh
z>`inR5>C=O=1Z0gP_ZO=2^jYK{c3-LS`dq16vy$f4GdGs2$ip#m#Bb>_r*pmkc^KO
zS+B$jJQ$X#0-;PYKv3ieoY!uDY?$|rB}z^i9H6`~szzXrgCl64<YWq;j`n4jdl}ft
z_=GZ%mhYo5_Ft}^P7MR)XoyUal`n<zkOE!CF}!3W4UoK}cC&86s@GXjRF{b8Fhr|I
zQ9Ythu%=+R2{&6XECG$!coG-W;W`Ajk|>E-P}G8%5>iZfB8h4ea8#p5$OzZQ`y`5|
znFyEthiiT+moSSAB?)4-Ab27b;3yU(!B;GJL35TCjJH!X%ZC*&hA(I=Rz_r3Gj6LW
zaNuZ$3HAvQ$c|HVW|Bm#7&>}#3^S1ksn=Rfh$#`*Kx16@|H&FG2Lu17Tp}vD2E)t8
z#V-qw+lS%ho)P8dI2$;16#&K;+elM(;KD%lnUXBi?5~S%rIsAwJdfgMR-E4$b3D#l
zlq1oHlGj~MUmLaXSY9;gS4+#HFK%AFe{)oNcl;7p_Y`inrqWiUytl`fL@S4aLat7q
z)qZU6sngV3Rqy>da;q`6GHsx4@5tWvOKEB8zucv(8#Z0Fq%1nnT5_j(ed~skdwPO?
z*ht_iTU)--)^hIrwryuGC6`wGe5lU$jji$1#*sUHmVva%^A`oL9Q6f;eo!bfo0$Bz
z(ly;VBB98L!g@REcQ~}3?O+D)cilc|kL!cBJJRn@omitAK88er<F!&^+)>@Qb;(>y
z-TviYz0+8G2iQdioj1R~ac;{JzQ&yTptPp!wFml{SL&5L_16MDimK(g%;!0P`{tG*
z;gj4~HQz2Msc*aR(xBq^eZAI@XJl}=qoSg#1z(^J&9@D`-}qZ!$L^}U@}7mty!a4Y
zWsLC@jO=WkVBR=&-qyldCA*HZYd0-M?=>A(I72bi3gqYwcV*|eDk4L<;m6t&n%&VL
zJfrsh3G;{1;}#!D>DL)osM@CO7<y36PUhkB`DeSK;hoBcg}v>Q?ERU_(81>y4Lhb)
zAE@cG8tU?&i#fRRgYChAKTf~hG^;B%VLY?5)5RZ3YSyml-#1tjY=JY(vzX5&*T(U$
zTzsQz;vC<Zk1lJ!qgN2kxv`r@wkn)LPRkdXhW?PLWClKWpx1a^$u{r17Mjz3yCXI?
zD|S7knG-iGe(d;l^<86I8&|ppuZFvz;kowy>q{opbe`khC7wOmU@GZ1@kZ;=&D0~E
nz}kn)bis#%nXkJZ&0GoiJ(l?|FtyXee{-8<DS0?$<(q#2s25k=
new file mode 100644
index 0000000000000000000000000000000000000000..eb70185c842560521985920a4784d3bc689248bb
GIT binary patch
literal 1339
zc$}S7e{2&~9KW?X0W+Kle=sxUc_Yen?fqzbZO@hM+Uv0rI-0i8nV7L_``TW%-gVa-
z?G^(}jW|VtWPur@RiYurWMdc;(S)IF4uZ&EhJ=7WGX;&3l}v^!tM6tzjUoHPm%DrK
z`+eWf_xpL@_x;{bpnXftng`Zk7*^wJ<AZ2kr@yPJ(f8G%2W!w&r+GWHkP_Fjq6#rC
zrbHm{rNjgbLNV6gdloihm@z4ZJG2h}Ha4oH%%W~%&ZW|rKAKx{X))RjH4uRbNp|7a
zKb^pV6m#KE+5DtG?SV<DZ9s*gf%b58pgZb};Vqj%bB;w0Qcx2?F4ZGv*qjSr^2?&N
zt|oA>WTJJu@V`lQ_yfSBs1Vr97E_d@D8Mjg%4%a6stM2}MH3`?7!ze>Z467>L3!XP
zni`9<L0%}wLXrzlYFe5lh-@}%&RWchnjk2r)2aKQX%n(AW%^}J%$ej&L&XCRGf`Da
zYmy=ZT^1uspXS2x$`Mj&zkk`WoGB*?rHsglX@WA7L@Gs8tTS2=##gq^g!|Kw2*Qlg
zr$*6z#2fw<YGtTyh}f{(RS8{+*uyK)z7&)-AMe7^jyWd9SixZzD9Uan?KH_aD9S-P
zEP|VMa!!wzrY%&($DOd04JBM~dnlgtQk0kGEN;$e<tdxRN!c7EU%~q1j3&xaSiwsF
zVBITXS&s@uO;N*&(o?B`KvL0^Oj1b$Ply4V{9;s+bw#6oL1nH`m3G3IpeiY_lwnr7
z0|OM;ZTIjzDbUo?$!VJ7N#4N-9LZUoHoT0D{hzE6hz#+ca;d0L4eHC~;zz=A`#>4>
zjEb7${PUgrFsw@Q@mx4}DN-zzT8y@;dpG+8L3k2O-81=2;2ov4xccf#-^S`z(LKAb
z-2OUpIrtj*>VvThe>}l7zG!$|>6N<hE-<m_=<tvE4W+u)^^?^@2Y-X$yIYHYZa6)*
zzjUge*>&u8^SrfIefac8(}__FX{fpDhjaVeI~(48>;4^0#s=@|wiAZ&$HG^c+Utg2
zPHZ1NJYk#-f%x7+9-F;y>*oi=&=+&8xYHM^T{wRsakQ97-W`a5!`O!-*T#t5pVf0~
zdo5tfH#B%TpD)JeXV*r+-dfAl_?Nkbx%b}K*MxY@|McsPi(F)Q@;H4!<zAV&((1Z-
zX0Bjw8ZW+iq@#1)v&V%I@1^?5U8S2-*G6oQEDo<f(|Bs5w0Pt3jlp@x)V70LA1V|I
zKR?=1ck*P>IHXd?RQct|t>355U3_|vZ1{d5Kl;rP>!I<P8CR<-dv>m{B`|25-0^mC
gy0uu9uik?hF_U5NllNcvSkixIK5sie>h5~(FS=da=l}o!
new file mode 100644
index 0000000000000000000000000000000000000000..f51eb1c4caeeeea406c8df1ace5f2e7cbbcd1bff
GIT binary patch
literal 1723
zc$}S8Yfuwc6b_)&f{0WGc~n?eQBg^DlaQB2N!SDeB;^qvQ}MAR8<LV_!)76YP92}M
zJ{XY>DvAY*QmrUpt(FNWIwKgggA7!8j59J8!4ZWDBB&$XP~vntjz4;5ckeytp6@&7
zo_o&h-ULOomq(xnjYjj5#UM%43_0F8?$kHUb#f0i1(1?-G8xy97L>qfA~l|g0Wt%c
zg(YFAIzPvbt)<c2v^r%vnJ$kPsBi-vb=c6Y1{2LO)~>gjP*pZY0-0Er&L{+jZP!3R
zrxt=~5pqawio&$Im;wSzE>I{{1=%XT8eG2)SZftf1O|*m0joi8Gz+XkaGF;@tsQCx
z2uz!h*+TH2pwi_DKom}3Km?r?u7Y3~;Be?LJA%W3R|8B4W-=h^;e^9%K?Fy@<N`AT
zq`VPojUWk;&iJAvA*dxulYqgnSS)l4i;fdn44BX7J2;rkaLOXwoNpviYq-(8#L0kQ
zW)-0`kviN6IAk;v&n1N*=sbeKB$vM@HkxM=MWu{kMNJHt4lxV{hSS<iCSjV7Tbq^n
zCXA7UnekjgMcs#H$-i8E9O^Knq7i&S=%`CU^$4!YHDE?kh6q7whpyJC1yUYY3d3AB
z#AQMp9t`s!9!n}_@<se836sf!og5#+ve<kcBIZe81d_n8gehW)MSL~_N3i&C1P?--
zSeemGqDB?w#Of$4lgsBqA_)2@RuDyCD2WqF9M?N5AVG_hxLJ#vfT&~+utJWibVi3F
z%yB_8v0{WS4^vAC+yG2xSfKkr1e9YjHwr-@DHEPPIg=?uAcV(}iXai29|6u_)&D1J
z3@RALf6B$FqH55wd|&*O@V<R8Bh@nm)f`E)ksCCc>k}CwQd)b4jtRBCBHxy*yy1%j
zkBc*WLkmL+Vd>rZwY5pLbqnKyRxJjrYUf`U&+^>wo2gsux39QWYM(uKj-OwTf2UaD
z>CNtYPJC^#tqHk$rMsfqcJ5(Q<IbQ7^U$5zHB;ZPMz?Y;8QH(Tu1~LSyWJF76L-C{
zkT+nhK@$R$@lQV6@g?AW?*x!V`((=cuK(AwdrSFo8x$84bNa8HYpgeG`nqy|(<hXP
zOWbVp%I|OQzqPIIRBdo?U5Gtw7KY?sep(aeZ|M14b*CG(bshY9J8@STZy%Z`ViBoT
zUsY7(jI6ZnJltHa8`lK7*C_Ke1N%B2NV#5vG5PLcLGw?}6<2xOtd>-(zpIZt%HBc*
z8HAH2T-I~-VNrAOjRI{=v;9tbUzOIE`B(4+&*hjq|M>9R`$I016)AVk*2fF?C7<!}
zu5}}l=Ux(($7|3IpTSQ(OW7mCwvy|N#AQDfEsEZ<bh&Ggze~|lS*4{dwMOx*tnpUK
z#@CO|Z@Bp8-J7Sq1JBDFT#m?#*#iDLvnbapBYopMp1wL5Qo2N5`J?^8_?4p5@|+B?
zcNrMCC^Wmmw(O{Hw`b?(<%&w4HS`y+7*Uz@5HhM&`s}G6d^RA7l=Zmp>Wn<zO4o#E
zo}H}=e0ezA`$)-x*xT)^!>ViU1+Px5YHx%KgNM=r&$qbgy|rXy<y3T~|MruYR432R
zNjRPO>fYI#aUHz}H=$wd)@{<X`<ov$yd4`8ANb?X%k6dc)}aPHt0K`(B}m`0Rk@)1
zO!a8&BQy7VY0J1*N=%3L&7NE8#q8bB4vh2}Mc*FlH$YvAQYjjj8b44L()^g0;?_R?
zgXLX75cJx1!M-tu%)PynhbSn%^88I@hh%|W*7l6*7ifTA#{SUVFIT;cZd=hYXq@29
z6U<t9x+!DfnBOJWwzsi4UiuS-d8$(}flW_F;i}YPpNU?3#z;_MEa6^|;yzU}m^&HP
ZMC%AR^`fC*?3LqpB9kbP3*s$1{su&5nt%WR
new file mode 100644
index 0000000000000000000000000000000000000000..0528b24a092f3b849a654b63e9b242f16fdef2e0
GIT binary patch
literal 1623
zc%17D@N?(olHy`uVBq!ia0vp^S|H591|*LjJ{b+9BuiW)N`mv#O3D+9QW+dm@{>{(
zJaZG%Q-e|yQz{EjrrIztFlS_jM3hAM`dB6B=jtVb)aX^@7BGN-jeSKyVsdtBi9%9p
zdS;%j()-=}l@u~lY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?G$V(tbhjOrj{fs
zROII56<bx<DuK<l0<uBE`br95B_-LmN)Sgy_y#CA=NF|anCcnpCL0(UDwvt+8Jd`y
znHlOR7#SEE=^Fr%nXaLUm8qGPk+}jCC;@FNN=dT{a&d#&1?1T(Wt5Z@Sn2DRmzV36
z8|&p4rRy77T3Uk4Ff!5ws?aU2%qvN((9J7WhMC}!TAW;zSx}OhpQixgCnn{Wme?vO
z!Mu=L;Oh%FIIkEQP{1J5uShJ=H`FuG&&}0`sV*)FN=?JBx;Uh=AXPsowK%`DC>a<Z
zY05}e;nxaM2y~5=e^DkdQWA4q@{>z*Q}aqZU2K(rGI}YQDOPS4=5B_D<|YQ_Mh0dU
zhK3df7RGK)MwX72&aOsA#)dF6u<126v9xe;vNSVvF>p0BbTx7`c5<{daWOPCwlp-g
zFmQqC^~@_SNz6-5h3U;i=rzTw*UGslHL)bWC?r2W2bKZ?GV)9Ei!<^I6r6+26f}Gj
zlQZ)`0-B%*g1R-eD6=dz#jPkmR{<QtR+(5_0JPZ2+}Xv&z|F`I>~kX{M;8MZ3o|!I
z14k1}QzfY06mmjMALtl;wB!O40;WL_6Q1~i9C-Fg%>(9{B4FnDT<8<ez`)e%>Eakt
zaqG>Dv)RIq636b}Jg?>(@P{GVc8ZIJT=mD8FM4rNUzD0EzTDWq==nVtn`^T>9<1zI
zx<J57KS*$iMxA14PQ+~A?Z)qa`0Zl9c`mOt(kS}mA?Fik-aJWctGpNA=BfG6!iG;~
z@^RzJnTE^m<uAE(_NeFnsTt3Am@Yo`U~+5k(Q7lkx6e#ze>TbI(^~m_`MBsgkqg#a
zn{EGh<jTsI(K8JERTv^ymR((cEb?wus)LK)gg-~_FdocQU(s~2N=PwbpTEZ<$5mHy
zrN1`#h`GsZGO9aX!=%X<awXq(9vgRC*6YvVQ)JhyC|x|KyM?(*?!}%-?ur)vpRZ)4
zzFJ#b_f4wC<(csbE~X<_{r%%t7A|v}>A80KDHB)uaF5GN0*q7ozw~{XQ}?|2?Aq|F
zX_L2jugd(De98Uts*qz{d~2`Gmiqf$!uW{i`j#shlaBRA1zw(<pS9)Z3%~TtO&8}C
zAFwnLSJnA1v^Rd=#|NKmUw<j7+heQ$`@u&EMeVC~3kyH0^;&1no%ieZp|`oKtyb~>
z`4xG6EtBolU$KtTbLs;^>itT1zZ)!^(7IL5)zT-CPxaIai%TnNH6}9GFu99Q)=E?L
zTEjHui1b}?Sq@gKg)M7Bepi(*ojfh*bwH76>m-No{wl4LL~jRN`pfNgtfbwpb<(=G
zqF;j*G_@A))|~RDf5DUeO_P3KkJt0<+4{_(c&W4Isr~PAb??{OWXpS<Yh7C@=dC-X
zplMR)hFD&Wm$lFHzU11Ad(E0$XSzV;-osVDp3G73`W3%NDuC%!%EPIBYdEG%@YFHr
zQjOg^+nG~YBk|J2S<<%8R-BGm!!{-7+jXlv-V5t3Crr(%7hd1DAcaNsS`XjnpUMXq
XSTB?<(s6Bx2Nm_6u6{1-oD!M<_vmX#
new file mode 100644
index 0000000000000000000000000000000000000000..c4b60409f1ad0c7cf405e82301c8d91add6a996a
GIT binary patch
literal 1377
zc%17D@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zk|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+m@_g%B1$5BeXNr6bM+EIYV;~{3m8Da#=fE;F*!T6L?J0P
zJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRzL%CQ%e#R
zDspr3imfVamB8j&0ofp7eI*63l9Fs&C5WRUd;=7m^NUgyO!bU)lMM_F70k@^3{6bU
z%nWrDj0_Bo^bLT>OxMuF%GAut$Xo#mlz_GsrKDK}xwt{?0`hE?GD=Dctn~HE%ggo3
zjrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<;L6O-~wOKg>t
zU|z^A@b!fooL3ADC}5E3S0onb8|oS8=jQ6eR2P>7rKaImT^v$bkg6Y)TAW{6lnjiI
zG-V{K@M{Gr1iHq`zbF$JDTz5Q`N^fZsd*)yF1AWQ8NHOu6e~9ib2mdna}xt|BLg!F
zLqiJ#3u8AYBTGk1XICR5V?&r3*z_8kSX#I^SsEF-7`Pf5x*9neJ2_gKxEPumTN;{L
z7`VXndgc|EB<3Zj!t`b$^cv#TYvo*&npl!w6q28x14{t`8Tlpo#Toep3eLf13L3tN
z$(eZ|0ZmW@LEV~Klv$RV;#QQOs{jsRt4u5|09x#1?(E`X;AUh9_PLRfql<xyg_)b9
zfuo6~sS;Fg3OS*s4|I$^T5^F20n;Fe2~Ye$4m|s$<^l6e5ioN|`fz_^U|{U`ba4!+
zxb-INwAWz=k-e91s43QR<i)CT)HQVP68*!ly{<Le{=nAwhu3=7v0T@?vs2SU+e0*W
z!m^dyJkR*<**<qktl5@e0jmOucZxHOi{Hu22%5EQgWr^dv&q>P`CA37d`p`=AM~oV
z7#>_cw_RI2W#jSg_3Xi`Z%z2b=fS(*n*F)8@2Wel;+jdBheblAU+PHiNQ>)ST65^4
zy3-%y@0(4ZhH}1=2zWf<&y;CN3Tici2bHF^?OpJ?$t_E0@~j_9O--9OKG40p_~ncT
z0wzpCw_2>D9!It=m0Rd4agKAJXPhVh&0Xa)_xfyzzjDcG`m=v)s<WNWKGWkkr^sXN
zK7F@uXcMoju638e{-sq%PZhn;I{EN{Y10Y+qD4XaE6*m{cqw$ITRw@(<oo^OVOJ5C
z<c@n!KGZ+`@M}wH@WEM=1t*&2%#V31uXQ@na@(By3g_}OZ*GuTYWXG3iNod$XL5A#
zoWlYypH4kfWbt<1E*U<T^~)uhj0*Oid}!2U_t0}*m%MS#S&vVv#i#VgicgcNXX0Vd
XUoLrqJ2BZ0ROorS`njxgN@xNAzk%ia
new file mode 100644
index 0000000000000000000000000000000000000000..8e649e29f91f7acd8249943b070d58ea9fb8693b
GIT binary patch
literal 1841
zc$}S8c~BE)6ps+fp$sBWDpqG%Dj=9+6LJ$V<d75+Fi-@QBP1ILkZhVP5U^?*MMTO`
zTd~Dj9Pt2Ju3EqmtRl6egLn;CP>wjL;8X=2EL6~TL&0`Bj(_x<-Tl7zzTfY?_r34E
z*}^F424^QPCmasvEDjUMu$gIn9p1sd)q6OruxU9ej6<Ul6`CX0!#JK2Nr3^eMxF}G
zV7W5)<I8X`4riODj)_C#BoS-{q9Mwy7@|?5!&yggh*2k3WWXqp0;j6ATyVVY90;hD
zTyPUjLYC<GaGE+SPY*}uNn;dw848vX3|R*R8`+ov4UEbGqb5^pU>mvMoLx4ywyH@W
zFb6?1xZvMG#Yv(7KB9*K8j(s+kRb@5(}_?JjZTNw0u(YtA(63%PJn{gG&-BY0OkjX
zdDAOZY?(kb?+cT-U>b_**d$U;P7X1LN<{RjB#6agS#3}#1Pnni<Z4m5k)SpBELaf0
z28CX&L)C~Du*&ijBn#z&;KC6!I*H`9VXa|4QCP}IM!Ajz5y>QthO~e-pfXtXcC;ZT
zR|k`1umQ=^E3o@e`TWb(+o@I{77aU6uf{G#o+&^SSsGZ2iUnK{+aW5|O16l}5J3<l
zh|Hjn=}ZV>l9^OdD22si@r4u$6<V<ICT<WT2of<vLm>fK2th&$j~dEj1qmP;l?Bn5
zWWfSgtTmu=tpZ-)s{i5g-pXb3^{^a8^f3sMxljR7X$XoK(hwcMkER3u61hUHwJO$F
zFK9kiSg+28l_EW&0p>EyR=*(v%yB4#FA$JL6lm_`6bes37BJ}|9+?-!qJi^V<^RbV
z2@8hwpK@7HVKr!7zAk=Dc-=m*7V8;3)*R2n3`(r$lEeaDjPdrP&5|@Xp8L1`zK1G(
z>+1ZQV|#Aynzpq=JUmEdhs0S{k;4%FY@x%u8zZ@4y!?GRD~^ME{akJa96eIKH?fvG
z=~vg|+pS{sS1un8X9!2Mu`X-2!zVw<?9U~Sk8~f(9sWtTX7!e?T?Kf)*}J1zTxJ-;
zm*N5EsHYzlI}$T(oN%_Yx@y;mK^8}UqG43GbGPtTZhzmEt7lj39NMWJ>*G%Ft3-{z
z4HnPZ_ZGI!)S0}SeN^>RvOJe*sNW$3bRKv`aHZa=zvk$h@50M(>f7TlYCXPD8ni#T
z_8Yf|p37^mu&GIf$Ud;6y76mdves5}y&U9~j4G2$!mkEP<CftAZ!F%Ie0?_E*B{E0
zUBXq}=QMfq)c`M=YA71pmS1hJlb(8JH+8{pLsZ+$gLGBLWn#rv##xhrk2Jv7%TsD@
zIhMXO9X6>dWpxhIHt*SmoTzpc$nGQ@<7OA>e5O|Nnqr~{QaBz_nHkz9LbdDcu+PDK
zEFpoFyTlB8#X45pD}wz)$DvP0T%_ZV*+$|0r^U@($tFpB#kLSy-pdP}UrdRehCD}8
zLjqcEKk!^JTP<fC7<F;Zp4{)=9#PujaiXsFgBNX|nR^d$dY>!p8eVm#v^+e=#}Am(
z_^}i0a=b7p#P0o~MvJh<-TxroXRYz@YJ7j0N4t$Q&2=fyd(0`ZOXuX38528L+q^yz
zj_<iqe$3JxG2jJN=+7)G$WM6|d7k4_@oPcHo?6S`l2Th!!Xoq3sX(J&jqA^Cb$5hC
zrIw51&@gVqJ-nGVoZ$34IjqcNDgLv{LfAMv_GNn?L#G@ruVPeDhVI5YPRM@my?3h1
zmP87+3qjNI3|P8-Wl?<h;0`;+CMLD&Vxe0n=f(Nb<$Cibf?u1b?}tZb+8qM|QtP(3
z-LVYE;#g+2<`-ql-O9}u%D(^Vc%V^{9sk3TCF@sAEj{XI418q6Y2V*yNqAygKl`#3
zH0Q8PSv&lF${m(Ho_JQd__TTQk4{$cwQFsj>$n{=OwRPB63^l=nf!Bsv*qvs|FK9F
zQhNGK+18ra#}iMo8x}RloV$LEG(i)J3a^gzg4UBImhP%PIDF+0NHh07k(F5zl<u7N
h@8I3|n$jejCAhu$;rC|vxDD2ym{=$k)Q2XU{{rV#!#V%}
new file mode 100644
index 0000000000000000000000000000000000000000..11b39906bd598ccf9b74b6932c7271d8f6c6730c
GIT binary patch
literal 1404
zc%17D@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjk|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+m@_g%B1$5BeXNr6bM+EIYV;~{3m8Da#=fE;F*!T6L?J0P
zJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRzL%CQ%e#R
zDspr3imfVamB8j&0ofp7eI*63l9Fs&C5WRUd;=7m^NUgyO!bU)lMM_F70k@^3{6bU
z%nWrDj0_Bo^bLT>OxMuF%GAut$Xo#mlz_GsrKDK}xwt{?0`hE?GD=Dctn~HE%ggo3
zjrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<;L6O-~wOKg>t
zU|z^A@b!fooL3ADC}5E3S0onb8|oS8=jQ6eR2P>7rKaImT^v$bkg6Y)TAW{6lnjiI
zG-V{K@M{Gr1iHq`zbF$JDTz5Q`N^fZsd*)yF1AWQ8NHOu6e~9ib2mdna}xt|BLg!F
zLqiJ#3u8AYBTGk1XICR5V?&r3*z_8iTbdhKx>*{!7`Pf5x*9neJ2_gKxEPumTN;{L
z7`VXndgc|EB<3Zj!t`b$^jhH6Yvo*&npl!w6q28x14{t`8Tlpo#Toep3eLf13L3tN
z$(eZ|0ZmW@LEV~Klv$RV;#QQOs{jsRt4u5|09x#1?(E`X;AUh9_PLRfql<xyg_)b9
zfuo6~sS;Fg3OS*s4|I$^T5^F20n;Fe2~Ye$4m|s$<^l6e5ioNEzj@rvz`(f5)5S5Q
z;?|yNXZ;R22sES%p6d5{`aR*x5;kWa138<@tIReHo$DVsSA3AI;izTc7wDI>kuWjr
z(nxSfnzdlUvMJNbUh8PKRwVLw`|k6Z@g`-)%jw&W6w1ta?wV$*(BdJn$b;phqR2%7
z(QIEq-bve^zn!F`T6CaKs9}C%QF+0(dB<;^Tf=78r<r<l{)wAx2WHHea_{&buJc`g
zWYQPa9&KA_H8Z43sNlNV632oY%M+q+9EhE`vR8_wQtHE+6DvyRzgj$5Pk-+3@M+?y
z7unjJQ@A4?be42Y+3+p)NLR^{vtjR(cJ2SYNG)Qo-CD7y4qB)CgqE%R8LAhPBfepq
zZc@_+A(c(b(yGlZrF`CR+GF5*bsDGJ^s3H)JL+M<!O63N@|m1jH_kHq>ebA0<9=bo
zQS-Gif@@z2Zu;qdS?Ss}m&{);wWMZT3K3uS^6AINXO)f^KaT0w;#Uu^u1uWOmZ_7>
zr#4HkJ;-w6tW$gWnZM+p_I8<6w{Vu1^Iaydmsc)d5n8?S(G}@N4#xT!4BfiFcm9%}
zRb=bC^WI5`vI(Z;OP!Z=+I-wI`T4)lkJ<+q_yaG8vpss$4=N8mUHx3vIVCg!0EAZd
A<^TWy
new file mode 100644
index 0000000000000000000000000000000000000000..f51eb1c4caeeeea406c8df1ace5f2e7cbbcd1bff
GIT binary patch
literal 1723
zc$}S8Yfuwc6b_)&f{0WGc~n?eQBg^DlaQB2N!SDeB;^qvQ}MAR8<LV_!)76YP92}M
zJ{XY>DvAY*QmrUpt(FNWIwKgggA7!8j59J8!4ZWDBB&$XP~vntjz4;5ckeytp6@&7
zo_o&h-ULOomq(xnjYjj5#UM%43_0F8?$kHUb#f0i1(1?-G8xy97L>qfA~l|g0Wt%c
zg(YFAIzPvbt)<c2v^r%vnJ$kPsBi-vb=c6Y1{2LO)~>gjP*pZY0-0Er&L{+jZP!3R
zrxt=~5pqawio&$Im;wSzE>I{{1=%XT8eG2)SZftf1O|*m0joi8Gz+XkaGF;@tsQCx
z2uz!h*+TH2pwi_DKom}3Km?r?u7Y3~;Be?LJA%W3R|8B4W-=h^;e^9%K?Fy@<N`AT
zq`VPojUWk;&iJAvA*dxulYqgnSS)l4i;fdn44BX7J2;rkaLOXwoNpviYq-(8#L0kQ
zW)-0`kviN6IAk;v&n1N*=sbeKB$vM@HkxM=MWu{kMNJHt4lxV{hSS<iCSjV7Tbq^n
zCXA7UnekjgMcs#H$-i8E9O^Knq7i&S=%`CU^$4!YHDE?kh6q7whpyJC1yUYY3d3AB
z#AQMp9t`s!9!n}_@<se836sf!og5#+ve<kcBIZe81d_n8gehW)MSL~_N3i&C1P?--
zSeemGqDB?w#Of$4lgsBqA_)2@RuDyCD2WqF9M?N5AVG_hxLJ#vfT&~+utJWibVi3F
z%yB_8v0{WS4^vAC+yG2xSfKkr1e9YjHwr-@DHEPPIg=?uAcV(}iXai29|6u_)&D1J
z3@RALf6B$FqH55wd|&*O@V<R8Bh@nm)f`E)ksCCc>k}CwQd)b4jtRBCBHxy*yy1%j
zkBc*WLkmL+Vd>rZwY5pLbqnKyRxJjrYUf`U&+^>wo2gsux39QWYM(uKj-OwTf2UaD
z>CNtYPJC^#tqHk$rMsfqcJ5(Q<IbQ7^U$5zHB;ZPMz?Y;8QH(Tu1~LSyWJF76L-C{
zkT+nhK@$R$@lQV6@g?AW?*x!V`((=cuK(AwdrSFo8x$84bNa8HYpgeG`nqy|(<hXP
zOWbVp%I|OQzqPIIRBdo?U5Gtw7KY?sep(aeZ|M14b*CG(bshY9J8@STZy%Z`ViBoT
zUsY7(jI6ZnJltHa8`lK7*C_Ke1N%B2NV#5vG5PLcLGw?}6<2xOtd>-(zpIZt%HBc*
z8HAH2T-I~-VNrAOjRI{=v;9tbUzOIE`B(4+&*hjq|M>9R`$I016)AVk*2fF?C7<!}
zu5}}l=Ux(($7|3IpTSQ(OW7mCwvy|N#AQDfEsEZ<bh&Ggze~|lS*4{dwMOx*tnpUK
z#@CO|Z@Bp8-J7Sq1JBDFT#m?#*#iDLvnbapBYopMp1wL5Qo2N5`J?^8_?4p5@|+B?
zcNrMCC^Wmmw(O{Hw`b?(<%&w4HS`y+7*Uz@5HhM&`s}G6d^RA7l=Zmp>Wn<zO4o#E
zo}H}=e0ezA`$)-x*xT)^!>ViU1+Px5YHx%KgNM=r&$qbgy|rXy<y3T~|MruYR432R
zNjRPO>fYI#aUHz}H=$wd)@{<X`<ov$yd4`8ANb?X%k6dc)}aPHt0K`(B}m`0Rk@)1
zO!a8&BQy7VY0J1*N=%3L&7NE8#q8bB4vh2}Mc*FlH$YvAQYjjj8b44L()^g0;?_R?
zgXLX75cJx1!M-tu%)PynhbSn%^88I@hh%|W*7l6*7ifTA#{SUVFIT;cZd=hYXq@29
z6U<t9x+!DfnBOJWwzsi4UiuS-d8$(}flW_F;i}YPpNU?3#z;_MEa6^|;yzU}m^&HP
ZMC%AR^`fC*?3LqpB9kbP3*s$1{su&5nt%WR
new file mode 100644
index 0000000000000000000000000000000000000000..6af568b6ff17cf89f84adc2254652ae0743973aa
GIT binary patch
literal 1596
zc%17D@N?(olHy`uVBq!ia0vp^S|H591|*LjJ{b+9BuiW)N`mv#O3D+9QW+dm@{>{(
zJaZG%Q-e|yQz{EjrrIztFlS_jM3hAM`dB6B=jtVb)aX^@7BGN-jeSKyVsdtBi9%9p
zdS;%j()-=}l@u~lY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?G$V(tbhjOrj{fs
zROII56<bx<DuK<l0<uBE`br95B_-LmN)Sgy_y#CA=NF|anCcnpCL0(UDwvt+8Jd`y
znHlOR7#SEE=^Fr%nXaLUm8qGPk+}jCC;@FNN=dT{a&d#&1?1T(Wt5Z@Sn2DRmzV36
z8|&p4rRy77T3Uk4Ff!5ws?aU2%qvN((9J7WhMC}!TAW;zSx}OhpQixgCnn{Wme?vO
z!Mu=L;Oh%FIIkEQP{1J5uShJ=H`FuG&&}0`sV*)FN=?JBx;Uh=AXPsowK%`DC>a<Z
zY05}e;nxaM2y~5=e^DkdQWA4q@{>z*Q}aqZU2K(rGI}YQDOPS4=5B_D<|YQ_Mh0dU
zhK3df7RGK)MwX72&aOsA#)dF6u<3Plc6M}hF)=Z8F*GqWbTx7`c5<{daWOPCwlp-g
zFmQqC^~@_SNz6-5h3U;i=rzWx*UGslHL)bWC?r2W2bKZ?GV)9Ei!<^I6r6+26f}Gj
zlQZ)`0-B%*g1R-eD6=dz#jPkmR{<QtR+(5_;9~6RWbW+ZV&G<E2==*=k)w-&i-nn+
zqk*G|rKu8BZwfh~rVn(CK3Z~t2?5g}hzU>pKn^_nq~-zhOc5}1=&i1=W?*2-@^o<w
zskrrKrfr5upuq9xd++AF(<`rA&@`Rn)Le~BCb9H|N{bSdJA9kUx+0>Mc_hwNDz&;e
zWuvel%fa;m0TC(+LV+p@bu67p*G#uh|5|JDx$M06>g#7F>il`Q>#yPav}fh-TegZ-
zJruNM?)qr>)W*)(uJxy@;sx37$HbRq?QYlS){bb5O1ye$ySef6<$XQEFaCv3K3l$E
z4};F}&(~g_aCs>ZTClq>bwZuF&i>g4^&|z98>d~m(eUsjXXcx}olkbNIeBcmoB!g^
z!Sb`orDA>lvrjilIlG_Vyhv&F3g%F+<y<^r(-W^}ug#dI#gu!lzUsrHBNuiiAF7&k
zb)$FgGrN2Bemx=AnP*&{ad<{unrZCuJx6Vpb*)PhGt8c$WPE|;bE8Cc*7g6Fh5i1#
zd3Cn;WNz%uU{>P;dly;1kKtX;e)?-5=Oj@Lzw)n^b@tUCuU&lY=hepcDtQ^}yiI$=
z_6a<AuPwi)MLyr+!nLk%v$VIk|K$C1N$!01?cj}~nL0-2MZI#4ym)gm<8;~e**;!I
z)kO<tnP#Y|UVAC*k>}NQmgU+GzVe_+IxhZ)CZ0Okwq?@vDICdhZvM_mIo>B{#&|L1
z?RP2CtaK6WHS_RnjK2IlNGQ<tcah@5T~62kd3(vlMZSA=Ha$Pwym88%Js)y*MXl&%
z+N>=*XVI(Ezb?Jmx_h~i=FQvj(!rfy8}2Hw?vGkgzGTVI(8`aW@}~s_NxpgQ;kjv5
z2D8DQ+5?{dolBRna7=nTwePNiDo5swrfoZoG!M?@I^>ns#P5{$```L0I@_Kde)#BP
wo57hSE>fSZX5OAO$yZNx?<f1q@{DW@Z(3y)8J_Q(2P)4!UHx3vIVCg!03)hhssI20
new file mode 100644
index 0000000000000000000000000000000000000000..2812aba7ad8022944496bbab3858f97705aa454e
GIT binary patch
literal 1343
zc%17D@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zk|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+m@_g%B1$5BeXNr6bM+EIYV;~{3m8Da#=fE;F*!T6L?J0P
zJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRzL%CQ%e#R
zDspr3imfVamB8j&0ofp7eI*63l9Fs&C5WRUd;=7m^NUgyO!bU)lMM_F70k@^3{6bU
z%nWrDj0_Bo^bLT>OxMuF%GAut$Xo#mlz_GsrKDK}xwt{?0`hE?GD=Dctn~HE%ggo3
zjrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<;L6O-~wOKg>t
zU|z^A@b!fooL3ADC}5E3S0onb8|oS8=jQ6eR2P>7rKaImT^v$bkg6Y)TAW{6lnjiI
zG-V{K@M{Gr1iHq`zbF$JDTz5Q`N^fZsd*)yF1AWQ8NHOu6e~9ib2mdna}xt|BLg!F
zLqiJ#3u8AYBTGk1XICR5V?&r3*z`I&J3BhMm>3wk7@8Owx*9neJ2_gKxEPumTN;{L
z7`VXndgc|EB<3Zj!t`ds^%}e3)obNkl$uzQUlfv`p94z)0U7xv`NbLe1q#l=W(pd<
ziOHFHAOTHK1VP=JT9jFqn&MWJpQ`{4VXI6mE^sk+buxE$aWQZ+G6ehF$jH&fz{SGM
z&C$To#L`p=syBt4P}2uGMjtJ?z=VKl5X6Khejo>)eNyv)d8P=MIUd%$-^;+jnCt1{
z7*cWT&9uFK%>g0}`b+<KI{G@dzhW^gEG)io^$2^xSIs%K4C(U^U1c{Y+}b?5+dDfc
zDp|4ZpT=H=_SZWjy7dbpraa*`sNH$z^TgF0iV<_C2kjOx6cFDyfo<Y)2eA`ATzh|a
zZ=bhxTaDU_X<Hk<AN*JOdqL;=*V8V2Qaq~ev~cOerVFaAc}8s0>My*Dy{wnNPDJX!
zN9AUPSjB>!)n_IgGI?@%#oAI^uf!AX6H7eb@)h;4ba*XcS<-)JN^sX3#pol41V1g%
zk$$5z`^X`QO3m<!YO^<yXFjg1v+8;?;VirR^xOAkr4oKevMmYDdQo=u;TOx~n`;!_
z29!&OwpRviP+I;rz$#4k*axYdQSDm}OC0+zD^yld`>SGkvv7c4=CX6Y)x&qUr?yAs
zvCp?rpBr>`OLJ)Z<mFR7a!x4A$Xl`B%BPVt@Iu*)O{)&C6l&{xS*p=`>0`OoAIs_M
qbkDC8nSN)@5}WDQYCruGN?_PNdsbrRug#!>k-^i|&t;ucLK6Vwtl{wh
new file mode 100644
index 0000000000000000000000000000000000000000..d706e4b0108550f69bd11674ccd6460929c32e9a
GIT binary patch
literal 1864
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
J%Q~loCIIQ<$65dY
rename from mobile/android/base/resources/drawable/menu_level.xml
rename to mobile/android/base/resources/drawable/menu_level.xml.in
--- a/mobile/android/base/resources/drawable/menu_level.xml
+++ b/mobile/android/base/resources/drawable/menu_level.xml.in
@@ -1,12 +1,23 @@
+#filter substitution
 <?xml version="1.0" encoding="utf-8"?>
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-<level-list xmlns:android="http://schemas.android.com/apk/res/android">
+<level-list xmlns:android="http://schemas.android.com/apk/res/android"
+            xmlns:gecko="http://schemas.android.com/apk/res/@ANDROID_PACKAGE_NAME@">
+
+    <item android:maxLevel="1">
+
+        <selector>
 
-    <item android:maxLevel="1" android:drawable="@drawable/menu"/>
+            <item gecko:state_private="true" android:drawable="@drawable/menu_pb"/>
+            <item android:drawable="@drawable/menu"/>
+
+        </selector>
+
+    </item>
 
     <item android:maxLevel="2" android:drawable="@android:color/transparent"/>
 
 </level-list>
--- a/mobile/android/base/resources/layout-xlarge-v11/browser_toolbar_menu.xml.in
+++ b/mobile/android/base/resources/layout-xlarge-v11/browser_toolbar_menu.xml.in
@@ -34,27 +34,27 @@
         <Gecko.TextSwitcher android:id="@+id/tabs_count"
                             style="@style/AddressBar.ImageButton"
                             android:layout_width="52dip"
                             android:layout_height="wrap_content"
                             android:layout_marginTop="8dp"
                             android:layout_alignLeft="@id/tabs"
                             android:gravity="center_horizontal"/>
 
-        <ImageButton android:id="@+id/menu"
-                     style="@style/AddressBar.ImageButton"
-                     android:layout_width="56dip"
-                     android:layout_alignParentRight="true"
-                     android:gravity="center_vertical"
-                     android:src="@drawable/menu"
-                     android:contentDescription="@string/menu"
-                     android:background="@drawable/action_bar_button"
-                     android:paddingLeft="14dip"
-                     android:paddingRight="14dip"
-                     android:visibility="gone"/>
+        <Gecko.ImageButton android:id="@+id/menu"
+                           style="@style/AddressBar.ImageButton"
+                           android:layout_width="56dip"
+                           android:layout_alignParentRight="true"
+                           android:gravity="center_vertical"
+                           android:src="@drawable/menu_level"
+                           android:contentDescription="@string/menu"
+                           android:background="@drawable/action_bar_button"
+                           android:paddingLeft="14dip"
+                           android:paddingRight="14dip"
+                           android:visibility="gone"/>
 
         <LinearLayout android:id="@+id/menu_items"
                       android:layout_width="wrap_content"
                       android:layout_height="fill_parent"
                       android:orientation="horizontal"
                       android:layout_toLeftOf="@id/menu"/>
 
         <RelativeLayout style="@style/AddressBar.Button"