text:
WD-40 (WDFC) Q2 2019 Earnings Call Transcript
Motley Fool Transcribing, The Motley Fool
Motley Fool April 10, 2019
Logo of jester cap with thought bubble with words 'Fool Transcripts' below it
Image source: The Motley Fool.
WD-40 (NASDAQ: WDFC)
Q2 2019 Earnings Call
April 9, 2019 5:00 p.m. ET
Prepared Remarks
Call Participants
Prepared Remarks:
Ladies and gentlemen, thank you for standing by. Good day, and welcome to WD-40 Company second-quarter fiscal-year 2019 earnings conference call. Today's call is being recorded. [Operator instructions] I would now like to turn the presentation over to your host for today's call, Ms.
Wendy Kelley, director of investor relations and corporate communications. Please proceed.
Wendy Kelley -- Director of Investor Relations and Corporate Communications
Thank you. Good afternoon, and thanks to everyone for joining us today. On our call today are WD-40 Company's president and chief executive officer, Garry Ridge, and Vice President and Chief Financial Officer Jay Rembolt. In addition to the financial information presented on today's call, we encourage investors to review our earnings presentation, earnings press release and Form 10-Q for the period ending February 28, 2019.
These documents are available on our Investor Relations website at investor.wd40company.com. A replay and transcript of today's call will also be made available at that location shortly after the call. On today's call, we will discuss certain non-GAAP measures. The descriptions and reconciliations of these non-GAAP measures are available in our SEC filings, as well as our earnings presentation.
As a reminder, today's call includes forward-looking statements about our expectations for the company's future performance. Of course, actual results could differ materially. The company's expectations, beliefs and projections are expressed in good faith, but there can be no assurance that they will be achieved or accomplished. Please refer to the risk factors detailed in our SEC filings for further discussion.
Finally, for anyone listening to a webcast replay or reviewing a written transcript of this call, please note that all information presented is current only as of today's date, April 9, 2019. The company disclaims any duty or obligation to update any forward-looking information whether as a result of new information, future events or otherwise. With that, I'd now like to turn the call over to Garry.
Garry Ridge -- President and Chief Executive Officer
Thanks, Wendy. Good day, and thanks for joining us for today's conference call. Today, we reported net sales of $101.3 million for the second quarter of fiscal-year 2019, which was flat compared to the second quarter of last year. Net income for the second quarter was $15.9 million, compared to $14.8 million last year, reflecting an increase of 7% year over year.
Diluted earnings per share for the second quarter were $1.14, compared to $1.05 for the same period last year. Now let's start with a discussion about our strategic initiatives and the brands that support that. We aspire to drive our consolidated net sales to approximately $700 million in revenue by the end of fiscal-year 2025. And to do this, while following our 55/30/25 business model, we'd like to remind investors that these long-term targets are guideposts, not guidance, but our tribe continues to work diligently on programs and initiatives that will help us successfully reach our 2025 aspirations.
As a reminder, we refer to the brands that are going to get us there as our 2025 brands. They are WD-40 multi-use product, WD-40 specialist, 3-in-one, WD-40 bike, GT85, 1001, Spot Shot, Solvol, Lava and no vac. Our 2025 brands are our core strategic focus with the primary growth engine for our company.
Strategic initiative No. 1 is to grow WD-40 multi-use product. Our goal under this initiative is to make the blue and yellow can with a little red top available to more people in more places, who will find more uses more often. Our goal under this initiative is to grow WD-40 multi-use product to approximately $530 million in revenue by the end of fiscal 2025. In the second quarter, sales of WD-40 multi-use product was $78.4 million, down just under 1% compared to last year.
The slowness was driven almost entirely by events in our largest market, the United States, which I'll discuss in greater detail in a moment. Sales of multi-use product grew in nearly every other market during the second quarter, driven by geographic expansion and continued innovation. As part of this strategic initiative, we continue to introduce WD multi-use product into new markets, targeting increased growth and higher availability around the globe. During the second quarter, we continued the expansion of our WD-40 EZ reach flexible straw, which is now available in over two dozen countries, and we will continue to roll it out into new countries all around the world.
Strategic initiative No. 2 is to grow the WD-40 specialist product line. In the second quarter, sales of WD-40 specialist were $8.1 million, up 8%, compared to the second quarter of last year. This continues to move the company toward the goal for this initiative, growing the product line to approximately $100 million in revenue by the end of fiscal 2025. We are optimistic about the long-term opportunities for WD-40 specialist, however, there may be some volatility in sales levels along the way to the timing of promotional programs, the building of distribution and various other factors that come with building out a new product line.
Strategic initiative No. 3 is to broaden the product and revenue base. Strategic initiative No. 3 includes maintenance products like 3-in-one, WD-40 bike and GT85, but it also includes such brands as Spot Shot and Lava in the Americas, 1001 in EMEA and no vac and Solvol in Asia Pacific. We believe we are on track to reach a combined revenue for these products of approximately $70 million by 2025. Sales under this strategic initiative were $12.6 million this quarter, up 5% compared to last year. Primarily all of the growth was attributable to strong sales of 1001 Carpet Fresh in the U.K. due to the favorable impacts of some digital marketing windfalls in the U.K. that were associated with this brand.
Strategic initiative No. 4 is to attract, develop and retain outstanding tribe members. Our goal under this initiative is to attract, develop and retain talented tribe members and to grow tribe member engagement to greater than 95%. We recently announced the addition of Anne Saunders to our board of directors. Anne's deep functional expertise, spanning all channels of marketing strategy and brand management make her a valuable addition to our board. Anne's addition to our board also reflects our continued commitment to cultivate diversity in the boardroom.
Not just because it's the right thing to do, but because we need to have a board that can help, guide and shape our business to meet our commercial needs from San Diego to Shanghai. Additionally, I'm happy to share with you that we plan to start the renovation and build-out of our new office in Milton Keynes this month, and we expect to move the tribe located in the U.K. into the new building in the fall of 2019.
Strategic initiative No. 5, operational excellence. Our goal under this initiative is best summarized by one of our core values here at WD-40 Company to make it better than it is today. Using our 55/30/25 business model as a framework, we measure ourselves against this operational excellence initiative. With that in mind, I'm really excited to share with you an innovation that we've been working on for quite some time that will make our Smart Straw delivery system better than it is today.
First launched in 2005, our original Smart Straw delivery system has been a success story for us. Leading our value to make it better than it is today, we've evolved Smart Straw into a new product that we believe will create a positive lasting memory across the brands, across all trade channels and across all geographies. If you turn to Page 6 in our earnings presentation available on our Investor Relations website, you can see a photo of this innovation. Our new delivery system is the first of its kind product.
Like our original Smart Straw, it has a permanently attached straw, so you'll never lose the straw again. But it also has a lockable toolbox proof design, which reduces accidental discharge, has a better actuator, making it easy to spray and a more ergonomic and durable design. In addition, our significant investment in this delivery system has enabled us to optimize our global manufacturing, which will enhance our operational efficiencies and generate enhanced value for our shareholders. Finally, we've applied for a combination of design and utility patents that we filed around the globe to protect this innovation.
We expect to roll out this new delivery system globally starting in the second half of 2020. That completes the update on our strategic initiatives. So let's move on to the details of our second quarter, starting with sales. As I mentioned earlier, consolidated net sales were $101.3 million in the second quarter, flat versus the second quarter of last year.
Translation of our foreign subsidiary results from their functional currencies to U.S. dollars had an unfavorable impact on sales in the second quarter. On a constant-currency basis, net sales would have been $104.6 million in the second quarter, up $3.3 million or 3% compared to last year. Before I discuss what's happening in individual segments, I'd like to take a moment to remind investors that though we do not consider our business to be a seasonal one, it's common for our sales results to fluctuate one period to another due to factors that include the level of promotional activities, specific programs being run at customer locations, the timing of customer orders or the impact of new product launches.
This is a normal part of our business and we are accustomed to these types of fluctuations and manage them as part of our normal base business activities. It's when something out of the ordinary happens that we will discuss the event in much greater detail here with investors. So now let's start with the Americas. Net sales in the Americas, which includes the United States, Latin America and Canada, decreased to $43.9 million in the second quarter, down 2% from last year.
Year to date, net sales in the Americas were up 1% compared to last year. Second-quarter sales of maintenance products decreased by 1% or $300,000 in the Americas, entirely due to lower sales of maintenance products in the United States. Maintenance product sales in the United States decreased 3% in the second quarter due to a 6% decline of WD-40 multi-use product in the country. Now let's talk about something a little out of the ordinary that happened in the U.S.
market that's impacting this quarter results. I often describe disruptions to our business as either an event or a trend. This quarter's decline in sales was driven by two events that took place in the United States. The rotation of products that periodically occurs in warehouse club channels, as well as some delayed promotions with a key U.S.
customer. Product rotation is a normal occurrence in the warehouse club channel, driven by the fact they have limited amount of shelf space for limited number of brands. Rest assured, our U.S. tribe are working diligently to ensure we are rotated back in.
The delayed promotions at a key customer are directly tied to the proactive price increase we put in place last June to offset rise in commodity prices. Unfortunately, pricing decisions like the one we made last year can be disruptive. Without going deep into the specifics of this event-driven decline in sales, I will share with you that at times our long-term business decisions don't always excite our customers and may result in unanticipated loss of promotional activity. Despite this fact, we must continue to make decisions that support our long-term goals of our operation and our organization.
That resolution has taken it longer than we would have liked. This key customer event has been resolved and we believe the United States is positioned for a solid second half of this fiscal year. Partially offsetting these declines was a 25% increase in the sales of WD-40 specialist in the Americas. In addition, maintenance product sales were up 4% in Latin America and 11% up in Canada, mostly due to the timing of customer orders, expanded distribution and successful promotional programs in both regions.
As a reminder, our maintenance products, exclude our home care and cleaning products. Sales of our home care and cleaning products in the Americas decreased 14% in the second quarter compared to the prior year, largely due to lower sales of 2000 Flushes and Spot Shot in the U.S., which declined 27% and 9%, respectively. The decline in sales of 2000 Flushes was due to some temporary loss distribution. We continue to consider our home care and cleaning products, except those listed as 2025 brands, as harvest brands that continue to generate meaningful contributions in cash flow, but generally expected to become as a smaller part of our business over time.
In total, our Americas segment was 43% of our global business. Over the long term, we anticipate sales in this segment will grow between 2% and 5% annually. Now on to EMEA, net sales in EMEA, which includes Europe, the Middle East, Africa and India, increased to $40.9 million in the second quarter, up 3% from last year. Year to date, net sales in EMEA were up 7% compared to last year.
EMEA's reported results in the second quarter were negatively impacted by foreign currency exchange rates. On a constant-currency basis, sales in EMEA would have increased to $43.5 million in the second quarter, up 10% from last year and in line with our targeted compounded annual growth rate for this segment. We experienced a $500,000 favorable transaction-related impacts in EMEA this quarter, which slightly offset the translation-related headwinds we are experiencing. As you know, we sell into EMEA through a combination of direct operations, as well as through marketing distributors.
Our EMEA direct markets account 68% of the region sales during the second quarter of this year. In U.S. dollar sales in the direct markets were $27.6 million, flat compared to last year, however, on a constant-currency basis, most of our EMEA direct markets did see growth due to increased sales of WD-40 EZ reach flexible straw. In addition, sales in the U.K.
direct market increased due to higher sales of the 1001 Carpet Fresh as the result of favorable impacts from some digital marketing windfalls associated with the brand. Net sales in our distributor markets, which accounted 32% of the region's sales, increased 11% during the quarter to $13.3 million. This increase was primarily due to the increased sales of WD-40 multi-use product in the Middle East due to a high-level promotional activity. Also contributing the increased sales was the distribution of WD-40 EZ reach flexible straw in our EMEA distributor markets.
The EMEA segment made up 41% of our global business. Over the long term, we expect sales within the segment to grow between 8% and 10% annually. Now on to Asia Pacific. Consolidated net sales in Asia Pacific, which includes Australia, China and other countries in the Asian region decreased to $16.5 million in the second quarter, down 1% from last year.
Changes in foreign currency exchange rates had an unfavorable impact on sales in the region. On a constant-currency basis, sales in Asia Pacific would have increased to $17.1 million in the second quarter, up 3% from last year. In Australia, net sales were $4.1 million in the second quarter, down 7% compared to last year. Changes in foreign currency exchange rates had a negative impact on sales in the region.
On a constant-currency basis, sales in Australia were up 1% compared to the second quarter of last year. In our Asia distributor market, net sales were $7.5 million in the quarter, down 8% compared to last year. This decrease was primarily due to lower sales of WD-40 specialist due to the timing of customer orders in conjunction with the planned transition to a new manufacturing partner in the region. Though the transition was meaningful in the second-quarter sales of WD-40 specialist, we do not believe overall sales volume of WD-40 specialist was materially impacted.
This is because in anticipation of this planned transition, our customers in the region purchased extra product in fiscal-year 2018. A new manufacturing partner is now in place and we do expect not to have any further manufacturing related disruptions in the region. Our Asia distributor markets are not impacted by currency since we sell in U.S. dollars in the region.
In China, net sales in U.S. dollars were $4.8 million in the second quarter, up 19% compared to last year. On a constant-currency basis, sales increased 26% compared to last year due to successful promotional programs that were conducted in the second quarter of this year and the continued increasing of our base distribution. We remain optimistic about our long-term opportunities in China, although we expect a lot of volatility along the way due to the timing of promotional programs, the building of distribution, shifting economic patterns and varying industrial activities.
The Asia-Pacific segment made up 16% of our global business. Over the long term, we expect sales in the segment will grow 10% to 12% annually. So that's a wrap up of my section. I'm going to hand over to Jay now, and who will continue with a review of the financials.
Jay Rembolt -- Vice President and Chief Financial Officer
Well, thank you, Garry. Let's start with a discussion about our 55/30/25 business model, the long-term targets we use to guide our business. As you may recall, the 55 represents gross margin, which we target to be at 55% of net sales. The 30 represents our cost of doing business, which is our total operating expenses, excluding depreciation and amortization.
Our goal is to drive our cost of doing business toward 30% of net sales over time. And finally, the 25 represents our target for EBITDA. First, we'll look at the 55, our gross margin. In the second quarter, our gross margin was 55.4% compared to 55.1% last year.
This represents an increase of 30 basis points year over year. The effective sales price increases, which we've implemented in all three trade blocks over the past 12 months positively impacted gross margin by 120 basis points in the second quarter. Sales and exchanges and other miscellaneous costs positively impacted our gross margin by 60 basis points, driven primarily by favorable product mix changes, primarily in our Americas and Asia-Pac regions. Also, positively impacting gross margin this quarter by 20 basis points was lower warehousing, distribution and freight cost in the Asia-Pacific segment.
And finally favorable changes in foreign currency exchange rates had a positive impact on our gross margin of about 20 basis points. These favorable impacts to gross margin were partially offset by changes in major input costs, which negatively impacted our gross margin by 120 basis points this quarter. Approximately 70 basis points came from increased cost of petroleum-based specialty chemicals, while the remaining 50 basis points came from higher cost associated with aerosol cans. As a reminder, there is a delay of about 90 to 120 days or more before changes in raw materials impact cost of goods due to production and inventory life cycles.
The average cost of raw materials that flowed through our cost of goods sold in the quarter were higher this year compared to last year, and this put pressure on our gross margin in all three trade blocks. Also negatively impacting gross margin in the second quarter were increased advertising, promotional and other discounts that we give to our customer, which negatively impacted gross margin by 70 basis points compared to the prior-year quarter. As a reminder, our long-term gross margin target of 55% is not contingent upon commodity prices staying at any particular price point. We cannot control global market dynamics, but we can continue to be focused and deliver and managing the rest of our business, so that we will maintain gross margin at or above 55% over the long term.
Now I'll address the 30, our cost of doing business. In the second quarter, our cost of doing business was approximately 34%, which is similar to the second quarter of last year. For the second quarter, 76% of our cost of doing business came from 3 areas. People costs or the investments we make in our tribe; the investments we make in marketing, advertising and promotion.
As a percentage of sales, our advertising and promotion investment was 5.1% in the second quarter. And then finally freight. The cost to get our products to our customers. Our objective is to have our cost of doing business closer to our target of 30% of net sales.
We'll continue to make necessary investments in support of our fifth strategic initiative that of operational excellence. Now this brings us to EBITDA, the last up our 55/30/25 measures. EBITDA was 22% of net sales in the second quarter, which is up from 21% last year. This completes our discussion on the 55/30/25 business model.
It's worth noting that we experienced a non-operating item related to foreign currency exchange gains that favorably impacted income before taxes. In the second quarter of fiscal 2019, we recorded foreign currency exchange gains of $1.3 million, whereas in the prior year we recorded approximately $300,000 of losses. A significant portion of these gains were related to a large repatriation from our U.K. subsidiary, which was transacted during the second quarter of this fiscal year.
The provision for income taxes was constant at 18.7% in the second quarter of this year compared to last. For the current year, our federal statutory rate is 21%, however, during the quarter, our income tax provision was favorably impacted due to excess tax benefits from the settlements of equity awards. We expect that our effective tax rate for the full year will be approximately 21%. Net income for the second quarter was $15.9 million versus $14.8 million in the prior year, reflecting an increase of 7%.
This resulted in diluted earnings per common share of $1.14 for the second quarter compared to $1.05 for the same period last year. Diluted weighted average shares outstanding decreased to 13.9 million shares from 14 million shares a year ago. Now a word about capital allocation, our capital allocation strategy includes a comprehensive approach to balance investing for long-term growth, while providing strong returns to our shareholders. We continue to return capital to shareholders through regular dividends and share repurchases.
On March 19, 2019, our board of directors approved a quarterly cash dividend of $0.61 per share payable April 30 to shareholders of record at the close of business on April 19. With respect to capital expenditures, in total, we expect to invest about $22 million this fiscal year in support of our fifth strategic initiative, operational excellence. In addition to our regular maintenance capex, we'll continue making investments to complete the renovation of our new facilities in Milton Keynes, and we'll also invest in some machinery and equipment needed to manufacture our innovative new smart straw delivery system, which Garry highlighted earlier. Based on today's closing price of $1 -- of $172.34, the annualized dividend yield is 1.4%.
And during the second quarter, we repurchased just over 30,000 shares of our stock at a total cost of $5.2 million under our current $75 million share repurchase plan, which was approved by the board in June 2018. At the end of our second fiscal quarter, we had $62.9 million remaining under the plan. So with that, let's turn to fiscal-year guidance. Uncertainty around foreign exchange rates, particularly the pound sterling and commodity prices and continuing to make it challenging to forecast our business.
However, we are reaffirming today our guidance and believe that if foreign currency exchange rates remain close to current levels for the remainder of the year, you can expect our net sales to come in in the lower end of our guidance range. And with that our guidance for the year. Net sales growth to be projected to be between 4% and 7%, with net sales expected to be between $425 million and $437 million. Gross margin for the full year is expected to be near 55%.
Advertising, promotion investment is projected to be between 5.5% and 6% of net sales. The provision for income tax is expected to be between 21% and 22%. Net income projected to be between $62.2 million and $63.2 million. And diluted earnings per share is expected to be between $4.51 and $4.58 based on an estimated 13.8 million weighted average shares outstanding.
And note that guidance does not include any impacts of future acquisitions or divestitures. That completes the overall financial review. Now back to Garry.
Thanks, Jay. In summary, what did you hear from us on our call today? You heard that global sales were flat in the second quarter as compared to last year, yet they were up 3% in constant currency. You heard that the impacts of foreign currency exchange rates reduced our global sales by $2.8 million in the second quarter. You heard that the sales of WD-40 multi-use product were down in the United States, but the surprising events we experienced, we believe United States is positioned for solid second half to the fiscal year.
You heard that global sales of WD-40 specialist grew 8% in the second quarter. You heard that we continue to increase distribution of WD-40 EZ reach flexible, and it is now available in over two dozen countries. You heard that we're working on an innovation that will make our smart straw delivery system better than it is today. You heard that we've added Anne Saunders to our board of directors.
And you heard that our guidance remains unchanged and we expect to end the year in line with our guidance. In closing today, I'd like to share a quote with you from Maya Angelou, "You may not control all the events that happen to you, but you can decide not to be reduced by them." Thank you for joining us on our call today. And we would be pleased to open the conference call to any questions.
[Operator instructions] Your first question comes from the line of Linda Ann Bolton-Weiser. Please proceed with your question.
Linda Ann Bolton-Weiser -- D.A. Davidson and Company -- Analyst
Hi. How are you.
Hi, Linda.
So can I just ask you about the innovation. I didn't quite catch all the elements that you said. In plain, simple English, non-technical terms, is it that the straws attached to the can whereas before it wasn't or can you just simply explain, and I didn't quite -- is it on page -- is there a picture on Page 6 because I'm not seeing the picture.
Yes. Sorry, it might be it's on Page 7 of the presentation, sorry. So what it basically is, Linda, it's our old smart straw was called smart straw 1. Smart straw 2 is a new developed smart straw that has a lockable feature on the top of the actuator.
It permanently attaches the straw, so you'll never lose the straw again. It sprays two ways. You flip it up to stream and down to spray. It's the first of its kind lockable toolbox proof design, which will reduce any accidental discharge.
There's a better actuator, making it easy to spray. It's more ergonomic, it's more durable and it has an improved spray pattern.
OK. It sounds like a lot. So when you talk about the rollout in second half fiscal '20, is that going to be sort of gradual? And what market would we expect first? And what channels, like, is it first in the U.S. home centers, like do you have any idea at all about how it might rollout?
It will definitely be in the U.S. first, and it will then, from there, rollout into Europe and across the world. We're not completely sure yet of which channels it will touch first. But we would expect it will take us probably 18 months to 2 years to convert the world.
It's not a minor conversion, but certainly we will start rolling it out with a complete swap out in United States.
And what would the price premium over what you have now? And how will the margins will compare to what you have now in the product line?
Being so far away from when we're about to rollout, we haven't talked openly and publicly yet about pricing, but we'll update you as we get closer.
OK. Sounds good. Then can I ask you, when you talked about the issue was being taking out one of the warehouse clubs in the U.S. Can you just comment in a general way, did they put another competitive type product similar to yours in there instead of you or did they just not put your whole category in there? And secondly, it sounds like until they try to get back in, does this maybe like a permanent loss for a couple of more quarters until you anniversary the loss.
Am I thinking of it the right way?
Two questions there. Firstly, they did not put another product in. This was not a competitive play. This is not unusual.
As you probably know, Linda, in the warehouse club, they have very limited floor space. And from time to time, they rotate products out to rotate seasonal products in. And this is not the first time it's happened to us. It won't be the last, I'm sure.
It happens with many products. I'm sure we've all gone to warehouse clubs to buy something that we bought last time that for some reason isn't there again. The major impact of which was really felt in this quarter because it was a promotional period in the same quarter last year. So we don't believe it'll have a major impact for the rest of the year.
And we'll be working as we've done before to regain and win back that floor space at a later time.
So you're saying it was actually some kind of a program that ran for kind of like just one quarter last year, so it wasn't in for a multi-quarter period. Is that correct?
We are not always in all clubs, everywhere, all the year. And last year, at this time, we happened to have a comparable promotion that we didn't get this year because we're not in the club this year.
OK. All right. So as long as you feel, I mean, it sounds like you feel pretty confident that it was like this quarter was the impact. Am I reading that correctly?
This quarter is the majority of the impact, yes, the past quarter. Yes. As with the other thing that we described as well, which was the promotion of the key account, which are two different events.
Right. So in terms of the other item, just explain it again, how does that relate to the price increase? You're saying that they're just not running a promotion because you want to keep the price. I don't quite understand, like, can you just explain?
I won't get into -- in respect of the customer, I don't want to get into too much detail. But generally what happened is that when we went last year without price rise, as you well know, customers don't always open their arms and welcome us gladly with a price rise. So they do what great company should do, they try to do with the best they can for their end-user and good for them to do that. In one particular customer, they decided that they would help us understand more their discomfort with us doing a price rise, hoping that we would not do the price rise by suggesting that if we did rise our price that it would be unlikely that they would be as enthusiastic as they have been in the past around promoting our product for a period of time.
One may call that punishment, but anyhow. So although we weren't at anyway de-listed from this customer. They decided that they were going to engage in a normal level of promotion. So there was not as much of our product in their store, and particularly, it impacted us in the quarter.
Now since then that the issue has been resolved, then we're back on the promotional calendar and we'll be back in full swing in the second half of the year. So it just took a little time.
OK. And then I'm just curious, we've had some weather conditions in the U.S., like some very rainy, wet type weather in various regions. Would that affect increased consumption or usage of WD-40 product?
When there's more moisture and more oxygen, couple of things happen, one of them is rust. So yes, we would think that there are periods of time, but it's very hard for us to be able to measure that spike, but we are always used as a product do rejuvenate wet engines and when that sort of opportunity comes, we do turn up the volume in talking about those uses among our end users. So yes, I think, different weather conditions could have different -- but weather doesn't play into us as a huge needle mover.
OK. And I guess, just one last one for me. You gave your usual good rundown on the gross margin different impacts there. Well, in terms of the oil and the can input the cost being up year over year, I'm looking at just the commodity cost trend and I'm seeing that maybe with the delay factor, those costs would start to be flat or down in your next quarter.
Am I looking at that correctly in the fiscal third quarter, we may see some moderation or actually down year over year instead of up on the cost?
We should be able to pick up some benefit in the third quarter. Your analysis is very similar to ours.
OK. OK. All right. I think that's I think that's all for me.
Thanks a lot, Linda. Have a good afternoon.
Thank you. Your next question comes from the line of Daniel Rizzo with Jefferies. Please proceed with your question.
Daniel Rizzo -- Jefferies -- Analyst
Just a follow-up on the last question. So with the recent surge in oil prices, although we've seen since the beginning of the year, I think, it's up 15% since the last call. Wouldn't that have a problem -- will have a negative impact later, not necessarily next quarter, but toward the end of the year and into 2020?
That will have -- yes. By the time we get into the later half of the year or the last quarter and early 2020, we should be experiencing some of those higher prices that we're seeing now.
And then you guys are talking about your 2025 brands and that was very helpful. But you mentioned 1001 Spot Shot and Lava and some others. Are they always part of like the core brands? I thought in the past that they weren't and that was more about the multi-use product, 3-in-one and some others. I was wondering if you've kind of added those recently or it's always been in and I just didn't notice it?
About six or nine months ago, we did get firm around what brands we were confident would be in the portfolio at 2025. The ones that are in that now are 2000 Flushes, X-14 and Carpet Fresh in some markets around the world. But we see that Lava and Solvol and 1001 in the U.K. and Spot Shot in the U.S.
are part include and 3-in-one and GT85 and WD-40 bike, which make up that whole other bundle in our expected 2025 brands.
OK. And then one more question. So I've noticed that your corporate costs have been trending a lot lower. Could you just provide color, is there a reason for that? I mean, is it timing or is it just something we can kind of extrapolate going forward?
Well, I think, we do have a very concerted effort on driving our overall cost of business down toward the 30. So I think, one, there's variability in timing throughout the year. But certainly as we look forward, our goal is to continue to drive down our cost of business. But I think, some of what you're noticing might be just some variability between quarters and between years.
OK. Thank you very much indeed.
Your next question comes from the line of Rosemarie Morbelli with G. Research. Please proceed with your question.
Rosemarie Morbelli -- G. Research -- Analyst
Thank you. Good afternoon, everyone.
Hi, Rosemarie.
I was wondering if you could give us a little more on how you got back into the customers good graces? Did you have to lower your price, except that not as much as they originally wanted you to?
No. We didn't resent on our price rise. I think it was us being able to show the customer that we are very supportive of their long-term goals, that we do bring significant innovation to the table, showing them how we are a very reliable on-time and full supplier that supports their gross margin return on inventory. Sorry -- and I think it just takes time.
Jay, what do you -- what's your...
No, I think, you're right, Garry, that it has a lot to do with just that ongoing partnership, and occasionally, it's not necessarily recognized at any given time. But we do a lot of work, understanding our customer's customer. And so when we have dialogue with our customers, we are able to share some of the insights that we gain from that. And that, I think, those are the kind of value opportunities that we were able to share with them.
Some of our competitors, the only thing they have to play with is price. And we think it's much bigger than price, it's about innovation, it's about insights into the behaviors of their end users, it's about the research, it's about innovation like smart straw and EZ-reach. We need to continue to have those conversations. And what we're about is driving category sales and profitability, not about one penny here, one penny there.
OK. So can we say that this was a surprise so to you that they would act the way they did?
No. I mean, we're often asked by our investor base why don't we just raise prices. And we don't raise prices because price rises are disruptive. And I would expect that every good buyer and every good retailer and if I was running a retail organization, and finally enough, I came from retailing many years ago, that's where I started.
Their job is to do their job and I respect the fact that they do their job and sometimes the decisions we make are ones that they would prefer we don't make and I respect that.
OK. And then, still on that same subject. Given the fact that oil prices have gone up, are you planning in instituting additional price increases in order to offset for this coming your way, even though you won't see it for a little while?
No. Oil prices are coming back now to where they were about eight or nine months ago, when we first implemented the price rise. So no, we don't have -- today, we do not have in the United States another immediate price rise in our plan. Although, around the world, we are taking pricing for different reasons from time to time.
OK. And then looking at the growth in EMEA, anything specific besides EZ-reach? And I missed it, if you gave us a growth rate for EZ-reach in that particular region?
We didn't give a growth rate individually, but EZ-reach is playing well. The U.K. market did very well, particularly because of the promotional activity that was generated through the product of no vac. But in transaction currencies, we're seeing most markets growing.
The U.K. is growing well. We're seeing good growth in Iberia and Italy. We're seeing good reasonable growth in France.
So overall, our business continues to track along at a reasonable rate in the EMEA markets, in line with the initiatives that we brought in place to continue to grow the business through to 2025.
OK. Great.
[Operator signoff]
Call Participants:
More WDFC analysis
This article is a transcript of this conference call produced for The Motley Fool. While we strive for our Foolish Best, there may be errors, omissions, or inaccuracies in this transcript. As with all our articles, The Motley Fool does not assume any responsibility for your use of this content, and we strongly encourage you to do your own research, including listening to the call yourself and reading the company's SEC filings. Please see our Terms and Conditions for additional details, including our Obligatory Capitalized Disclaimers of Liability.
Sainsbury CEO Exits With Stock the Worst Performer Among Peers
Xavier Rolet to Step Down as CEO of Billionaire Hintze's Hedge Fund CQS
Gold ETFs see longest run in a decade amid global tensions
Oil Declines on Concerns Asia Virus Could Reduce Demand
United CEO Munoz to step down
Home prices could rise in 2020, say experts


