Video Piracy made easy: Popcorn Time Software & Sites 01 APR 2015

It’s weird how almost socially acceptable pirating video content has become. It is wrong of course, everyone seems to know that, but for some or other reason, just about everyone that does pirate can come up with some sort of reasoning that it’s a justifiable thing to do – at the drop of a hat.

popcorn time torrent video wall screenshot

Now I’ve seen mention of something called Popcorn Time for probably at least a year now (if not longer), but have never really bothered to make the effort to see exactly what this is all about. However, after a recent article on TorrentFreak made mention of this uber piracy vehicle yet again, I thought it best to go and have a look for myself – you know, to get a first hand view.

The verdict? Wow. Now there’s a major problem for anyone who wants to make a living by producing and selling video content!

In the past, there was always some sort of friction that made piracy not the easiest option around. In the old days of “Sneakernet”, well, you a) needed friends with content and b) needed someway of getting that content on your machine.

Then of course came the Internet and with it the likes of Napster, eDonkey2000,  news groups, IIRC, and those with enough technical know-how could get material just fine, though of course with plenty of application and file handling slog.

Today’s current favourite, in the form of BitTorrent, still requires pirates to search for material via dodgy sites, download them via clients and then move them across to media players – in other words, still not quite as easy as simply turning on your DSTV, firing up Netflix, or simply walking into a video store.

computer lan party - at night

But Popcorn Time changes all of that. It removes all friction that comes with piracy, making it so simple that even a completely technologically challenged newbie could do it without any hassle at all.

At the heart of it, Argentinian-made Popcorn Time is a multi-platform, open source BitTorrent client that includes an integrated media player – thereby acting as a free alternative to subscription-based video streaming services.

Its interface presents thumbnails and film titles in a manner similar to Netflix, with this list of media fully searchable and categorized. To play a television episode or movie, a user simply clicks on a title in order to initiate the file download via the bitTorrent file-sharing protocol.

As with other BitTorrent clients, as soon as Popcorn Time starts to download a film, it also starts to share the downloaded content with other users (in technical terms, it seeds the torrent to others in the bittorrent swarm.), continuing to make the downloaded content available to others until the movie is deleted – which is normally done automatically but only when the application closes!

And not just that mind you – it’s also rather clever.

Very clever.

By forcing BitTorrent chunks to be sequentially downloaded, Popcorn Time allows you to watch a video file whilst it is still busy downloading, meaning that there is literally none of the classic wait time a pirate faces in first having to download and then move around content.

Also, it’s easy to use, well written, features an intuitive, beautiful interface,and is available for Windows, Mac OSX, Linux and Android.

No wonder content holders are so twitchy about it.

Without a doubt, Popcorn Time MORE than deserves the current giant sized target on its back – because there is absolutely no way content studios can let this one walk around freely for very long!

Related Link:

What is the Difference between an Abridged and Unabridged Birth Certificate? My Life 31 MAR 2015

It’s reached that point in time where we have to start applying to get Jessica into school, and one of the things on the required list in terms of support documentation is of course a valid birth certificate. However, when I rummage through my files and pull out the birth certificates I get a yellow abridged birth certificate for Jessica (2010), and a white/green unabridged birth certificate for Emily (2014).

Schools require an unabridged birth certificate which then raises the question: What is the difference between an abridged and unabridged birth certificate?


In South Africa historically there were two types of official birth certificates, namely the abridged and unabridged versions. Although distinct documents, both are considered authentic and thus you could previously make do with just an abridged version as long as you are a natural citizen and live in South Africa itself.

Issued by the Department of Home Affairs, an abridged birth certificate is a document that contains details about the birth of a person such as his or her identity number, full name and country of origin. An abridged birth certificate is issued within minutes or hours (i.e. you can pretty much get it straight after the birth, useful for signing up for medical aid and so forth), whereas it takes between 6 weeks to 6 months to issue an unabridged birth certificate.

The difference? An unabridged birth certificate contains everything that the abridged birth certificate does, but adds to that content the identity information of both registered parents.

Up until 2013, you would get an abridged birth certificate following the birth of your child, and then later go and apply for the unabridged version, but since then, the Department of Home Affairs have streamlined the process and now unabridged certificates are issued on the spot, thereby reducing the turn-around time being experienced when applying for the abridged birth certificate at that time.

