Best sports betting
in South Africa 2023

In this article, we will provide the information about the South Africa betting market for 2023. Based on our big experience we prepared for our players' best betting companies' analysis. Check our TOP lists of best betting companies in South Africa.
Bookmaker
Rating
Bonus
Bet Now
100% Deposit Match Bonus up to R3000 + R30 Fica Bonus
Join Now
100% Deposit Match Bonus up to R3000 + R30 Fica Bonus
Join Now
100% Deposit Match Bonus up to R3000 + R30 Fica Bonus
Join Now
100% Deposit Match Bonus up to R3000 + R30 Fica Bonus
Join Now
100% Deposit Match Bonus up to R3000 + R30 Fica Bonus
Join Now

TOP betting games sites and bonuses

Online sports betting is legal in South Africa and that's another reason why all South Africans love betting on sports. So if you're ready to dive into the world of online sports betting and if you're ready to not just watch your favorite sport, but also make money from it, we're happy to tell you all about it and answer any questions you may have.

Choosing an office where you can make a bet can be very difficult. And the main reason is that you will have a very rich and wide choice. And every site that you open will be able to offer you something that you will find hard to refuse. After all, betting sites do everything they can to attract as many new customers as possible. As we said, there are a lot of these sites in South Africa. And each one is different from the other. Below we will give you an example of the best sites in our opinion for betting:

  • Sunbet
  • Betway 
  • Hollywoodbets
  • Sportingbet 
  • Gbets 
  • World Sports Betting.

Below we will tell you in more detail about all the sites and their benefits.

Sunbet. This bookmaker has fantastic odds, and it's also the best website for cell phones and computers, a deposit of R1000, and a great withdrawal feature. This platform attracts many South Africans. They don't have a voucher feature yet, but it will definitely appear in a short time. This site offers its players features like cash out and lives to bet. And you can also get an extra bonus of R200 on your first deposit of R50 or more.

Betway. It is one of the most famous and fastest-growing bookmakers in South Africa. This platform will offer you all major sports so you will never have the problem of not being able to find the sport you like. You will also always be able to bet at favorable odds. And you can also take advantage of the opportunity to bet for free on this site.

Hollywoodbets. It is probably the most famous bookmaker in all of South Africa. They also have a very reliable mobile site and many deposit and withdrawal options. They also have one of the best odds in all of South Africa. This platform can offer you one of the fastest withdrawal options in the entire country. You can be completely confident that you'll get your money in your account the same day or at most the next day after your request. Since this platform is one of the most beloved in this country, you will find all the markets you can think of here. Right now they're offering you R25 for signing up, but you need to use it within 24 hours of receiving it. But don't be disappointed, because with this site there are many more surprises ahead of you, such as deposit bonuses and more.

We've told you about the most popular betting sites in South Africa. You can always analyze each of these sites and make a choice based on your preferences and desires.

Online sports betting in South Africa

South African players like the fact that they have many choices. But in South Africa, you can find more than 50 betting platforms and it is very difficult to find which one to bet your money on. In order to make the right choice, you need to consider some factors. That is why we will now tell you exactly what you should pay attention to before you bet and start winning money. First of all, pay attention to the payment methods which are available on the platform where you will be betting. Although there are many platforms in South Africa, only a few make life easier and simpler for their customers. After all, the most important thing for you as a player is the ability to quickly deposit your balance and have no problem withdrawing from your account. 

If you opt for a bookmaker that accepts ZAR (that's South African Rand), you won't need to spend extra money to convert to dollars or euros and then back when you want to withdraw your winnings. Another important point about the payment methods. Among all possible platforms, try to find the one with the payment method you are already used to. In South Africa, many can offer you both card payment, bank transfer, and the possibility of using an e-wallet.

The next thing you should pay attention to is whether or not you can trust this platform with your money and personal data. You have to be 100% sure that you are not dealing with scammers. But fortunately, it is not very difficult to identify honest bookmakers. After all, first of all, online betting in South Africa is regulated by law, they have international and local licenses, which you should also pay attention to. We recommend you pay attention to those sites that have a Malta Gaming Authority (MGA) or Curacao eGaming license.

Once you have decided on a platform that you will place your bets on, you need to familiarize yourself with the online betting options offered by the bookmaker. To do this, you need to look on the website to see if they have options for betting on the matches you would really like to bet your money on. If you are for example a big rugby fan but the site you like does not bet on this sport, we would advise you to look for another one, because most likely this is not the bookmaker you are looking for. Also, we would recommend you to look at their odds.

In order to finally understand whether this bookmaker suits you or not, pay attention also to the bonuses and promotions they can offer you. Most platforms will offer you a welcome bonus, which can be very attractive. But we would advise you to pay your attention not only to this bonus. After all, promotions and bonuses for existing clients are something that will increase the value of your bets over time.

Where to bet on sports in South Africa

As we said earlier, in South Africa you have many options where to place your bets and on which sport. We've told you about the 6 most popular sites. Now we want to talk about which site you can bet on and what sport. So, TOP 3 online bookmakers in South Africa for Football.

Betway. We have already written about this site before and you already know that this is a site that offers a lot of bets on all kinds of sports. But we would like to emphasize the fact that this platform is very strong in international soccer. This is a Bookmaker's office that is able to offer you great betting opportunities in the game. First, players can bet on Asian games and then move on to European soccer. Bets can be placed in just a few seconds and the minimum bet amount is R1.

Another platform where you can bet on soccer is Sportingbet.  It offers you not the most competitive odds compared to other platforms. But there are some aspects where this platform stands out. For example, basketball and baseball odds are good here, but soccer and tennis bets have higher margins.

More popular sports to bet

The people of South Africa are very fond of sports. But they love not only to play it but also the opportunity to bet and get money. Each country is associated with a particular sport. South Africa is no exception. Here are very popular sports such as tennis, soccer, rugby, cricket, golf, and cycling. These sports attract many people, and the development of technology also gives the opportunity to make money on it. So, what sports are most often bet on by South Africans? We will tell you about it below. 

Cricket. One of the most popular sports in this country. Especially popular among English-speaking people. The South African cricket team is known as one of the best in the world. That's why locals like to bet on one of the three sports of this sport: Twenty20 Cricket, One Day Cricket and Test Cricket. Today, most betting platforms offer a wide range of cricket betting markets. Local players often choose the main outcome of the match or the winner of the series. But you can also place your bet on the top scorer or number of runs.

Cycling is another sport on which South Africans often bet. But in the last couple of years, the sport has grown in popularity. There are several variants of cycling that South Africans like to bet on. These are individual races, omnium, time trials, team sprints, and keirins.

Among the popular sports in South Africa, not the least of these is rugby. You will find many fans of this sport. As in the case of other sports, rugby bets are placed as often as cricket or soccer. You can also place long-term bets and try to predict the winners of the championship. If you are an experienced player you can also try to bet on a particular player and his chances of scoring first, or the total number of tries. Live rugby is very popular in South Africa and bookmakers use it as an attraction for new customers.

Although the country's soccer teams have not achieved as much success as rugby or cricket teams, still the sport is very popular among South Africans. In South Africa, absolutely all the platforms will offer you to place your bets on soccer. You can bet on anything from predictions on the winner to the number of kicks of a particular player. Most residents bet to test their knowledge of soccer and try their luck.

And the last sport, which is one of the most popular in South Africa is golf. After all, this is where some of the best golf courses are located, so no wonder that this sport is also popular among the betting platforms. The most significant tournaments take place between March and November, so golf betting is most active in these months. Usually, South Africans bet on the winner of the tournament, but you may also be offered odds on a case-by-case basis, on the leader in the first round, or on a top-10 finish.

Based on this information you now know what sport you can bet on.

Best 5 bookmakers to bet in South Africa 2023

So, we hope you have the desire and excitement to betting on a particular sport or even on a particular player. We can help you in this by giving you the top 5 bookmakers you can trust in this matter.

  • Supabets. Price increases and regular odds improvements are waiting for you here, and this will provide you, as South African customers, with great odds. Launched in 2008, this bookmaker offers many promotions, including a welcome bonus, a deposit bonus, and a very popular soccer prediction game where you can win good prizes.
  • Sportingbet. It is another one of the most widely known, popular, and largest bookmakers in South Africa. They offer you features like Auto Cash Out, Cash Out, Edit my Bet, and many other features. They also have their own mobile site which by the way is very easy and accessible to use. They will offer you thousands of bets, and the minimum bet amount is R1. Also, not so long ago, they were the first to launch their Sportingbet Roulette. It's a game that's hugely popular in South Africa and is considered the first legal live roulette in that country.
  • Gbets. This platform has a website that makes some of the most competitive soccer betting odds in South Africa. You can also bet on completely different sports such as soccer, rugby, horse racing, and more. They also offer you features like full withdrawals and partial withdrawals.
  • World Sports Betting. It is one of the oldest betting platforms in South Africa. They offer you a 100% deposit bonus of up to R10 000 and also offer bets on different sports such as soccer, rugby, casino games, horse racing, and others. They also have weekly cashback promotions. Not too long ago they had legal casino-style games that you can play without breaking any laws.

Each of these sites can offer you different types of bonuses. These bonuses include Welcome Bonus, Betting Features, Betting Markets, Betting Odds, User Experience.

  • BetXchange. On this site, you can place bets in any way that is convenient for you: on your computer, on your cell phone, or on a tablet. Users of this platform can get a 100% deposit bonus immediately after registering an account. There is 24/7 customer support available here, which you can contact via live chat and also on WhatsApp. The website is very easy and accessible to use, where you can find all the information you need.

Most convenient sports betting guide

Over the past few years, sports betting has become very popular among residents of many countries around the world. This also applies to South Africa, where recently more and more residents are beginning to bet. But if you are new and not very experienced in this business, you need to start somewhere. So, let's start with the terminology. 

  • Underdogs vs.Favorites. When bookmakers publish a betting lineup, they immediately decide which team is the favorite and which is the other way around. A favorite is a team that is expected to win the game, and Underdog is a team that is predicted to lose.
  • Spreads. You can bet on the favorite or underdog in only two ways. The first is the point spread, which is a bet to outbid to win. The second is the money line. This method is based only on which team will win the game. Moneylines are available for all sports, but mostly this method is used when betting on less efficient sports. For example, hockey or baseball.
  • Over/Unders (Totals). In addition to the fact that there is such a way to determine the line as a favorite or underdog, there are also odds that set the total number of points scored during the game by both teams.

Sports Betting SA FAQ

How to choose a bookmaker?

You can make your choice based on the ones we wrote about above. If there is even one among them that catches your attention you can easily go to their website and place the first trial bet. You can check different sports, analyze the site, find out how easy it is to use, and find out if it accepts the payment method that suits you.

How to calculate betting odds?

South African coefficients are usually displayed in decimal numbers, although they can sometimes be changed to fractional or U.S. coefficients.

Best sporting bet Apps

Since the development of technology, many areas of life have moved online, bookmakers have taken advantage of this and developed their sites for easy use from a cell phone. Many operators have developed their betting applications to extend the capabilities of mobile devices. So below we will give you examples of the 3 best mobile betting apps. 

  • Betway. This platform promotes its brand through numerous sports events. Their mobile app is very convenient and quite easy to use. It has everything you need to place a bet. The app is very easy to download to your device, no matter what operating system it supports. 
  • Hollywoodbets.net. They are also well known in South Africa and offer their customers a wide range of online sports betting. In the developed application you will find everything you are interested in: their bonuses, special offers, and a large catalog of featured games.
  • Sportingbet.  Among the popular sports on this platform, you will find soccer, rugby, cycling, cricket, tennis, and many others. This site and app offer you a nice bonus right after registration. Downloading this app is easy enough. All you have to do is go to the app store on your mobile device and type the name in the search bar.

How to start bet online in SA

In order to start betting online, you need to do a little. First, you have to find the site and the bookmaker that suits you according to all your parameters. After that, you must register on the site or download the application to the device from which you want to bet. After the registration process, you are free to use the site and bet on the sport in which you are most confident. And if you don't understand anything, every site has a support team who will always help you with your questions.

Is online sports betting legal in South Africa

Yes, sports betting is legal in South Africa with a licensed South African bookmaker.

What are the best online sports betting sites

This question can be answered in a very subjective way. After all, the sites we wrote about in our article are some of the best sports betting sites in South Africa. The main criterion should be whether a particular site suits you personally. After all, the main thing is that it suits you according to all the criteria.

How can i bet sports online?

In order to start betting on sports online, as we have already said, you must first choose a bookmaker suitable to your criteria and learn all the terminology that you can meet. If you do not understand something you can always ask customer service or try to find the answer in our article.

TESTTESTtest2Замечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноtest2Замечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — автомат Плинко в знаменитом интернет-казиноЗамечательный досуг для гемблеров со всего мира — автомат Плинко в знаменитом интернет-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноУвлекательное времяпровождение для гемблеров со всей планеты — автомат Плинко в известном казиноУвлекательное времяпровождение для гемблеров со всей планеты — автомат Плинко в известном казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноУвлекательное времяпровождение для гемблеров со всей планеты — автомат Плинко в известном казиноУвлекательное времяпровождение для гемблеров со всей планеты — автомат Плинко в известном казиноУвлекательное времяпровождение для гемблеров со всей планеты — автомат Плинко в известном казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казиноЗамечательный досуг для гемблеров со всего мира — слот-аппарат Плинко в известном онлайн-казино

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined

undefined