text:
America's Most Stressful Cities
Francesca Levy None
Every day overwhelmed Las Vegas residents flood the Stress Management Center of Nevada, looking for relief from their problems. They often complain of irregular work hours that keep them away from their families, and tensions that result from family health crises.
"Las Vegas has got its share of stressors," says Kathleen Grace Santor M.Ed., Ed.S., a therapist and yoga instructor who founded the center and has studied stress for 15 years. "The 24-hour day requires employees to work 24 hours a day. They're too busy, they have too much on their plate, and they're always hurried."
There's a good reason that Santor's business is brisk. Forbes found Las Vegas to be the most stressful city in the country, followed by Los Angeles, Calif., and Houston, Texas.
In Pictures: America's Most Stressful Cities
Video: Laughing Away Stress
Video: Top Cities To Find Online Love
To pinpoint the most stressed-out cities, we measured the country's largest metropolitan areas on six metrics that can either cause or be caused by stress: high unemployment, long commute times, long work hours, limited access to health care, poor physical health and a lack of exercise. (Click here for a detailed methodology.)
Frayed nerves in Sin City
To 36 million tourists per year, Las Vegas is a place to blow off steam and get away from the pressures of daily life. But residents of the city are far from carefree. The housing crisis and recession hit the city hard, and it currently has a 14.5% unemployment rate, the highest of all the cities we studied.
Making matters worse is how few people are taking steps to relieve the pressure. Physical exercise is known to reduce stress, but Las Vegans exercise less than residents of any other big city--a Centers for Disease Control and Prevention survey showed that nearly 30% of all residents hadn't exercised in the past month.
"Someone who exercises for 30 minutes a day is going to have a lower level of stress hormones in their bloodstream than someone who never does," says Santor, who adds that the searing Las Vegas sun and biting desert winds inhibit outdoor exercise. "Right now nobody is going to go out walking. It's not one of those nice places where it's conducive to go for a walk and then come back and cook dinner."
Health pressures in the City of Angels
Another busy city in a warm climate, Los Angeles, Calif., takes second place for stressfulness, in part because it has among the lowest scores for the well-being of its residents--22.8% of Angelinos reported that their health was less than good. Physical and mental health are closely intertwined, and it's hard to keep from stressing out when one's body is failing.
background-color:#d6e8ed;
padding:2px 10px;
border:1px solid #666;
.methodBox p {
If you like this story, read:
Housing Prices Are On The Rise, But It Doesn't Mean Much
America's Coolest Cities
Riskiest Cities for Homeowners
Workaholics keep Houston tense
The economy in Houston, Texas, is relatively healthy--unemployment is below the national average--but prosperity may come at a price. Houstonians work the longest hours of any city we ranked; an average of 41.2 hours per week.
Furthermore, that toil isn't always rewarded with a solid insurance package--the city also has the highest percentage of people without any type of health care, at 25%. Grueling work hours can add to anxiety and a lack of health care means that stress-related illnesses will go untreated.
In many cities, stress is the price locals pay for other advantages. In Houston, for example, workers may burn the midnight oil, but they are rewarded for it with median household incomes of $54,811 annually, 4.8% higher than the national average, according to the U.S. Census. Lots of stressful cities also have plenty to offer that outweigh the stress for some. Las Vegas and New York, for instance, were tied for "coolest" cities in a recent Forbes poll.
Keeping stress under control
Santor suggests that people who live in stressful places should take time to breathe, mentally rehearse their reactions to stressful situations, and learn simple meditation techniques to keep their anxiety from snowballing.
"There's a lot of ripple effect from fundamental stress factors," says Santor. "But there are so many simple things you can do to relieve stress that don't cost anything."
For more real estate coverage visit http://blogs.forbes.com/francescalevy.
Francesca Levy
I'm a reporter who has worked in business journalism for the past few years. In August of 2009 I joined Forbes to cover the residential housing market, luxury real estat...

redpajama_set_name: RedPajamaCommonCrawl


text:
Hustlers 4K Ultra HD and Blu-ray Review
Hustlers had some potential and the story its inspired by was interesting, however in spite of an impressive performance from Jennifer Lopez, everything else was pretty much a letdown.
Hustlers
Genre(s): Drama, Crime
Universal | R – 110 min. – $44.98 | December 10, 2019
Date Published: 12/08/2019 | Author: The Movieman
Directed by: Lorene Scafaria
Writer(s): Jessica Pressler (article "The Hustlers at Scores"); Lorene Scafaria (written by)
Cast: Constance Wu, Jennifer Lopez, Julia Stiles, Keke Palmer, Lili Reinhart, Lizzo, Cardi B
DISC INFO:
Features: Commentary, Trailers
Slip Cover: Yes
Digital Copy: Yes
Formats Included: 4K, Blu-ray
Audio: (4K/BD) English (Dolby Atmos), Spanish (Dolby Digital 5.1)
Video (4K): 2160p/Widescreen 2.39
Video (BD): 2160p/Widescreen 2.39
Dynamic Range: HDR10, Dolby Vision
Subtitles: English SDH, French, Spanish
Codecs: HEVC / H.265 (4K), MPEG-4 AVC (BD)
Region(s): A, B, C
Universal Pictures Home Entertainment provided me with a free copy of the Blu-ray I reviewed in this Blog Post.
The opinions I share are my own.
Note: The screen captures were taken from the Blu-ray disc and do not represent the 4K Ultra HD transfer.
THE MOVIE — 2.25/5
Plot Synopsis: Inspired by a true story, Hustlers follows Destiny (CONSTANCE WU), a young stripper struggling to make ends meet. That is, until she meets Ramona (JENNIFER LOPEZ), the club's savvy top earner, who shows her the way forward making big bucks. But when the 2008 economic collapse hits their Wall Street clientele hard, Destiny and Ramona concoct a plan with their fellow strippers to turn the tables on the greedy power players.
Review: The opinions from the professional critics don't usually sway me one or the other, but Hustlers is a movie that was a surprise box office success ($150 million worldwide) as well as with the critics (88%, 7.3/10; even the user's rating of a 3.69/5 was respectable). So with some momentum, I had interest in this movie, and doesn't hurt that the trailer I did see make it seem like an interesting, even unique crime-drama. Unfortunately the final product nowhere near lived up to expectations and instead I found Hustlers to be a middling film at best.
There's not a whole lot that really works for Hustlers, not the narrative — which they hammer the message over the head with via actual narration at the end (about America being one big strip club) — nor the dialogue and even the "heist" element (it's more of a con game) quickly loses steam and begins feeling more repetitive rather than anything approaching dramatic or suspenseful. Even Constance Wu, whom I've heard of but don't recall seeing her anything else, doesn't quite have that on-screen charisma to carry a film. Same goes for a supporting cast I generally like, including Keke Palmer and Julia Stiles, in a smallish role as the reporter whose work this film is based upon (article entitled "The Hustlers at Scores").
However, the movie does pretty much hinge on Jennifer Lopez who looks absolutely amazing, and apparently did her homework to play a stripper going so far as visiting a club with her husband, Alex Rodriguez. As an added honor, she's hit the big 5-0, but also gives a solid performance; I won't go so far to say it's worthy of an Academy Award nomination, yet easily was the brightest spot in an otherwise mundane and forgettable flick.
The movie has many issues, but perhaps the biggest one is it was hard to have empathy for any of these characters. No the ladies or the dudes they target, not even the one or two innocent bastards who, the brief scenes they have, are just okay guys, not married nor insanely rich; one of them, recently divorced, gets fired from their job as his corporate credit card was maxed out and is about to lose his home. Yet even then, it didn't sway my feelings on the ladies either way.
The messaging also isn't anything all that new, men or pigs (and here they are mostly caricatures), exotic dancers are used and abused. Got it. I actually think this would've been a more socially impactful film if they focused more on the industry and what the sex workers encounter but instead we get characters that are difficult to root for.
Hustlers was written and directed by Lorene Scafaria, marking her third feature film following 2012's apocalyptic drama-comedy Seeking a Friend for the End of the World and 2015's The Meddler. Having seen neither of those movies, I can't say what kind of a filmmaker she is, but based on this, and while she does attempt some long takes, the pacing did feel off, a bit slow at times.
SPECIAL FEATURES – 1.5/5
This release comes with a glossy slip cover and inside is a redemption code for the Digital HD copy.
I can only guess the studio never anticipated the film's success as we get an Audio Commentary with Writer-Director Lorene Scafaria, which I found to be interesting guiding viewers through the source material and working with the actors, and 2 Theatrical Trailers. And that's it, no featurettes, not even a promotional one…
4K ULTRA HD VIDEO – 5.0/5, BLU-RAY VIDEO — 5.0/5
Universal Pictures releases Hustlers onto 4K Ultra HD and Blu-ray where its presented in the original 2.39 widescreen aspect ratio and given a 2160p and 1080p high-definition transfers, respectively. Although the movie takes place in the early/mid 2000s, the production designer did not shy away from the neon colors which really do pop off the screen on both formats, but especially the 4K aided by the HDR. Outside of that, the rest looks great, detail is sharp and the natural noise does shine through. While I did notice a slight difference between the 4K and Blu-ray, the latter still looks wonderful.
AUDIO – 5.0/5
The disc comes equipped with a Dolby Atmos track which really comes to life during the numerous scenes inside the strip club with some banging 2000s music the dancers strip to (this is a no-nudity for the dancers who look like Constance Wu or Jennifer Lopez type of strip club I think) with dialogue coming through the central channel with nice clarity and some great depth for the front and rear speakers outside the club, being able to hear the ambient noises while on the streets of NYC.
OVERALL – 3.5/5
Hustlers had some potential and the story its inspired by was interesting, however in spite of an impressive performance from Jennifer Lopez, everything else was pretty much a letdown from the writing, direction and even unremarkable performances. This 4K/Blu-ray combo pack offers up fantastic video and audio transfers and the bonus features were lackluster other than the commentary track.
The screen captures came from the Blu-ray copy and are here to add visuals to the review and do not represent the 4K video.
12/08/2019 4K UHD Reviews, Blu-ray Reviews, Featured Review Tagged with: Cardi B, Constance Wu, Jennifer Lopez, Julia Stiles, Keke Palmer, Mercedes Ruehl
Abbott & Costello: The Complete Universal Pictures Collection Blu-ray Review Jake Speed Blu-ray Review


