Pedro deals with the “one in a million” fallacy

3 December 2007  

Pedro over at Way Of The Mind has recently posted about the fallacy often used by creationists to argue that “life could never happen by chance”. Go and read it, then come back, and I’ll give you my take on it.

Back? Ok.

One of the things that Pedro didn’t address is his post was the notion of the passage of time. He’s quite correct in saying that rolling a dice however many time to get 66666666666666666666 is extremely unlikely in any realistic lifetime, but that’s if we think that all life came about because of a lucky of a one-time hit. Thankfully, that’s not what evolution (in the timescales offered by the evidence of geophysics, palaeontology, cosmology and the other long-time sciences) predicts.

So, carrying on with Pedro’s dice analogy, and written using simplified terms from the language of biology, I decided to knock-up this little Ruby program (because it’s relatively easy to read, even for a non-programmer) to demonstrate this:

AVAILABLE_GENES = (1..6).to_a
WINNING_GENES = [6]
SUCCESSFUL_GENERATIONS = 15
@genome = ""
@generations = 0
 
while @genome.length < SUCCESSFUL_GENERATIONS
  @generations = @generations + 1
  @point_mutation = AVAILABLE_GENES[rand(AVAILABLE_GENES.size)]
  puts "Generation #{@generations}: " + @genome + @point_mutation.to_s
  @genome << @point_mutation.to_s if WINNING_GENES.include?(@point_mutation)
end
 
puts "Successful genome #{@genome} took #{@generations} generations."

I’ll explain a little about the program works here:

AVAILABLE_GENES is the range of possible “genes”, including both “good” (aiding to survival and reproduction) and “bad” (no surviving offspring) mutation possibilities (in this case, the range of values from 1 to 5)
WINNING_GENES is the list of “genes” that allows a generation of offspring to survive and reproduce (in this case, just 6)
SUCCESSFUL_GENERATIONS is the number of generations of surviving offspring that we want
@genome is the “genome” of the current generation
@generations is a counter to see how many generations that we’ve tried so far

When we run this program, it adds “mutations” (in the form of dice rolls) to a “genome”. If the new mutation is advantageous (i.e. a ‘6′) and aids in survival and reproduction then the gene is added to the genome. If the gene is bad (not a ‘6′) then that generation dies without reproducing, and the current genome remains the same.

Each generation, it tries to “reproduce” with a new gene mutation, the successful survive and the unsuccessful remains the same

Of course, this program is (deliberately) incredibly simplistic (it doesn’t take into account populations, retrograde mutations, what constitutes a successful gene, predators, environment, etc.) but it should serve to illustrate the basic point that a successful genome can be arrived at quite easily over time given enough opportunity to reproduce.

Running the program, what do we see? I’ll save the full listings, but I’ll run it a few times to see what we get (further runs are truncated for space):