In other words, the difference is the added parents’ details on the unabridged version, and more importantly, it would seem that I now need to make a trip to Home Affairs in order to organise an unabridged birth certificate for Jessica because in the end, that is now the only one that matters!


XBOX 360: Games with Gold: April 2015 Games Notes 30 MAR 2015

Officially kicking off way back in July 2013, Microsoft’s Games with Gold programme has since then steadfastly been rewarding gamers who fork out their monthly XBOX Live subscription with two or more free games a month – a pretty decent reward in my book.

microsoft xbox 360 games with gold call to action banner

Some months are certainly better than others in terms of the free games being given away,  but if you are an XBOX 360 owner with an active XBOX Live account in April 2015, then you’ve most definitely got some pretty decent freebies to look forward to!

(To be fair though, March 2015 was pretty damn good too – the superb Tomb Raider (2013) from Crystal Dynamics was available for the first half of the month, followed up by the excellent BioShock Infinite (2013) the latter!)

To celebrate the Games with Gold programme as a whole, Microsoft is giving away an unprecedented four free XBOX 360 titles for April, three AAA releases and one hit indie title.

This is the list as it stands right now:

As it turns out, I’m scoring big time because I haven’t before played any of the four!

army of two the devils cartel guns blazing

I’m not particularly interested in Terraria (in other words, I don’t bother with Minecraft), but I am VERY interested in Gears of War: Judgment and Army of Two: The Devil’s Cartel for their co-op value (time to lock and load, Ryan!) – and then of course there is the pirate-themed Assassin’s Creed IV: Black Flag… seriously, what’s not to love, based on setup alone!

So yes, it looks like my backlog is about to grow a bit again…

assassins creed iv black flag pirates walking

Afrihost: More Mobile Data, Same Price Tech News 29 MAR 2015

For some reason, ever since the MTN takeover of Afrihost back in June 2014, it seems to have become kind of been cool to moan about Afrihost’s services and customer service – none of which makes sense to me because I’ve been using them for a good five years now and I have absolutely nothing to complain about at all! In fact, I’ve pretty much thrown all my Internet eggs in their basket because of their fantastic systems, support tools and customer service – ADSL, web hosting, mobile data… they all just work!


Anyway, if you have a mobile data contract with them then you would have been pleasantly surprised to recently receive an e-mail from them during March 2015, announcing that their Double Data promotion was in essence back – but this time for their mobile data offering (it is already in place on their standard capped ADSL packages).

All existing clients get 100% more data than what they currently receive for their spend, so for example, a client with a 250MB package for R29 per month will now receive 500MB per month for the same amount (which affects me, seeing as I hang on to the 250MB mobile data as a backup to switch over to when my ADSL line falls over – relatively often thanks to all the loadshedding). Clients on higher packages will also receive more data, for example, clients receiving 2GB per month will now receive a total of 3GB per month.

So in other words, pretty handy, quite appreciated, and definitely a move to try and win back some customer sentiment and perhaps drive more people to take up their Afrihost Plus+ membership (which I don’t really see the point of just by the way).

Thanks Afrihost. I continue to be coloured impressed with your service and products!

Related Link:

How much Money will I get after Tax? Software & Sites 28 MAR 2015

I got a nice surprise in the form of a little salary bump this week and of course, the first question that popped into my head was just how much money would I now take home after tax?

In other words, I needed a SARS income tax calculator, and I needed one stat!

spreadsheet, pen and calculator artistically arranged in a shade of blue

Now as much fun as it would be to write one of those (it’s just a few simple calculations after all), I would much rather spare myself the time and simply use one that already exists – which is exactly why it was so cool for TaxTim’s SARS Income Tax Calculator to pop out from a quick Google search!

I’m already familiar with the TaxTim tax return handling brand thanks to all the exposure and adverts they post/get on the The Money Show with Bruce Whitfield (which I religiously tune into every evening drive home), so it was a no-brainer to click on their link, fill in the two or three text fields and then grin in delight as the digits performed a delightful and thrilling spin in order to churn out my magic number.

(As a bonus, it takes you through the calculation applied, and also shows you just how much the change in tax rates affect you by comparing to the previous tax season. Oh, and you can actually get your tax calculation done for the last 3 tax seasons if you want!).