My Templar is just Teutonic Knight wearing a white habit with red crosses. There is no team color for the Templar. This is my first modpack.
I am quite new to these things.
Hi. Sorry but I'm new on this site and I alrady tried to download MPS but the link is not working. Can anyone give me any other link to download please?
Mod pack studio can be found in the utility section of the Blacksmiths.
The link is here: http://aok.heavengames.com/blacksmith/showfile.php?fileid=5537 just copy and paste it in to your address bar.


I was beyond thrilled to just be able to see my FJ clearly in a group photo from an event for once! Unmistakable Magma!
BOBTAILFJ, FJX2000, CRFjockey and 2 others like this.
BOBTAILFJ and Lee44 like this.
I drive a 2013 Toyota Range Rover H3 Rubicon... according to various neighbors.
FJX2000, ZerosFJ, Bad Wolf and 3 others like this.
BOBTAILFJ, ZerosFJ, tsfarling and 8 others like this.
Last edited by jamesepoop; 04-05-2019 at 08:30 PM.
April 2019 Member of the Month...You!
IN for member of the month. I can feature Two FJs also with lots of pics.
FJX2000, ZerosFJ, Lee44 and 2 others like this.
tsfarling will be our April 2019 MotM!
Still looking for a May RotM!
Winterpeg, Hannibal, debFJVT and 3 others like this.
Hannibal, Lee44 and CabinCruiser like this.
How tricked out does your FJ have to be? I just have front bumper, winch, 3" lift, 33s, front runner rack, LED lights, dual battery, DIY relay panel I built under the hood, K&N intake system.


text:
package com.sample.andremion.musicplayer.activities;

import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.media.AudioManager;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

import com.sample.andremion.musicplayer.R;
import com.sample.andremion.musicplayer.broadcastReceiver.MyFirstReceiver;
import com.sample.andremion.musicplayer.listener.DialogListener;
import com.sample.andremion.musicplayer.listener.VisualizerListener;
import com.sample.andremion.musicplayer.view.BottomDialog;
import com.sample.andremion.musicplayer.view.LyricView;
import com.sample.andremion.musicplayer.view.MyCycleView;
import com.sample.andremion.musicplayer.view.NumberProgressBar;
import com.sample.andremion.musicplayer.view.ProgressView;
import com.sample.andremion.musicplayer.view.VisualizerView;

import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Background;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;

import static android.view.KeyEvent.ACTION_DOWN;
import static android.view.KeyEvent.KEYCODE_DPAD_CENTER;
import static android.view.KeyEvent.KEYCODE_DPAD_DOWN;
import static android.view.KeyEvent.KEYCODE_DPAD_UP;

@EActivity(R.layout.content_detail)
public class DetailActivity extends PlayerActivity {
    String TAG = DetailActivity.class.getName();
    @ViewById(R.id.my_music_cover)
    MyCycleView mCoverView;
    @ViewById
    TextView displayName;
    @ViewById
    TextView displayAuthor;
    @ViewById
    LyricView lyricView;
    @ViewById(R.id.progress)
    ProgressView mProgressView;
    @ViewById
    ImageView repeat;
    @ViewById
    ImageView shuffle;
    @ViewById(R.id.rewind)
    ImageView rewind;
    @ViewById(R.id.forward)
    ImageView forward;
    @ViewById
    LinearLayout ll;
    @ViewById(R.id.stop)
    ImageView stop;

    //指定操作的文件名称
    SharedPreferences share;
    BottomDialog newBtn;
    VisualizerView mVisualizerView;
    AudioManager mAudioManager;
    private int repSumClick = 0;
    private int ranSumClick = 0;
    private int defaults[] = {180, 150, 150, 150, 180};
    private boolean finishInitDialog = false;
    private boolean isBackPressed = false;
    private boolean isPause = false;
    private MyFirstReceiver mReceiver = new MyFirstReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            switch (intent.getAction()) {
                case "onBindFinish":
                    play();
                    setVisualizerViewListener(new VisualizerListener() {
                        @Override
                        public void updateView(byte[] fftOrBytes) {
                            if (!newBtn.isVisible()) {
                                mVisualizerView.updateVisualizer(fftOrBytes);
                            }
                        }
                    });
                    break;
            }
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        share = getSharedPreferences("userData", MODE_PRIVATE);
        //音量控制,初始化定义
        mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    }

    @AfterViews
    void afterView() {
        IntentFilter filter = new IntentFilter();
        filter.addAction("scanFlag");
        filter.addAction("onBindFinish");
        registerReceiver(mReceiver, filter);
        mVisualizerView = new VisualizerView(this);
        mVisualizerView.setLayoutParams(new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT));
        mVisualizerView.setProgress(13);// 设置波形的高度
        mVisualizerView.setmHeight(8);// 让水位处于最高振幅
        mVisualizerView.setFocusable(false);
        ll.addView(mVisualizerView);
        lyricView.setVisibility(View.VISIBLE);
        lyricView.setFocusable(false);
        lyricView.setEnabled(false);
        initBottomDialog();
        final boolean[] isOneClicked = {false, false};
        rewind.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Log.e(TAG, "keyCode" + keyCode + " event" + event.toString());
                if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_CENTER) {
                    if (!isOneClicked[0]) {
                        rewindMusic();
                        isOneClicked[0] = false;
                    } else {
                        rewindMusic();
                        isOneClicked[0] = false;
                    }
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_CENTER) {
                    isOneClicked[0] = true;
                }
                return false;
            }
        });
        forward.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Log.e(TAG, "keyCode" + keyCode + " event" + event.toString());
                if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_CENTER) {
                    if (!isOneClicked[1]) {
                        forwardMusic();
                        isOneClicked[1] = false;
                    } else {
                        forwardMusic();
                        isOneClicked[1] = false;
                    }
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_CENTER) {
                    isOneClicked[1] = true;
                }
                return false;
            }
        });
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Background
    void initBottomDialog() {
        if (isBackPressed) {
            return;
        }
        finishInitDialog = false;
        newBtn = BottomDialog.create(getSupportFragmentManager()).setLayoutRes(R.layout.mixer_dialog);
        newBtn.setKeyListener(new DialogListener() {
            @Override
            public void onKey(KeyEvent event, int keyCode) {
                Log.e(TAG, "" + event.getAction() + "" + keyCode);
                if (keyCode == KeyEvent.KEYCODE_BACK) {
                    for (int i = 0; i < 5; i++) {
                        saveBandPositionData(i);
                    }
                    newBtn.dismiss();
                    initBottomDialog();
                }
            }
        });
        newBtn.setViewListener(new BottomDialog.ViewListener() {
            @Override
            public void bindView(View v) {
                initView(v);
            }
        });
        finishInitDialog = true;
    }

    @Override
    public void onBackPressed() {
        isBackPressed = true;
        onFabClick(null);
    }

    public void onFabClick(View view) {
        lyricView.setVisibility(View.GONE);
        if (mVisualizerView != null) {
            mVisualizerView.setVisibility(View.GONE);
        }
        pause();
        supportFinishAfterTransition();
//        mCoverView.stop();
    }

    @Click(R.id.stop)
    void stop() {
        if (!isPause) {
            pause();
            isPause = true;
            stop.setImageDrawable(getResources().getDrawable(R.drawable.start));
        } else {
            play();
            isPause = false;
            stop.setImageDrawable(getResources().getDrawable(R.drawable.stop));
        }
    }

    @Click(R.id.repeat)
    void repeat() {
        repSumClick++;
        Log.e(TAG, "repSumClick" + repSumClick);
        if (repSumClick > 1) {
            repeat.setImageDrawable(getResources().getDrawable(R.drawable.ic_repeat_white_24dp));
            setRepeatPlayMode(false);
            setRandomPlayMode(false);
            repSumClick = 0;

        } else {
            repeat.setImageDrawable(getResources().getDrawable(R.drawable.ic_repeat_white_pressed24dp));
            shuffle.setImageDrawable(getResources().getDrawable(R.drawable.ic_shuffle_white_24dp));
            setRepeatPlayMode(true);
            setRandomPlayMode(false);
            ranSumClick = 0;
        }
        Log.e(TAG, "repSumClick" + repSumClick);
    }

    @Click(R.id.shuffle)
    void shuffle() {
        ranSumClick++;
        Log.e(TAG, "ranSumClick" + ranSumClick);
        if (ranSumClick > 1) {
            shuffle.setImageDrawable(getResources().getDrawable(R.drawable.ic_shuffle_white_24dp));
            setRandomPlayMode(false);
            setRepeatPlayMode(false);
            ranSumClick = 0;
        } else {
            shuffle.setImageDrawable(getResources().getDrawable(R.drawable.ic_shuffle_white_pressed24dp));
            repeat.setImageDrawable(getResources().getDrawable(R.drawable.ic_repeat_white_24dp));
            setRandomPlayMode(true);
            setRepeatPlayMode(false);
            repSumClick = 0;
        }
        Log.e(TAG, "ranSumClick" + ranSumClick);
    }

    @Click(R.id.previous)
    void previousSong() {
        preMusic();
    }

    @Click(R.id.rewind)
    void rewindSong() {
        rewindMusic();
    }

    @Click(R.id.forward)
    void forward() {
        forwardMusic();
    }

    @Click(R.id.next)
    void nextMusic() {
        next();
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        Log.e(TAG, "keyCode" + keyCode + " event" + event.toString());
        switch (keyCode) {
            case KeyEvent.KEYCODE_MENU:

                if (finishInitDialog) {
                    if (!newBtn.isVisible()) {
                        newBtn.show();
                    }
                } else {
                    Toast.makeText(this, "mixer is loading,please try again...", Toast.LENGTH_LONG).show();
                }
                break;
            case KeyEvent.KEYCODE_BACK:
                break;
        }
        return super.onKeyDown(keyCode, event);
    }

    public void saveBandPositionData(int index) {
        SharedPreferences.Editor edit = share.edit(); //编辑文件
        edit.putInt("band" + index, getBandLevel((short) index));         //根据键值对添加数据
        edit.apply();  //保存数据信息
    }

    @Override
    protected void onDestroy() {
        unregisterReceiver(mReceiver);
        super.onDestroy();
    }

    private void initView(View v) {
        if (isBackPressed) {
            return;
        }
        int position = share.getInt("spinner", 0);
        for (int i = 0; i < 5; i++) {
            if (isBackPressed) {
                return;
            }
            int bandPosition = share.getInt("band" + i, -1);
            if (bandPosition != -1) {
                setBandLevel((short) i, bandPosition);
            } else {
                setBandLevel((short) i, getBandLevel((short) i));
                SharedPreferences.Editor edit = share.edit(); //编辑文件
                edit.putInt("band" + i, getBandLevel((short) i));         //根据键值对添加数据
                edit.apply();  //保存数据信息
            }
        }
        if (isBackPressed) {
            return;
        }
        Spinner mSpinner = (Spinner) v.findViewById(R.id.mixer_sp);
        Switch mSwitch = (Switch) v.findViewById(R.id.switch_eq);
        Button mResetBtn = (Button) v.findViewById(R.id.reset_btn);
        mSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                setEqualizerEnabled(isChecked);
            }
        });
        if (isBackPressed) {
            return;
        }
        mSwitch.setChecked(getEqualizerEnabled());
        mSpinner.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, getReverberationVals()));
//        mSpinner.setAdapter(new SimpleAdapter(this,listems,R.layout.mixer_sp_item,new String[]{"name"},new int[]{R.id.tv_spinner}));
        final NumberProgressBar bassProgress = (NumberProgressBar) v.findViewById(R.id.number_progress_bar_bass);
        int eqMax = getEqualizerMax();
        int bandLevel = getBandLevel((short) 0);
        bassProgress.setMax(eqMax);
        bassProgress.setProgress(bandLevel);
        Button bassAddBtn = (Button) v.findViewById(R.id.add_button_bass);
        Button bassReduceBtn = (Button) v.findViewById(R.id.reduce_button_bass);

        final NumberProgressBar mediumProgress = (NumberProgressBar) v.findViewById(R.id.number_progress_bar_medium_bass);
        Button mediumAddBtn = (Button) v.findViewById(R.id.add_button_medium_bass);
        Button mediumReduceBtn = (Button) v.findViewById(R.id.reduce_button_medium_bass);
        mediumProgress.setMax(getEqualizerMax());
        mediumProgress.setProgress(getBandLevel((short) 1));

        final NumberProgressBar mediantProgress = (NumberProgressBar) v.findViewById(R.id.number_progress_mediant);
        Button mediantAddBtn = (Button) v.findViewById(R.id.add_button_mediant);
        Button mediantReduceBtn = (Button) v.findViewById(R.id.reduce_button_mediant);
        mediantProgress.setMax(getEqualizerMax());
        mediantProgress.setProgress(getBandLevel((short) 2));

        final NumberProgressBar msProgress = (NumberProgressBar) v.findViewById(R.id.number_progress_bar_mezzo_soprano);
        Button msAddBtn = (Button) v.findViewById(R.id.add_button_mezzo_soprano);
        Button msReduceBtn = (Button) v.findViewById(R.id.reduce_button_mezzo_soprano);
        msProgress.setMax(getEqualizerMax());
        msProgress.setProgress(getBandLevel((short) 3));

        final NumberProgressBar altProgress = (NumberProgressBar) v.findViewById(R.id.number_progress_alt);
        Button altAddBtn = (Button) v.findViewById(R.id.add_button_alt);
        Button altReduceBtn = (Button) v.findViewById(R.id.reduce_alt);
        altProgress.setMax(getEqualizerMax());
        altProgress.setProgress(getBandLevel((short) 4));

        if (isBackPressed) {
            return;
        }
        mSpinner.setSelection(position);
        setPresetReverberationPreset(getReverberationNames().get(position));
        mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                setPresetReverberationPreset(getReverberationNames().get(position));
                SharedPreferences.Editor edit = share.edit(); //编辑文件
                edit.putInt("spinner", position);         //根据键值对添加数据
                edit.apply();  //保存数据信息
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
        mResetBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                for (int i = 0; i < 5; i++) {
                    setBandLevel((short) i, defaults[i]);
                }
                bassProgress.setProgress(getBandLevel((short) 0));
                mediumProgress.setProgress(getBandLevel((short) 1));
                mediantProgress.setProgress(getBandLevel((short) 2));
                msProgress.setProgress(getBandLevel((short) 3));
                altProgress.setProgress(getBandLevel((short) 4));
            }
        });
        bassAddBtn.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                int newPosition = bassProgress.getProgress();
                if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_CENTER) {
                    newPosition = bassProgress.getProgress() + 1;
                    bassProgress.setProgress(newPosition);
                    Log.e(TAG, event.getAction() + "  " + keyCode + "  " + newPosition);
                    //手指按下时触发不停的发送消息
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_CENTER) {
                    setBandLevel((short) 0, newPosition);    //手指抬起时停止发送
                }
                return false;
            }
        });
        final boolean[] isOneClicked = {true};
        bassReduceBtn.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Log.e(TAG, event.getAction() + "  " + keyCode + " " + isOneClicked[0]);
                int newPosition = bassProgress.getProgress();
                if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_UP) {
                    if (isOneClicked[0]) {
                        newPosition = bassProgress.getProgress() + 1;
                        isOneClicked[0] = false;
                    } else {
                        newPosition = bassProgress.getProgress() + 3;
                    }
                    bassProgress.setProgress(newPosition);
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_UP) {
                    isOneClicked[0] = true;
                    setBandLevel((short) 0, newPosition);//手指抬起时停止发送

                } else if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_DOWN) {
                    if (isOneClicked[0]) {
                        newPosition = bassProgress.getProgress() - 1;
                        isOneClicked[0] = false;
                    } else {
                        newPosition = bassProgress.getProgress() - 3;
                    }
                    bassProgress.setProgress(newPosition);
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_DOWN) {
                    isOneClicked[0] = true;
                    setBandLevel((short) 0, newPosition);    //手指抬起时停止发送
                    saveBandPositionData((short) 0);
                }
                return false;
            }
        });

//        medium音段按钮
//        mediumAddBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                int newPosition = mediumProgress.getProgress() + 1;
//                mediumProgress.setProgress(newPosition);
//                setBandLevel((short) 1, newPosition);
//            }
//        });
//        mediumReduceBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                int newPosition = mediumProgress.getProgress() - 1;
//                mediumProgress.setProgress(newPosition);
//                setBandLevel((short) 1, newPosition);
//            }
//        });
        mediumAddBtn.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                int newPosition = mediumProgress.getProgress();
                if (event.getAction() == MotionEvent.ACTION_DOWN && keyCode == KEYCODE_DPAD_CENTER) {
                    newPosition = mediumProgress.getProgress() + 1;
                    mediumProgress.setProgress(newPosition);
                    //手指按下时触发不停的发送消息
                } else if (event.getAction() == MotionEvent.ACTION_UP && keyCode == KEYCODE_DPAD_CENTER) {
                    setBandLevel((short) 1, newPosition);    //手指抬起时停止发送
                }
                return false;
            }
        });
        mediumReduceBtn.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Log.e(TAG, event.getAction() + "  " + keyCode);
                int newPosition = mediumProgress.getProgress();
                if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_UP) {
                    if (isOneClicked[0]) {
                        newPosition = mediumProgress.getProgress() + 1;
                        isOneClicked[0] = false;
                    } else {
                        newPosition = mediumProgress.getProgress() + 3;
                    }
                    mediumProgress.setProgress(newPosition);
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_UP) {
                    isOneClicked[0] = true;
                    setBandLevel((short) 1, newPosition);    //手指抬起时停止发送
                    saveBandPositionData((short) 1);
                } else if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_DOWN) {
                    if (isOneClicked[0]) {
                        newPosition = mediumProgress.getProgress() - 1;
                        isOneClicked[0] = false;
                    } else {
                        newPosition = mediumProgress.getProgress() - 3;
                    }
                    mediumProgress.setProgress(newPosition);
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_DOWN) {
                    isOneClicked[0] = true;
                    setBandLevel((short) 1, newPosition);    //手指抬起时停止发送
                    saveBandPositionData((short) 1);
                }
                return false;
            }
        });

        if (isBackPressed) {
            return;
        }
//        mediant音段按钮
//        mediantAddBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                int newPosition = mediantProgress.getProgress() + 1;
//                mediantProgress.setProgress(newPosition);
//                setBandLevel((short) 2, newPosition);
//            }
//        });
//        mediantReduceBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                int newPosition = mediantProgress.getProgress() - 1;
//                mediantProgress.setProgress(newPosition);
//                setBandLevel((short) 2, newPosition);
//            }
//        });
        mediantAddBtn.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                int newPosition = mediantProgress.getProgress();
                if (event.getAction() == MotionEvent.ACTION_DOWN && keyCode == KEYCODE_DPAD_CENTER) {
                    newPosition = mediantProgress.getProgress() + 1;
                    mediantProgress.setProgress(newPosition);
                    //手指按下时触发不停的发送消息
                } else if (event.getAction() == MotionEvent.ACTION_UP && keyCode == KEYCODE_DPAD_CENTER) {
                    setBandLevel((short) 2, newPosition);    //手指抬起时停止发送
                }
                return false;
            }
        });
        mediantReduceBtn.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Log.e(TAG, event.getAction() + "  " + keyCode);
                int newPosition = mediantProgress.getProgress();
                if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_UP) {
                    if (isOneClicked[0]) {
                        newPosition = mediantProgress.getProgress() + 1;
                        isOneClicked[0] = false;
                    } else {
                        newPosition = mediantProgress.getProgress() + 3;
                    }
                    mediantProgress.setProgress(newPosition);
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_UP) {
                    isOneClicked[0] = true;
                    setBandLevel((short) 2, newPosition);    //手指抬起时停止发送
                } else if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_DOWN) {
                    if (isOneClicked[0]) {
                        newPosition = mediantProgress.getProgress() - 1;
                        isOneClicked[0] = false;
                    } else {
                        newPosition = mediantProgress.getProgress() - 3;
                    }
                    mediantProgress.setProgress(newPosition);
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_DOWN) {
                    isOneClicked[0] = true;
                    setBandLevel((short) 2, newPosition);    //手指抬起时停止发送
                }
                return false;
            }
        });

//        ms音段按钮
//        msAddBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                int newPosition = msProgress.getProgress() + 1;
//                msProgress.setProgress(newPosition);
//                setBandLevel((short) 3, newPosition);
//            }
//        });
//        msReduceBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                int newPosition = msProgress.getProgress() - 1;
//                msProgress.setProgress(newPosition);
//                setBandLevel((short) 3, newPosition);
//            }
//        });

        msAddBtn.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                int newPosition = msProgress.getProgress();
                if (event.getAction() == MotionEvent.ACTION_DOWN && keyCode == KEYCODE_DPAD_CENTER) {
                    newPosition = msProgress.getProgress() + 1;
                    msProgress.setProgress(newPosition);
                    //手指按下时触发不停的发送消息
                } else if (event.getAction() == MotionEvent.ACTION_UP && keyCode == KEYCODE_DPAD_CENTER) {
                    setBandLevel((short) 3, newPosition);    //手指抬起时停止发送
                }
                return false;
            }
        });
        msReduceBtn.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Log.e(TAG, event.getAction() + "  " + keyCode);
                int newPosition = msProgress.getProgress();
                if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_UP) {
                    if (isOneClicked[0]) {
                        newPosition = msProgress.getProgress() + 1;
                        isOneClicked[0] = false;
                    } else {
                        newPosition = msProgress.getProgress() + 3;
                    }
                    msProgress.setProgress(newPosition);
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_UP) {
                    isOneClicked[0] = true;
                    setBandLevel((short) 3, newPosition);    //手指抬起时停止发送
                } else if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_DOWN) {
                    if (isOneClicked[0]) {
                        newPosition = msProgress.getProgress() - 1;
                        isOneClicked[0] = false;
                    } else {
                        newPosition = msProgress.getProgress() - 3;
                    }
                    msProgress.setProgress(newPosition);
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_DOWN) {
                    isOneClicked[0] = true;
                    setBandLevel((short) 3, newPosition);    //手指抬起时停止发送
                }
                return false;
            }
        });

//        alt音段按钮
//        altAddBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                int newPosition = altProgress.getProgress() + 1;
//                altProgress.setProgress(newPosition);
//                setBandLevel((short) 4, newPosition);
//            }
//        });
//        altReduceBtn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                int newPosition = altProgress.getProgress() - 1;
//                altProgress.setProgress(newPosition);
//                setBandLevel((short) 4, newPosition);
//            }
//        });
        if (isBackPressed) {
            return;
        }
        altAddBtn.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                int newPosition = altProgress.getProgress();
                if (event.getAction() == MotionEvent.ACTION_DOWN && keyCode == KEYCODE_DPAD_CENTER) {
                    newPosition = altProgress.getProgress() + 1;
                    altProgress.setProgress(newPosition);
                    //手指按下时触发不停的发送消息
                } else if (event.getAction() == MotionEvent.ACTION_UP && keyCode == KEYCODE_DPAD_CENTER) {
                    setBandLevel((short) 4, newPosition);    //手指抬起时停止发送
                }
                return false;
            }
        });

        altReduceBtn.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                Log.e(TAG, event.getAction() + "  " + keyCode);
                int newPosition = altProgress.getProgress();
                if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_UP) {
                    if (isOneClicked[0]) {
                        newPosition = altProgress.getProgress() + 1;
                        isOneClicked[0] = false;
                    } else {
                        newPosition = altProgress.getProgress() + 3;
                    }
                    altProgress.setProgress(newPosition);
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_UP) {
                    isOneClicked[0] = true;
                    setBandLevel((short) 4, newPosition);    //手指抬起时停止发送
                } else if (event.getAction() == ACTION_DOWN && keyCode == KEYCODE_DPAD_DOWN) {
                    if (isOneClicked[0]) {
                        newPosition = altProgress.getProgress() - 1;
                        isOneClicked[0] = false;
                    } else {
                        newPosition = altProgress.getProgress() - 3;
                    }
                    altProgress.setProgress(newPosition);
                    return true;
                } else if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KEYCODE_DPAD_DOWN) {
                    isOneClicked[0] = true;
                    setBandLevel((short) 4, newPosition);    //手指抬起时停止发送
                }
                return false;
            }
        });
    }

}

redpajama_set_name: RedPajamaGithub


response from property - May 05, 2015 Thank you for the great review! We appreciate having you live at Breckenridge.
response from property - Apr 02, 2015 Thank you for the excellent review. Some of our apartment homes offer panoramic views of the Black Hills and Olympic Mountains. Enjoy your stay with us.
response from property - Apr 02, 2015 Thank you for the review. The staff at Breckenridge Apartment Homes thinks our residents are amazing!
Beautiful apartments, pretty quiet community, perfect locationsubmitted by KALEAH M. - Mar 04, 2015 |Recommended: YesWonderful maintenance crew, great staff, beautiful apartment homes!
response from property - Apr 02, 2015 Thank you for the nice reviews! We strive to make our apartment homes quality and a great price.
Peaceful apartmentssubmitted by JENNYFER H. - Feb 03, 2015 |Recommended: Yesthe neighborhood is peaceful. i enjoy the amenities and the kind staff.
Like it, love it.submitted by PIERRE K. - Feb 02, 2015 |Recommended: YesI like the amenities (in apartment washer, dryer, dishwasher), very convenient location.
response from property - Apr 02, 2015 Thank you for the great review. Tumwater Hill (Somerset Hill) is a great neighborhood. Our residents love this area!
response from property - Apr 02, 2015 Thank you our goal is to make this community pleasant to come home to.
response from property - Jan 06, 2015 We enjoy having you live at Breckenridge. At Breckenridge all apartments have one reserved assigned covered parking. Guest parking is placed throughout the property. Thank you for the kind review.
Safe and well-keptsubmitted by KATHLEEN B. - Dec 31, 2014 |Recommended: YesBreckenridge is quiet, well maintained, and well managed. As a single female, I feel safe living here. It makes a huge difference when owners and managers maintain their investment instead of sucking all the money out of it that they can without putting anything back, and Breckenridge exemplifies this difference.
response from property - Jan 02, 2015 Thank you for the great review. We strive to offer an excellent product for our residents. We are glad that you enjoy living here and we want to thank you for choosing Breckenridge as your home.
response from property - Dec 29, 2014 Thank you for the wonderful review! We enjoy having your family live at Breckenridge.
Best place I have ever rentedsubmitted by JENNIFER M. - Aug 31, 2014 |Recommended: YesI love living here. The one bedroom apartment is well laid out giving maximum use of all space. The grounds are well-maintained. The office and maintenance staff are professional, courteous, and friendly. Being able to pay my rent automatically is convenient. Having 24-hour security is an awesome safety feature! I actually see the security car making rounds several times each night. Last but most important, my neighbors are all very nice and respectful of privacy and noise. I look forward to living her for a long time!
response from property - Sep 05, 2014 Wow! You are such a wonderful resident. We thank you so much for the wonderful review. Our residents to be appreciate the positive reviews. Residents like you is what makes our community so desirable. Thank you for choosing Breckenridge as your home.
Quiet, comfortable, nice amenities submitted by ERIKKA H. - Aug 06, 2014 |Recommended: YesI love living here. The staff are friendly, especially the maintenance guys. The apartments are nice and updated. It s pretty quiet considering how many people actually live here. The clubhouse and the pool is my favorite about this complex. It s so nice in the summer. I ve really enjoyed living here for 2 years!
response from property - Sep 03, 2014 Thank you for the fantastic review! We are so happy that you enjoy Breckenridge Apartments. Maintenance enjoys helping our residents. We shared your comments with them. You made their day!
Nice and friendly staff! Great amenities!submitted by LESLIE O. - Jul 31, 2014 |Recommended: YesI feel valued by the staff and enjoy living here a lot, great amenities, great living space!
response from property - Jul 31, 2014 Thank you for the Great! review. You are wonderful residents. Thank you for choosing Breckenridge as your home!


text:
How to Write: Successful CVs and Job Applications (2nd edition)
Judith Leigh
学術・一般書 > 社会科学 > Commerce, communications, & transportation > Communications
Write a successful CV, cover letter, and job application following the advice in this practical guide. It offers clear, step-by-step guidance on all these matters, and whether you are seeking your first job, coming back to work after a break, aiming to progress in your chosen career, or changing careers altogether, this book takes you through the process that's right for your situation. This new edition has been thoroughly revised and updated, and its structure has been overhauled to make it even easier to find the information you are looking for, plus chapters now include helpful end-of-chapter summaries to recap the key points. New to this edition is a list of 'FAQs', with answers directing you straight to the sections you need. From the building blocks of CV-writing to tweaking your cover letter, from speculative applications to applying for jobs online, How to Write: Successful CVs and Job Applications gives you practical advice and helpful tips, checklists, dos and don'ts, and examples to ensure that you get the job that's right for you.
Preface 1. About this book 2. Groundwork 3. CVs 4. Covering letters 5. Job application forms 6. Online applications 7. Speculative applications 8. Interviews 9. Troubleshooting
Judith Leigh is a history graduate from the University of London. She has held a variety of management and HR posts in commercial, not-for-profit, and charitable organizations. She currently works for a grant-making foundation in London.
The Oxford Encyclopedia of Communication and Critical Cultural Studies
The Platform Society
The News Media: What Everyone Needs to Know®
Radio's Civic Ambition: American Broadcasting and Democracy in the 1930s
Television at Work: Industrial Media and American Labor
An Unlikely Audience: Al Jazeera's Struggle in America
The Ethical Algorithm: The Science of Socially Aware Algorithm Design
The News of Empire: Telegraphy, Journalism, and the Politics of Reporting in Colonial India c. 1830-1900


We specialize in Spokane Drone Video and Photography marketing to enhance your marketing strategy and provides you with an undeniable edge.
My love of drones, sUAS, started when I when I first took to the sky as a profession in 1998 as a Rotary Wing Aviator for the United States Army. Seeing the world from a striking view only seen by a fraction of the world's population put me in awe of all things aviation. After leaving the Army in 2006, I was inspired to bring the aerial perspective to the marketplace. In 2015, I applied for and was granted a Section 333 exemption to bring drones to the marketplace. At Rees Aerials, my team and I share this belief in the impact of bringing an eye to the sky. We see Spokane Drone Photography as a next level video marketing tactic that offers a unique and memorable look at your commercial, residential or agricultural property.
We currently have four Commercial Pilots on staff to fly our missions, combining for over 90 years of both military and commercial flight experience. We have recently added pilots possessing private pilot and Part 107 remote pilot licenses as well.
We have the best systems that the industry has produced. Our copters employ unique features, leading performance as well as being of the most advanced systems in the industry.
Our knowledge of Spokane Drone Photography, piloting, aerial videography and aerial photography has developed over a combined 90 years military and commercial flight experience. Feel free to send us a message, view our portfolio, like us on Facebook or give us a call with any questions.


Summer is in full swing at the Gilded Getaway House, which means a rotating guest list of family and friends. Some come for a day, others stay for a week, and most all never want to leave. More than three years ago, we set out to create a cozy, coastal retreat; slowly, and layer upon layer, Summerset has become a seaside haven – quintessential New England at its core, with a nod to life in the City-by-the-Sea. Sweet and subtle details have become our favorite addition, the finishing touches that make a house a home. This month, our #tglpreciousobjects are a collection of recent additions and in the spirit of hospitality, we're spilling the beans on some of our go-to resources.