Desktop:$ ruby dice_simulation.rb 
Generation 1: 2
Generation 2: 4
Generation 3: 6
Generation 4: 66
Generation 5: 661
Generation 6: 663
Generation 7: 664
Generation 8: 661
Generation 9: 661
Generation 10: 661
Generation 11: 662
Generation 12: 663
Generation 13: 662
Generation 14: 661
Generation 15: 665
Generation 16: 662
Generation 17: 665
Generation 18: 666
Generation 19: 6661
Generation 20: 6663
Generation 21: 6666
Generation 22: 66662
Generation 23: 66666
Generation 24: 666666
Generation 25: 6666664
Generation 26: 6666664
Generation 27: 6666665
Generation 28: 6666666
Generation 29: 66666661
Generation 30: 66666661
Generation 31: 66666661
Generation 32: 66666666
Generation 33: 666666661
Generation 34: 666666663
Generation 35: 666666666
Generation 36: 6666666665
Generation 37: 6666666664
Generation 38: 6666666661
Generation 39: 6666666663
Generation 40: 6666666664
Generation 41: 6666666666
Generation 42: 66666666661
Generation 43: 66666666663
Generation 44: 66666666663
Generation 45: 66666666664
Generation 46: 66666666664
Generation 47: 66666666664
Generation 48: 66666666661
Generation 49: 66666666665
Generation 50: 66666666664
Generation 51: 66666666663
Generation 52: 66666666666
Generation 53: 666666666665
Generation 54: 666666666664
Generation 55: 666666666665
Generation 56: 666666666666
Generation 57: 6666666666663
Generation 58: 6666666666661
Generation 59: 6666666666664
Generation 60: 6666666666662
Generation 61: 6666666666666
Generation 62: 66666666666661
Generation 63: 66666666666665
Generation 64: 66666666666661
Generation 65: 66666666666662
Generation 66: 66666666666665
Generation 67: 66666666666666
Generation 68: 666666666666661
Generation 69: 666666666666662
Generation 70: 666666666666665
Generation 71: 666666666666666
Successful genome 666666666666666 took 71 generations.
Desktop:$ ruby dice_simulation.rb 
Generation 1: 3
...
Generation 7: 6
Generation 8: 62
Generation 9: 63
Generation 10: 65
...
Generation 16: 66
Generation 17: 665
...
Generation 27: 666
Generation 28: 6663
...
Generation 42: 6661
Generation 43: 6666
Generation 44: 66664
Generation 45: 66662
Generation 46: 66665
Generation 47: 66666
Generation 48: 666662
...
Generation 55: 666666
Generation 56: 6666662
...
Generation 62: 6666666
Generation 63: 66666664
...
Generation 78: 66666666
Generation 79: 666666665
Generation 80: 666666662
Generation 81: 666666666
Generation 82: 6666666666
Generation 83: 66666666663
...
Generation 90: 66666666666
Generation 91: 666666666663
Generation 92: 666666666665
Generation 93: 666666666666
Generation 94: 6666666666664
...
Generation 97: 6666666666666
Generation 98: 66666666666664
Generation 99: 66666666666662
Generation 100: 66666666666661
...
Generation 107: 66666666666666
Generation 108: 666666666666665
Generation 109: 666666666666662
Generation 110: 666666666666666
Successful genome 666666666666666 took 110 generations.
Desktop:$ ruby dice_simulation.rb 
Generation 1: 6
Generation 2: 61
Generation 3: 66
Generation 4: 665
Generation 5: 665
Generation 6: 666
Generation 7: 6662
Generation 8: 6662
Generation 9: 6666
Generation 10: 66662
Generation 11: 66665
Generation 12: 66666
Generation 13: 666663
...
Generation 23: 666666
Generation 24: 6666662
...
Generation 31: 6666666
Generation 32: 66666663
Generation 33: 66666666
Generation 34: 666666663
...
Generation 42: 666666666
Generation 43: 6666666664
...
Generation 48: 6666666666
Generation 49: 66666666663
Generation 50: 66666666666
Generation 51: 666666666665
Generation 52: 666666666666
Generation 53: 6666666666662
...
Generation 75: 6666666666666
Generation 76: 66666666666664
...
Generation 84: 66666666666666
Generation 85: 666666666666662
...
Generation 88: 666666666666666
Successful genome 666666666666666 took 88 generations.

As we can see, each time we run this, we get different numbers for how many generations it can take to get a successful gene, and sometimes there are 10 or 15 generations without a successful mutation. However we can also see that, eventually, there are successful mutations that add to the genome.

Another thing to note is that if we increase the range of AVAILABLE_GENES to, say 1..9, it will usually take more generations to see the target genome come about. If, however, we add genes to WINNING_GENES (e.g. [1,6,8]) we will reduce the number of generations required.

In fact, in relation to the one-time hit that I mention above, that’s exactly what the creationists propose, and who could blame them for invoking magic in the form of creator-gods with something so unlikely?

My point? One way we can get to a specific genome is by *poofing* it into existence in one step. The other is by adding a little bit per generation over a long period of time.

While evolution doesn’t deal with trying to achieve a specific genome, I know which situation the science supports better.

No other posts are likely to be like this.

Related posts brought to you by Yet Another Related Posts Plugin.

Comments

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

12 Responses to “Pedro deals with the “one in a million” fallacy”

  1. No Way on December 4th, 2007 4:20 am

    I must say, this is a halfway decent treatment of the issue. Do me a favor, lets run the program with some real order of magnitude numbers and see how your computer handles it.

    Also, while the computer is choking on that, lets try to figure out how the genome “knew” it had a beneficial mutation and why it began mutating in the first place.

  2. No Way on December 4th, 2007 4:35 am

    One more thing. could you please find me a ample supply of evidence (possibly fossil in nature) to show the existence of all these intermediary creatures?

  3. nullifidian on December 4th, 2007 3:18 pm

    @No Way

    I was going to respond properly to your comment, until I observed the appeal to Kent Hovind that you posted on WotM. From that, combined with your comments here, I can only conclude that you have no idea what you’re talking about.

    One thing you failed to note was that this was a (repeat after me) simple simulation, not a representation of an actual biological process.

    As it is, I’ll just let you in on a little secret: where I work, I have access to several of the most powerful supercomputers in the world. If I so chose, and could be bothered and needed to rewrite this program in Fortran, and booked the CPU time needed, I could easily do so.

    However, since you lied and didn’t supply a genuine email address, I can only assume that you’re not really interested in the terrabytes of data that would result, and hence I won’t bother. However, if you contact me again and pay for the CPU time and data transfer costs (just to know that you’re serious about asking for the favour) I’d be happy to do so.

    I don’t think that showing you the evidence of intermediate forms would be worth my time. Since you think Hovind has good arguments, I’m not naive enough to think that any actual evidence is going to convince you of anything.

    However, I will be gentle with your TRINITY rating, seeing as you failed to quote any scripture whatsoever. Kudos to you.

  4. PJ on December 4th, 2007 6:00 pm

    “…lets try to figure out how the genome “knew” it had a beneficial mutation and why it began mutating in the first place.”

    That is an impressive failure to understand anything about evolution by natural selection. Genomes obviously don’t need to ‘know’ that the mutation is beneficial – beneficial in this sense is defined entirely as resulting in increased numbers of offspring compared to other genes (fitness).

    The question as to why the genome mutates can be answered mechanically – in that the copying mechanism of DNA/RNA is not 100% accurate and there can be damage to DNA/RNA. It can also be answered teleologically in that while a mechanism that is very innacurate will lead to a loss of fitness by the introduction of lots of errors, a mechanism that is not 100% accurate allows the slow accumulation of beneficial mutations.

  5. TW on December 4th, 2007 10:09 pm

    Good post. You were a lot more restrained in your reply to no way than i think i’d have been!

    The creationist nonsense about probability infuriates me. How some people who claim degree education (or further) can be so clueless is amazing.

  6. No Way on December 4th, 2007 10:38 pm

    Seems I hit a nerve, sorry ;>

    Your rant still says (to me at least) you have no true evidence.

    PJ’s response was well thought out and written. My question for him is simple, what evidence exists for this and what scientifically based experiments can be performed to test it? Otherwise, this is just as scientific as ether.

    I will also note that nobody offered evidence of intermediate species either living or fossilized.

  7. No Way on December 4th, 2007 11:15 pm

    Just one more thing.

    The nature of the tone of your reply points out the flaw with humans being good because it is the right thing to do. I can’t wait until the genes that control our treatment of one another realizes that a limited number of attitudes are appropriate.

    As for the simple simulation. I see it more as simple propoganda. That is why I treated it the way I did. Even if we wrote a fortran (or I could participate in up to seven other programming language choices) program and ran it on the computers either of us have available it still is only propaganda, proof of nothing other than our ability to write code.

    To declare my ignorance is simply ignorant. You know nothing about me or my education. As for my trinity rating, let me help you out.

    - I asked for some simple evidence and you responded with none. All you had to do was tell me about:

    – A book (please not Dawkins, his arguments fall apart too quickly to even be fun),

    – A concept to investigate that has some form of validation available for it (I know validation is an out-dated scientific concept but I still like it when I talk science),

    – A fossil or statistically relevant link between a multitude of various species.

    Now I ask you, which of us is baseless? Without evidence it is simply the one claiming to base their opinion on science.

  8. nullifidian on December 5th, 2007 3:17 pm

    @noway

    Seems I hit a nerve, sorry ;>

    Sorry, no, you didn’t. I try to respond to comments if I can.

    Your rant still says (to me at least) you have no true evidence.

    Sorry, again, it wasn’t a rant, and I’m not even sure what you’re alluding to: the original post, or my response to you. Either way, neither were rants.

    PJ’s response was well thought out and written. My question for him is simple, what evidence exists for this and what scientifically based experiments can be performed to test it? Otherwise, this is just as scientific as ether.

    I’ll let PJ respond to you directly then, of course if PJ so chooses.

    I will also note that nobody offered evidence of intermediate species either living or fossilized.

    Wrong. In my previous response to you I offered up links to three separate avenues of evidence, which you’ve obviously failed to either notice or look at, or you chose to ignore them.

    As for a living example, may I offer up the coelacanth. Not that I expect this to convince you of anything.

    The nature of the tone of your reply points out the flaw with humans being good because it is the right thing to do. I can’t wait until the genes that control our treatment of one another realizes that a limited number of attitudes are appropriate.

    Again wrong. Your assertion as to my “tone” is completely groundless. And, for my own curiosity, which gene or genes are these that are responsible for an appropriate response? To help you out, I’ll provide a link to the Human Genome browser so that you don’t even have to look for it yourself.

    As for the simple simulation. I see it more as simple propoganda. That is why I treated it the way I did.

    How you see it is immaterial: it was a simple simulation, whether you like the outcome or not. The manner in which you treated it (i.e. with bathetic sarcasm) is a red herring.

    Even if we wrote a fortran (or I could participate in up to seven other programming language choices) program and ran it on the computers either of us have available it still is only propaganda, proof of nothing other than our ability to write code.

    I don’t care how many languages you can program in: it’s irrelevent. I’m not interested in a pissing contest that you think you can win.

    Of course, I wouldn’t submit this program to be run on an HPC, that would be a massive waste of compute cycles. However, there have been plenty of HPC simulations of biological processes, including evolution: 1, 2, 3.

    If you wanted, I’m sure you could do something on your desktop.

    To declare my ignorance is simply ignorant. You know nothing about me or my education. As for my trinity rating, let me help you out.

    I never claimed to know anything about you or your education. However, since you seemed to be pimping a link to Kent Hovind as some kind of authority on evolution on WotM, I can only assume that you agree with him and his ideas. If you do not, you didn’t make this completely clear. Do you have a doctorate too, like Hovind? What discipline? What was your thesis on? Can I read it?

    - I asked for some simple evidence and you responded with none.

    Wrong. Again, I refer you back to the three links I provided in my first comment. Obviously the irony of linking to evidence while using the phrase I’m not naive enough to think that any actual evidence is going to convince you seems to have completely bypassed you. I hope you’re now able to see these links.

    All you had to do was tell me about: – A book (please not Dawkins, his arguments fall apart too quickly to even be fun),

    1) Why, is only one book required for you to totally and completely accept something? That seems like a rather poor way to inform yourself, but that’s just my opinion. I prefer to read as much literature on a topic as I’m able before coming to a conclusion, and I also like to give myself the option to change my mind if better evidence comes along.

    2) I have no idea why you single out Dawkins. I can only presume that you have a preconcieved bias against him. Please, if you have evidence-based counter-arguments to those that you think “fall apart too quickly”, I’d be more than happy to read or hear about them.

    As for books, allow me to point you towards:

    • Your Body – The Fish That Evolved by Keith Harrison
    • The Ancestor’s Tale by Richard Dawkins (yeah, I heard what you said, but you don’t seem to have read this one…)
    • The Origin of Humankind by Richard Leakey
    • Dinosaur in a Haystack by Stephen Jay Gould

    I’m sure you can find others if you cared to search.

    Or how about some videos? Are they OK?

    Again, I’m sure you can find more if you do a search or two.

    Actually, I’ll also point you to the Wikipedia article on evolution. Even if you don’t read it (although it might be useful) there are plenty of signposts to further reading at the references section.

    - A concept to investigate that has some form of validation available for it (I know validation is an out-dated scientific concept but I still like it when I talk science),

    Aside from the 3 links I posted above? Sure. Why not read the entire of TalkOrigins, and perhaps some of the books and papers that are used as references therein. You might also want to do your own research using the literature available on JEB, OJOSE, JStor, PubMed or any of the other sources of scientific literature (this is a good list). Of course, you may need to have legitimate access to some of these resources. They offer shitloads of experiments you can do. Of course, they will usually require a laboratory and research specimens, and probably some kind of biological education so that you can understand the results.

    If you have no experience (as you said, I don’t know you) of scientific literature this introduction might be helpful.

    Of course, I would be remiss if I didn’t offer up the alternative sources of “evidence”, so here’s the Institute for Creation Research, Answers in Genesis, the Discovery Institute, the Flying Spaghetti Monster hypothesis, Rael and the reDiscovery Institute.

    - A fossil or statistically relevant link between a multitude of various species.

    Ah, I see you’ve moved the goal posts. First off you wanted an “ample supply” of evidence (even though you didn’t define what you meant by “ample” and I, as a starting point, gave you three). Now you want the same for a “multitude of various species” (again not defining what you mean by a “multitude”. As I noted before, I don’t think any amount of evidence is going to convince you, but at least I’ve tried.

    I also note that you’re still lying about your email address. This does not bode well for me believing anything else you might have to say. But, I’ll let it go this time, although I would in future prefer a bona fide email address (which only I would see). Otherwise, I guess, I should just assume that it’s spam: spammers lie all the time.

  9. PJ on December 7th, 2007 7:20 pm

    “My question for him is simple, what evidence exists for this and what scientifically based experiments can be performed to test it?”

    Well going through my points in turn, the issue of genes ‘knowing’ their are ‘beneficial’ (i.e. fitness) is definitional and thus tautologous – it is just what ‘fitness’ and ‘evolution by natural selection’ mean. For further information you could read an introductory textbook.

    The vulnerability of DNA/RNA to damage, and the infidelity of copying mechanisms is very well attested and, again, I’d suggest a textbook for a description and references to the primary literature.

    As for the teleological argument presented, there is ample mathematical/computational modelling on the evolution of mutation rates, and an experimental literature on mutation rates in various organisms under various circumstances. If you want to read about the studies try looking in google scholar.

  10. TW on December 7th, 2007 11:48 pm

    Null – you could turn this line of comments into a new post to give it some prominence.

  11. nullifidian on December 9th, 2007 6:25 pm

    @TW:

    There’s enough craziness in the world, I don’t think I want to subject the world to more.

  12. TW on December 11th, 2007 10:43 pm

    Fair one… :-)

buy cheap p viagra
buy generic viagra usa
order viagra overnight delivery
buy qoclick se viagra
cheap viagra without prescription
cheapest generic viagra and cialis
buy cheapest viagra online
buy viagra in amsterdam
buy buy cheap viagra
buy viagra cheap online
cheap generic kamagra kamagra uk viagra
cheapest prices on generic viagra
cheap pfizer viagra
buy viagra online without prescription
cheap viagra from pfizer
buy pharmaceutical viagra
buy online online viagra viagra
viagra and generic
cheap cheap discount sale viagra
buy keyword online viagra
cheapest prescription viagra
cheap deal viagra
order viagra 1
buy viagra online india
buy purchase viagra online confidential
buy viagra bradenton
buy herbal viagra viagra
buy herbal pill viagra viagra
cheap online pill price viagra viagra
buy online sale viagra viagra
viagra br
buy viagra at the best price
order phizer viagra
viagra by overnight delivery
cheap gerneric viagra
buy sublingual viagra on the internet
cheap online softtabs viagra
buy viagra in the philippines
viagra can cause loss of hearing
buy viagra soft tabs
buy viagra now
buy viagra in malaysia
buy viagra and cilas
buy viagra in toronto
cheap cialis viagra
buy sildenafil viagra
over sea generic viagra
discount viagra pills
buy viagra at safeway
cheap kamagra viagra
over the counter viagra london
buy real viagra pharmacy online
buy herbal viagra
cheapest price viagra
buy viagra 50mg
buy cheapest viagra
order generic viagra
buy viagra per pill
cheap foreign generic viagra
over the counter viagra substitutes
buy buy online sale viagra viagra
cheap followup post viagra
cheap cheap viagra
buy viagra online in australia
buy legal fda approved viagra
cheapest viagra homepage
buy online online pill viagra viagra
cheap cheap deal pill viagra viagra
cheap deal deal pill viagra
order viagra softtabs
cheap genric viagra online
viagra calgary
cheap viagra ambien generic cananda
cheap pill viagra
buy viagra cheap through online sales
buy viagra online a href
cheapest viagra substitut
buy viagra online canada
buy free viagra on internet
buy generic no online prescription viagra
buy online price viagra
cipro 20
buy viagra online no prescription
buy viagra in new zealand
cheapest viagra online in the uk
buy viagra cheap prices
buy cheap deal pill viagra
buy online viagra where
cheap viagra direct
viagra by mail
viagra buy ionline
buy viagra price drugs on
cheap viagra online prescription
order viagra prescription
buy file viagra
viagra canada pharmacy
cheap citrate generic sildenafil viagra
buy online levitra cialis viagra
buy viagra other drug online
buy viagra online alternative viagra
cheapest viagra anywhere
buy female viagra
viagra and generic drug
buy generic viagra online pharmacy online
viagra buy uk
viagra canada online pharmacy
buy internet viagra
cheapest cheap viagra
order viagra online no rx prescription
cheapest viagra in uk che
order cheap viagra fas
buy viagra prescription america
cheaper cialis levitra viagra
buy viagra viagra
viagra and cialis cheap
cheap viagra buy pharmacy online now
buy herbal viagra longer erections
buy in uk viagra
discount viagra drug
buy viagra cheaply
discount viagra in the usa
buy viagra free on internet
viagra canada
cheap viagra india
buy viagra vaniqa prescription
buy viagra meds online
cheap pharmaceutical viagra
buy viagra line
buy viagra without a prescription
buy online sale viagra
cheap viagra
order cheap viagra
buy australian viagra
buy generic viagra pharmacy online
cheap viagra new zealand
buy cailis viagra singapore
discount viagra mastercard
cheap prescription viagra without
buy taladafil viagra
cialis 20
viagra and coupon
cheap online purchase viagra
buy viagra the best quality pills
buy viagra or cilas
buy real viagra online
buy discount generic viagra
order viagra international ships
cheap generic viagra overnight delivery
cheap generic viagra no script
order mexican viagra
buy lady uk viagra
buy discount online viagra
order viagra online
buy viagra alternative
buy cheap viagra cheap viagra online
buy online prescription viagra
cheap deal discount viagra viagra
viagra buy generic
buy online order viagra
buy viagra internet
cheap prescription viagra
buy cheap viagra online now
buy viagra and overseas
cheapest viagra online plus zenegra
over the counter drug to viagra
viagra canada online
order viagra online uk
discount viagra 10 pack generic
cheap online pill viagra
cheapest generic silagra viagra
cialis 30
order telephone viagra overnight delivery
cheap order prescription viagra
buy cheap viagra on
buy kamagra viagra india
viagra buy do nu
cheap drug online prescription viagra
cheapest viagra generic substitute
cheapest viagra on the internet
cheapest viagra prices us licensed pharmacies
viagra by mail order
buy viagra powered by phpbb
viagra buy viagra online
cialis 10
buy viagra online inu
buy online viagra securely
buy cheap viagra online now uk
cheapest generic viagra 99 cents each
cheap molde ticket viagra
cheap herbal viagra viagra
buy viagra online cheap
buy canada in viagra
buy in spain viagra
buy viagra pill online
buy viagra online at cheap price
buy viagra ups
viagra brazil
cheap herbal sale viagra viagra viagra
discount viagra generic
buy viagra online in
cheap online viagra viagra
cheap viagra kamagra
buy viagra online web meds
cheap viagra uks
viagra can
discount viagra sale
order status viagra
buy viagra online au
cheap site viagra
cheap viagra cialis india
buy viagra online in the uk
buy online pharmacy viagra
buy diet viagra online
cheapest generic viagra
buy viagra in spain
order discount viagra
cheap uk viagra
cheapest viagra in the uk
cialis 1
viagra buying online
buy viagra for cheap
cheap kamagra uk viagra
buy generic viagra online
buy viagra cialis levitra
discount viagra pharmacy online
cheapest viagra on the net
buy viagra online 35008 buy viagra
cheap generic viagra uk
cheap generic pill ultram ultram viagra
buy no online prescription viagra
buy cheap uk viagra
buy levitra viagra online
discount viagra
order prescription viagra
viagra canadaian prices
buy viagra where
cheap viagra no prescription
buy online uk viagra
cheapest brand viagra
buy viagra cialis levitra online prescription
cialis blindness
buy low price viagra
buy viagra online paypal
order viagra uk
buy free viagra viagra
cheapest uk viagra
buy viagra porno at maygreat org
buy line viagra where
order forms for buying viagra
buy generic viagra viagra
cheap generic substitute viagra
order viagra air travel
buy viagra from safeway
buy cheap cheap kamagra uk viagra
cheap generic viagra
buy viagra cheap
cheap viagra at online pharmacy
cheap inexpensive viagra
buy pfizer viagra
viagra canada generic
buy online us viagra
buy viagra s journal
cheap quality viagra
buy viagra online online pharmacy
buy cialis viagra
buy price viagra
cheap viagra bi
cheap canadian viagra
buy canada viagra
buy site viagra
cheap price viagra
buy online drug viagra pharmacy
buy viagra contact us page
cheapest viagra world
order 50mg viagra
buy viagra us pharmacy low prices
cheapest viagra and regalis
buy viagra online bingo game
viagra and hair loss
viagra cailis
order viagra viagra online
viagra buy australia
cheap pill pill sale viagra
cheapest generic viagra 99 cents
cheap drugs viagra cialas
cheap gen viagra bi
buy levitra viagra
cheap online pharmacy viagra viagra
buy cheap viagra in uk
buy viagra online off pharmacy prices
buy online purchase viagra
cheap no prescription viagra
buy viagra toronto
buy viagra pill
buy pill prescription viagra without
buy viagra cheapest best prices online
buy pill viagra
cheap generic viagra substitute
buy viagra online gay sex movies
cheap online price price viagra
cheap phizer viagra
cheapest generic viagra and cialis pills
buy generic viagra buy
cheapest viagra prices
viagra canadian
buy pharmacy pill viagra
buy online securely viagra
buy prescription viagra without
cheap fioricet soma tramadol viagra
buy online viagra
cheap viagra online a href
buy discounted viagra
buy keyword viagra
buy viagra online pharmacy
buy p viagra
cheap man viagra
cheap india viagra
buy viagra online discount
viagra brands
buy viagra from canada
cheapest viagra on line
cialis 30mg
cialis 10mg
buy viagra prescription america carisoprodol
order viagra cialis levitra pharmacy
cheap generic india viagra
buy real viagra
cheapest generic viagra sent overnight
buy generic viagra
cheapest viagra
buy viagra online get prescription
buy in online usa viagra
buy viagra prescription online
buy viagra safeway pharmacy
viagra buy general
order pfizer viagra with mastercard
viagra buy in uk online
discount viagra brand drug
cheap generic drugs viagra cialis levitra
buy viagra by pill
cheap viagra discount
buy cheap viagra online
cheap drug retin viagra wellbutrin
buy now online viagra
buy viagra securely online
cheap websites for viagra
cialis 24
cheapest generic price viagra
cheap viagra online order viagra now
cheapest viagra overnight
buy line viagra
order order viagra
buy viagra in reliable online drugstore
cheapest generic viagra and canada
buy later now pay viagra
buy softtabs viagra
discount viagra uk
discount viagra sales online
buy can reply viagra
cheap viagra discount viagra buy viagra
discount viagra prescription drug
cheap online generic viagra
buy online prescription viagra without
viagra buying
cialis 5
cheap viagra online uk
buy cheap online viagra
cheap meltabs viagra
cheap online viagra
cheap herbal sale viagra viagra
order viagra now money
cheap online order viagra
buy 100 mg viagra
buy cheap viagra prescription online
cheap overnight viagra
buy viagra 100mg
buy cialis online viagra
order viagra online consumer rx
buy viagra new york
buy viagra online uk
order viagra buying viagr
cheap viagra generic paypal
cheap viagra generic
cheap referrers total viagra
discount viagra europe
cheap generic viagra 1.00
buy overseas viagra
order viagra with mastercard
discount viagra cialisviagra buy
buy cheap sale viagra
buy buy cheap medved viagra
buy viagra cialis