So what am I getting at then?

Well, in essence, it’s pretty easy to know how much money you will take home after tax – if you have access to the Internet! :)

Related Link:

PHP: How to Convert a Date/Time from UTC to another Time Zone Programming 27 MAR 2015

Having previously shown you a useful way of quickly converting a timestamp into a formatted date string, here’s a quick way of actually getting a date/time in a time zone that you actually want – and again we turn to the powerfull PHP DateTime class to do this for us.

//here we'll use a UTC (time zone independent) time for our example
//(remember, time() always returns a UTC timestamp)
$dateTimeEnd = new DateTime('@' . time());
echo $dateTimeEnd->format('Y-m-d H:i:s');            
//now let's change to GMT+2 (SAST - South African Standard Time)
$dateTimeEnd->setTimezone(new DateTimeZone('Africa/Johannesburg'));
echo $dateTimeEnd->format('Y-m-d H:i:s');

As you can see, the setTimezone function of the DateTime class does all the heavy lifting for us, making it a snap to convert timestamps between different time zones.

Just a note, if you want to get the current time zone that your script is executing under, you can make use of date_default_timezone_get:

if (date_default_timezone_get()) {
    echo 'current time zone: ' . date_default_timezone_get() . '<br />';

A handy tip to remember then in other words!

world map showing time zones

Related Link:

PHP: How to Convert a Timestamp into a Date String Programming 26 MAR 2015

Unix timestamps aren’t exactly human readable representations of time. After all, a Unix timestamp is the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).

Usually one wants to show this to a user in a much friendlier date time format, like the tried and trusted Y-m-d H:i:s standard, e.g. ‘2015-03-23 09:00′.

It turns out achieving this formatted display is relatively easy: just use the standard DateTime class!

You can use a timestamp as construct parameter if you add the @-sign at the front. Once that is done, simply use the format function to return a user friendly date/time string:

$dateTimeEnd = new DateTime('@1427105451'); 
echo $dateTimeEnd->format('Y-m-d H:i:s'); //prints 2015-03-23 10:10:51

Quick and simple.


Related Link:

jQuery UI Slider Pips: Enhancing jQuery Sliders with Labels and Pips Software & Sites 25 MAR 2015

The jQuery UI user interface library, built on top of the excellent jQuery JavaScript library, includes a pretty neat slider control that allows users to select a numeric value by dragging a handle with either the mouse or keys.

However, it is missing a few important things if you want to start using sliders in a little more user friendly, complex way – what it needs is pips (point dashes to indicate length/distance/value range) as well as labels.

Which is exactly why Simon Goellner (aka slimeydotme, or more accurately, went ahead and created the fantastic jQuery UI Slider Pips plugin to, as he puts it:

A plugin to extend the jQuery UI Slider control. This plugin adds “pips” to the slider for visual aid, as well as “labels” which the developer can customize.

It is full featured, well written, and particularly easy to add to any existing slider declaration. More importantly, it is very configurable, making it a must if you want to implement sliders in a more meaningful way.

Installation is as easy as downloading both the .js and .css files, and then running the code is little more than:

<div class="slider"></div>

(The default way to use the plugin – as shown above – is to call the pips method on an initialised slider. This will add the markers along the slider, and place the min/max values to the beginning/end of the slider).

Well worth a look in other words.

jquery ui slider pips example

Related Link:

jQuery UI Autocomplete: How to clear the Search Text after Selection Programming 24 MAR 2015

jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. One of the useful widgets in the collection is the Autocomplete widget, which enables users to quickly find and select from a pre-populated list of values as they type, leveraging searching and filtering.

Easy to implement, works like a charm, the question then is how does one clear the search text after the user makes a selection from the autocomplete list?

Simply setting the value to ” in the select event function declaration won’t work out of the box, because the select event occurs before the field is actually updated – in other words, your change will be lost when the textbox is updated. To prevent this from happening, you essentially need to cancel the event to stop it from running to completion – in other words, return false.

So in practice, your declaration should look like this:

<div class="ui-widget">
  <label for="tags">Tags: </label>
  <input id="tags">
var availableTags = [
    $( "#tags" ).autocomplete({
      source: availableTags,
      select: function(event, ui) {
          this.value = "";
          return false;

And that is all there is to clearing the search term from the Autocomplete box after a user selects something!

pink convertible bug - volkswagen beetle

Related Link:

Play Time at Mondeor Restaurant (2015-03-15) Photo Gallery 23 MAR 2015

Although I’ve already mentioned our play time trip for coffee and cake with Monty, Cheryl and Chantelle at Mondeor Restaurant the Sunday before last, I thought it a good idea to post some more photos of the relaxing afternoon out – after all, it isn’t every day that I can get Emily and Jessica on the trampoline at the same time!

IMG_20150315_163218 jessica and emily lotter on the trampoline at mondeor restaurant

Cake, coffee, milkshake, beer, and lots of things for the kids to clamber on, what more could you ask for? :)

Related Link: A Weekend of Tygervalley, Newlands, Blaauwklippen and Mondeor!

St. Patrick’s Day at Blaauwklippen Market (2015-03-15) Photo Gallery 23 MAR 2015

I’ve already written about our trip through to the Blaauwklippen Market Sunday before last, where we were delighted to find an unexpected St. Patrick’s Day celebration on in full swing.

Lots of green (basically everywhere you looked), lots of feel good Irish pub music, and of course the odd Irish dancing lass or two.

IMG_20150315_141420 jessica lotter watching irish dancing girls at blaauwklippen

Of course, thanks to the phone in my pocket, plenty of photos too, meaning I had best post some more pictures from what was a pleasant afternoon out and about!

And if you are not familiar with the Blaauwklippen market, I thought it best I swipe it from their website:

This family market started in March 2011 as a once-monthly market, but due to its popularity we changed it to a weekly market and are now open every Sunday 10h00 to 15h00. The market has a range of stalls from fresh produce and homemade products to crafts and plants. There is also live music, delicious food stalls and of course Blaauwklippen wines to enjoy, so bring a blanket and relax under the trees.

And now you know.

P.S. The pancakes on sale there are the absolute best!

Related Link: A Weekend of Tygervalley, Newlands, Blaauwklippen and Mondeor!

A Weekend of Tygervalley, Newlands, Blaauwklippen and Mondeor! My Life 22 MAR 2015

As always, last weekend was plenty entertaining for Craig and his little girls. With Chantelle working, it was up to us to go exploring, and as such, Emily, Jessica and I found ourselves making the trip through to Bellville to spend a large chunk of Saturday morning browsing around the Tygervalley Shopping Centre, darting in and out of toy, book and clothing stores – much to the delight of young Jessica it must be said.

After a refueling stop at the Tygervalley McDonalds (Jessica had pleaded for a hamburger), we travelled through to Mom and Dad’s pad where Jessica and Emily were to spend the next couple of hours alone with mom, seeing as I was joining Ryan and Dad for the big Super Rugby game at Newlands between home team Stormers and the visiting Chiefs. Traffic was heavier than usual (or as Ryan would put it, we left later than what Dad wanted to because I made myself a cup of coffee first), the result of which was that the stadium was already making a lot of noise by the time we finally parked our car!

stormers versus chiefs 2015 super rugby at newlands stadium

That said, I don’t think arriving a little earlier would have made any difference anyway – lines to get in through the various stadium gates were crazy – it would look like the new ticket scan system is slowing down access into the stadium badly, resulting in a lot of angry people in the process!

ronnie lotter, ryan lotter, and craig lotter watching the stormers at newlands rugby stadium

Anyway, it took a little longer than expected to find our seats, but once we were sitting and settled in, we were treated to an awesome first half spectacle of the Stormers dominating the Chiefs in the scrums and just a tight, exciting game in general. Newlands had a little earlier paid tribute to the heroic firefighters who had been involved in those massive fires just a few weeks earlier, and so there were quite a lot of men in uniform dotted around the stadium. In addition, high school Stellenberg had a contingent of students doing high school track meeting flashes/cheers, which was a bit weird to see at a rugby game, but good for the atmosphere anyway!

super rugby stormers versus chiefs steven kitshoff running with the ball - newlands march 2015

Sadly, come second half and things changed badly for the Stormers – despite the lovely cheerleader girls doing their best to motivate the boys on, the Chiefs turned up the gears and with their superior handling and running down the wings, gave us a proper hiding and lesson in how good rugby should be played.

super rugby dhl stormers cheerleader girls in red hotpants at newlands rugby stadium 3

So that was saddening and disappointing to say the least. After all, I only go to the rugby stadium like once every 1.5 years or so, and so to finally go and then lose is quite depressing as you can imagine.

Anyway, the ride home was a lot smoother and quicker than the ride to the stadium, and after some visit time back at Spolander street with Mom, Dad and my little girls, it was in the car and back to Gordon’s Bay to close off what had been a pleasant Saturday after all.

IMG_20150315_130427 jessica lotter standing in front of silver classic car

Sunday was another glorious day in terms of weather, and so I took Emily and Jessica through to Lourensford Market for some pancake time. However, the closer I got, the more  and more signboards signboards appeared that pointed out that today was the day of the big Getaway Expo held at the Lourensford grounds, meaning a snap decision was made to avoid the massive crowds, parking headaches, and bumper to bumper traffic, and instead make a sharp turn, amble leisurely through the leafy glades of Somerset West, before hitting the R44 and driving down to the always enjoyable Blaauwklippen market instead.

Interestingly enough though, it turned out that Blaauwklippen had decided to celebrate St. Patrick’s day a little earlier than the official date (Tuesday 17 March), and as such everything was decked out in green and a lot of Irish music and culture was on display – which doesn’t really make much sense considering the fact that I don’t think Ireland has that much representation down here in South Africa?

IMG_20150315_135131 emily lotter eating a pancake at blaauwklippen market

Not that it matters though, the girls and I enjoyed the vibe, and Jessica was particularly enthralled with the duo of Irish dancing girls that entertained the crowd with all their kicking and flailing about.

IMG_20150315_141420 jessica lotter watching irish dancing girls at blaauwklippen

The pancakes were good, the girls had fun, and Jessica has already booked a horse ride for the next time that we return – which in itself is something rather amazing given her general fearful nature!


From there we were summoned to come through to the Mondeor Garden Restaurant to meet up with Monty and Cheryl who were driving through from Bellville in order to meet us for a cup of coffee (Chantelle was busy finishing up her shift for the day – i.e. this was all her sneaky plan for some coffee and cake time), which is then exactly how the rest of Sunday afternoon was spent.

IMG_20150315_163238 jessica lotter in the sky on a trampoline at mondeor restaurant

The carrot cake was particularly delicious.

IMG_20150315_163507 emily lotter in the swing canoe at mondeor restaurant

In other words, yet another activity packed weekend for Craig and his girls done and dusted! :)

The Girl with the Chipped Front Teeth Jessica 21 MAR 2015


As a baby, Jessica chipped her two front teeth pretty badly by crashing teeth first into the tile floor at Monty and Cheryl’s place whilst being chased around on all fours by her daddy (i.e. me). Then earlier last year the dentist spotted a cavity, and in November last year we finally got Jessica to the dentist to have the hole plugged and her front teeth fixed (mainly because of the damage it was causing her bottom lip when biting down – sadly, she’s inherited my overbite it would seem).

The procedure was a success (expensive though, so, so expensive), and for the last four months Jessica has been running around with perfect teeth and a healthy bottom lip.

Until Friday that was.

Picking her up from school at the end of the work day, Chantelle arrived to the bad news that following a successful nap time, Jessica stood up too quickly, lost her balance and fell face first to the ground, chipping out both her front teeth in the process.

little girl with broken front teeth - jessica lotter

Needless to say, both Chantelle and I want to cry.

(We’ll have to make a plan though. I don’t necessarily want to have them fixed so shortly before she starts losing her milk teeth, but at the same time I can’t have her damaging her bottom lip again. Sigh, guess it is time for Mr Credit Card to once again make an appearance…)

jQuery UI: How to Select All Text when the User clicks on the Autocomplete control Programming 20 MAR 2015

The jQuery UI toolbox gives you a lot of new controls to play around with if you are already using the awesome jQuery library, one of which it the very useful autocomplete control.

Essentially “Autocomplete enables users to quickly find and select from a pre-populated list of values as they type, leveraging searching and filtering. Any field that can receive input can be converted into an Autocomplete, namely, <input> elements, <textarea> elements, and elements with the contenteditable attribute.

By giving an Autocomplete field focus or entering something into it, the plugin starts searching for entries that match and displays a list of values to choose from. By entering more characters, the user can filter down the list to better matches.”

The problem arises when something is pre-populated in the autocomplete element, i.e. something had previously been selected. When you click on the control to start searching, your newly entered text simply appends on to the end of the existing text, resulting in a gobbledygook search!

To combat this we essentially need to select all text when the autocomplete box is called upon, and it turns out to do this we need to work with the mouse up event.

In practice, the code to achieve this select all text on entering the autocomplete search box looks like this:

<div class="ui-widget">
  <label for="tags">Tags: </label>
  <input id="tags">
$(document).ready(function() {
    var availableTags = [
    $( "#tags" ).autocomplete({
      source: availableTags
    }).on('mouseup', function() {

As you can see, we add the mouseup event monitor at input initialization, and with this now in place, every time the user clicks on the control any existing text is automatically selected – meaning that as soon as the user starts entering text, whatever was there previously will now be lost. Victory!

laptop click with mouse

Related Link:

What to look for when Choosing Workout Wear
[Partner Content] 19 MAR 2015

Nothing kills your motivation to move quicker than a workout outfit that offers zero comfort.

Whether you’re looking for a cute new something to add to your active wardrobe or building it up from the very beginning, it’s all about making sure you have the right pieces. Beyond just being the perfect fit for your body, make sure that they’re the perfect fit for your workout too.

So before you run for the tills, make this your go-to shopping game plan:

Fit First:

Nothing beats that feel-good confidence you get from wearing something that looks and feels like a win, and it’s that confidence that’ll inspire you to keep on working out. So before you make a beeline for the baggy layers, why not opt for a figure-flattering look that will accentuate your shape.

Basic leggings are the perfect starting point for going colour crazy with your pick of ladies gym tops – like the gym-ready racerback vest, the fun 2-in-1 or the old faithful V-neck tee.

lady in exercise wear holding a medicine ball

Dress Code:

Yoga in a tennis skirt, anyone? How about cycling in baggy track pants? The key to comfort starts with keeping your look activity appropriate. Keep in mind the moves you’ll be doing the most, and make this your starting point for loading up your shopping basket.

The best bet for beginners: comfy cropped leggings and a performance top that’s designed to wick away sweat. To be sure after you’ve bagged your pieces, try out a few signature workout moves in (or just outside) the changing room.

lady setting up to run on a track

Sweat Wicking Ability:

Working out and working up a sweat go hand-in-hand, and a sweat-soaked workout is never ideal. Shop for garments with moisture-wicking attributes that draw sweat away from the skin and to the outside of the fabric. These are designed to keep you cool in hotter conditions, and keep you comfy in colder climates.

Our signature moisture management material – Dri-Sport – features in a number of our garments. Look for synthetic blend fabrics such as polyester, nylon and lycra blends, as well as the Maxed Elite range of ladies gym tops and bottoms.

lady doing a star jump exercise in black leggings

Technological Touches:

It’s everywhere: from the waterproof mp3 players used by some swimmers to the impossibly lightweight running shoes used by marathon athletes. Technology continues to take the sporting world by storm, and it doesn’t stop at workout clothing.

Look out for laser cut holes for improved breathability, moisture management technology that wicks away sweat, or reflective details that ensure you’re more visible during low light training sessions.

Layer Up:

Just like your day-to-day wardrobe – getting your active wardrobe on track starts with investing in a few quality basics that are versatile enough to take you from season to season. Save on gear that can easily be layered up in the winter months, and dressed down to the bare essentials in the summer months – especially if you train outdoors.

Start with a moisture-wicking top and bottom as your base layer. Keep warm with a long sleeve running tee and complete your cold-climate look with a rain and windproof nylon shell. And as the days get warmer – dress it all down to the basics again.

man in blue vest doing a push up exercise

So before you shop that look because it looks hot on the hanger, or you love the colour – think twice about how it feels, fits your body and fits into your active lifestyle. You’ve got the tools, now all that’s left to do is rock that champion gear.

Have a winning look that you just have to share? Follow us on Twitter @MrPriceSport or Instagram @mrpsport and share your sporting look by tagging us with the hashtag #mymaxed.

Shop through our range of ladies’ fitness clothing perfect for any workout!

(Please note that this is a Sponsored Post, placed via the MyScoop blog advertising network.)

mr price sport - mrp sport logo

Related Link: