Bitcoin Forum
July 08, 2024, 05:32:15 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [40] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 ... 317 »
781  Other / Meta / Re: Trust Flags!!! on: October 27, 2023, 01:33:52 AM
Like you said is only who issued the tag that can remove it, ok... What if in a situation where the member who gave the tag refused to remove it what then do you suggest the victim to do?🤔
If the tag is justified, nothing can be done, if it's not then you'd have to be the good boy everyone expects you to be, that is, being DTs little bitch, that is, to behave nicely, kissing the rings, supporting them whenever possible, and never criticizing or step out of your boundaries.  Then you will have a nice little cult of little bitches circle jerking their masters left and right, either by merit, trust or verbally.

If by any chance you try to say something they don't like, they would welcome you with new tags left and right, to remind you who you were supposed to be.

If you don't want any of that, step outside your room, there is an actual world out there.  It's much nicer than here. it's worse, there is actual blood and killings out here, don't come out, stay in this beautiful place where you can read evil, out here you have to face real evil.😢
782  Bitcoin / Bitcoin Discussion / Re: == Bitcoin challenge transaction: ~1000 BTC total bounty to solvers! ==UPDATED== on: October 27, 2023, 12:38:18 AM
Yep i think somebody has the controll over the Puzzle, not all existing Bitcoin PK maybe i wrote this wrong.

I would never cause a chain reaction on anything, sharing is caring, but when somebody got the luck, to find a OLD COIN, even on the grasfield with a metal detector, or on the webfield with a PK detector, i think it's the same, take it be happy. ( Don't tell me you would let a OLD COIN in the Grass, if you find one, same for BTC, you let it in a weak wallet on a weak address, plz don't cry if somebody find it ! )

And if you ask me why, "if you care about your OLD COINS, you will hold em in the best and securest possible way ( cold wallet, transfer to segwit ... ),why because it's your darling
Alright, I remember watching a documentary about some tribes in Africa, 2 or 3 men with nothing but wooden sticks track down lions when they hunt and after scaring the lions, they would take the hunt and go back to the village, I call them the real men with some balls. 😂
Sure you can find any puzzle key and grab the coins, but remember any other key if touched, the fire breathing dragon will wake up, then no amount of balls could save you from that dragon.😉, I'm using analogy to convey the message.
Btw, sending to segwit addresses does not add to the security of your coins.
783  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: October 26, 2023, 11:11:03 PM

Hello, is this what you need?
Hi, it's close but not so much, here is the logic:

Target = 3487790154155768 now if we subtract 99 G from it, on our 68th subtraction we will land on 3487790154155700, then we can divide it by 100, to get 34877901541557 now with this new key our 57th subtraction lands on  34877901541500 , then we divide it by 100 to get 348779015415 , but since we don't know which key is what, we would consider our target as 100 then by subtracting G 99 times from it, we will have 100 keys, 1, 2, 3, 4, ...........100. We divide and index them in order, like:
Target(100)/100 = 100/100, 99(which is -1 of our target)/100, 98/100, 97/100. We don't save them all, we just specify that we want our target to be divided by 100 for 30 times in a *row and it keeps doing that.

We just need to divide our key by 100, for 2 or 3 times as a test.

*= lol, I didn't calculate RAM needed for such exponentially large number.


How is that i9 able to outperform the 4090 in straight brute forcing?
By polishing.😉
784  Other / Archival / 🖤😏 on: October 26, 2023, 06:54:27 PM
🖤
785  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: October 26, 2023, 06:00:39 PM
Guys come on, seeing a few things like puzzle 66, sha256 double, base58 in your scripts is a turn off.🤣

For how long you are going to stick with finding addresses? I believe I have said this before, you don't need to go beyond rmd160 check, just generate public key, do a sha256 and a rmd160 then compare with rmd160 of puzzle, when you convert rmd160 to address, you are doing the following which is unnecessary : adding network byte + sha256d + taking checksum + adding checksum + encoding to base58. So 5 extra steps, 5 useless operations per key.

Anyways, try this one, subtract G 99 times from target, you will have 100 keys in total, then divide them all by 100, one of the results will definitely be the target/100. Then come here ask me what's next. But first I would need to test your script to see if it does what I said.😉
786  Bitcoin / Bitcoin Discussion / Re: == Bitcoin challenge transaction: ~1000 BTC total bounty to solvers! ==UPDATED== on: October 26, 2023, 03:08:16 PM

Ok let me stop you right there, you really think someone has the keys to all funded addresses?  That's not true, all the private keys (funded keys generated by secure wallets) have 78 digits, you would need to brute force at least 2^128 keys to find all the used addresses.

Even if there is something to hunt, it should be the puzzle keys alone, they are the ones we can grab for our own, anything else is for people, taking them equals to either prison or flying with some angry angel towards hell. 😅

Now even if you find a way to access any key you want, why would you cause a chain reaction of distrust and crash the whole market? You just take a few puzzles and live without any fear, but if you lose control to your greed, that's when lions find you alone in a dark place, and believe me, nobody wants to find out what happens after that.😉
787  Bitcoin / Bitcoin Discussion / Re: == Bitcoin challenge transaction: ~1000 BTC total bounty to solvers! ==UPDATED== on: October 26, 2023, 09:01:20 AM

Look at puzzle 74 nothing happend long time, no pubkey was known, and then a txid was made at 4 am, and at 23 pm it was cleand. Happend often when you look at it.
Well puzzle 74 was never cleaned, but I know what you mean, you want to for example watch the blockchain if puzzle 66 moves, you can grab the public key then use kangaroo to quickly find it's key and double spend it with a higher fee, like the way of hyenas. Well, I guess these woods need all sorts of animals you know? 😉🤣

What I don't understand, is trying to use an API to get millions of keys from blockchain, why so many? You just need a few.
788  Bitcoin / Bitcoin Discussion / Re: == Bitcoin challenge transaction: ~1000 BTC total bounty to solvers! ==UPDATED== on: October 26, 2023, 07:22:57 AM
And sharing is caring i know, when i got to this level i will share what i found ( don't want to be the dumb newbie from start wit " i got this and that " ).

You can find the scripts here. You should share whatever you have here publicly, it's Ok to look like a noob, I'm also a noob myself running around asking stupid questions, but you never know, one of these questions or ideas could lead to a breakthrough. Let me give you a hint, you won't learn new things if you don't share what you know, just try it, share your knowledge and you will see how fast you learn new stuff.
God never lies when he says if you donate, I will give you more than double in this life and thousands of times more in the afterlife.

When you think about it, he gives us knowledge and money, then asks us to share it just to get more. What a nice God.😉
789  Bitcoin / Bitcoin Discussion / Re: 7,000 bitcoins locked on USB stick. Owner not rushing to unlock them on: October 26, 2023, 04:53:47 AM
IMO, he should use this opportunity and take out his coins, according to NIST, cryptography algorithms used in Bitcoin are safe at least until 2030, this is what factoids say sometimes, I'd say 2030 is very optimistic, they could break one year from now, or 1 month, so taking your coin and holding the private key in hand is a good practice. Though this only applies to keys with exposed public keys, otherwise your coins are safe for billions of years, unless we can break rmd160 and sha256, then your coins won't be safe even if they have no public key exposed. Sooner or later crypto has to change algorithms related to private keys.
790  Other / Meta / Re: Icopress ' Merit Source Application 🚩 on: October 26, 2023, 01:11:38 AM
I don't know if anyone here really understands this, vouching for someone to become a source is useless, because admin does the review/audit the applicants personally, then decides whether to accept or not.

What would be constructive contribution is to find any reason why someone should not become a source.
The way you bump this means you benefit from OP becoming a source, then your vouches would lose their credibility.😉
791  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: October 25, 2023, 10:44:43 PM
I love it how knowledge sharing works in our favour, every time I share I gain more. I can see a solution for low bit range keys, especially because when we use their inverse, -n keys, they all start with Fs, and since we can work with scalar, if we try to divide 2 scalar mod n and then add/sub the results, you can see keys starting with many leading hexadecimal characters, it depends on the size of the keys we are dividing.

Another thing to note, if you try to divide then add/sub 2 keys larger than this one:
Code:
000000000000000000000000000000014551231950b75fc4402da1732fc9bebf

You could find the results of addition/subtraction starting with 8, a, b etc following with many zeros, what that means, when we are dividing a key we must consider that we are dividing a key like this :
Code:
fffffffffffffffffffffffffffffffd755db9cd5e9140777fa4bd19a06c8282
Instead of the first one above, so when you divide a key, try to either add 31 leading Fs, or subtract 31 leading Fs before doing your thing. Btw, puzzle 130 has 33 characters right? Anyways good luck.

Edit:
I just got this idea, where is our code genius  @mcdouglasx, 😉 how about a script which subtracts G as many times as we want from target and divides target and all subtracted keys by a number we decide, then subtracts the same from all the results and does the same division, but it should discard all the previously generated keys. And when we reach a low range and find a known key, we can multiply and add the same way we subtracted and divided, but in order to do that, we just need to keep an index in order of subtraction, example: we will call target a, -1 of target b, -2 of target c, etc and when we reach a known key, it could have a name like f,d,k,o,a,r,p,m,a,r,w etc then we'd know exactly which one of the keys on each step was the actual result.

This has become boring, lets make some noise.
792  Bitcoin / Development & Technical Discussion / Re: how many sha256 hashes can a consumer-grade CPU compute per second in average? on: October 25, 2023, 07:08:03 PM
Maybe this topic could also help you. The link on stackoverflow site is for 2012.

Edit: I remember a powerful tool capable of running different hash functions and doing benchmark. It's called hashcat, from hashcat.net😉
793  Economy / Speculation / Re: Wall Observer BTC/USD - Bitcoin price movement tracking & discussion on: October 25, 2023, 06:29:16 PM
Have you noticed people are accumulating early before the halving? You gotta love how psychology can have such an impact in financial markets.😉
794  Bitcoin / Development & Technical Discussion / Re: position of two secp256k1 public keys on: October 25, 2023, 05:17:28 PM
Here, repeat this script with the same points several times and compare each time result.



# Public keys in hexadecimal format
hex_pubkey1 = "02b23790a42be63e1b251ad6c94fdef07271ec0aada31db6c3e8bd32043f8be384"
hex_pubkey2 = "034a4a6dc97ac7c8b8ad795dbebcb9dcff7290b68a5ef74e56ab5edde01bced775"





privkey1 = 2^255
privkey2 = 2^15

easy i have table of 2^*  key Smiley
I hope you realize the script I posted is based on a script either posted by OP or someone else with the same question, the script doesn't do anything other than checking if the 2 keys are the same or not and just gives you the time it took to compare, as pointed out several times, knowing the time it takes to go from A to B, is easy, you just need to count each step, like 1=A, 50=B, then you count by 2, 3, 4 until you get to 50, the time depends on how fast you can count.

Btw, how did you generate your table? I want to do that with different powers.
795  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: October 25, 2023, 04:58:40 PM


By any chance, are you from middle east? If yes you can explain yourself here : https://bitcointalk.org/index.php?topic=620798.0
Or you could find your local language and seek help from a homie.😉
Also note that, the puzzle designer doesn't know how to solve these puzzles, and he didn't leave any clues, because there are no clues.
Ps, I like it the way you attribute trustworthiness to having a github page.😂
796  Economy / Reputation / Re: Should Ratimov be in DT1? on: October 24, 2023, 10:38:52 PM
Have you noticed every single DT and non-DT always complains about trust system, ironically even those who'd abuse others say the same thing, like when you talk with poor and rich, they both complain about inflation, and whine like little kids, it makes you wonder, who is happy here if everyone is complaining? Lol I love this community, it's the weirdest of them all.🤥

I mean, go ask theymos to see what is his opinion, if he didn't complain about it, I will change my name, it makes you wonder once again, who is behind this trust system if even the one who designed it is not happy about it?🤣
797  Bitcoin / Development & Technical Discussion / Re: position of two secp256k1 public keys on: October 24, 2023, 10:23:35 PM
Here, repeat this script with the same points several times and compare each time result.

Code:
import time
import gmpy2

# Define function to convert SEC-encoded public key to coordinates
def sec_to_public_pair(sec):
    if sec[0] != 2 and sec[0] != 3:
        raise ValueError("Invalid SEC format")
    x = gmpy2.mpz(int.from_bytes(sec[1:], 'big'))
    y_squared = x**3 + 7
    y = gmpy2.mpz(gmpy2.sqrt(y_squared))
    if sec[0] == 3 and y % 2 == 0 or sec[0] == 2 and y % 2 == 1:
        y = -y
    return (x, y)

# Public keys in hexadecimal format
hex_pubkey1 = "02b23790a42be63e1b251ad6c94fdef07271ec0aada31db6c3e8bd32043f8be384"
hex_pubkey2 = "034a4a6dc97ac7c8b8ad795dbebcb9dcff7290b68a5ef74e56ab5edde01bced775"

# Convert public keys to coordinates
point1 = sec_to_public_pair(bytes.fromhex(hex_pubkey1))
point2 = sec_to_public_pair(bytes.fromhex(hex_pubkey2))

# Measure execution time
start_time = time.time()

# Compare the x-coordinates of the points
if point1[0] == point2[0]:
    print("The public keys are the same.")
else:
    print("The public keys are different.")

end_time = time.time()
execution_time = end_time - start_time
print(f"Execution time: {execution_time} seconds")

Calculating public keys take around the same amount of time, uncompressed public keys take double the time of compressed keys.
As I told you before, the distance between 50 and 100 would take e.g, 25 seconds if your key rate is 2 keys/s.
10keys/s = estimated time 5 seconds.
50keys/s = around 1 second etc.

Public key generation difficulty is not based on the distance between 2 points, because 1 point addition will always take the same time doesn't matter if you are adding 2+1 or 5000+2^250, it's not like a point representing a 256 bit key weighs more computationally and a point representing 1 bit key weighs less, no they all are the same computationally.
798  Economy / Services / Re: Moderator Wanted - Site Development and Community Building on: October 24, 2023, 10:02:46 PM
How much? Also do you have a trust system where I can conquer the way I did here? I guess since ETH uses the same curve as Bitcoin, I can continue cracking the curve over there. Ok a fair warning, don't click on my profile and don't go to my trust page, accept me the way I am, no judgement.😉
799  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: October 24, 2023, 09:50:33 PM
For now digest this and penetrate order of the group n.
On line 27, change (result_2 - result_1) % n to +, then compare the results starting with 7, a, 6 etc with both targets. Then Ask me what is scalar torsion, and I will give you another script to work with, remember to work with the results by sub/adding them with different values to find a short cut, I simply subtracted target 2 from n and then removed all leading Fs from it, both targets can be divided by each other, you just need to find the right divisor, also remember to remove # from line 30 and 31 separately to see each target's division results as well.
Code:
import gmpy2 as mpz
from gmpy2 import powmod

# Define the ec_operations function
def ec_operations(start_range, end_range, scalar_1, scalar_2, n, divide_1_by_odd=True, divide_1_by_even=True, divide_2_by_odd=True, divide_2_by_even=True):
    for i in range(start_range + (start_range%2), end_range, 1):
        # divide scalar 1 by odd or even numbers
        if i%2 == 0 and not divide_1_by_even:
            continue
        elif i%2 == 1 and not divide_1_by_odd:
            continue
        try:
            # calculate inverse modulo of i
            i_inv = powmod(i, n-2, n)

            # multiply the scalar targets by i modulo n
            result_1 = scalar_2 * i_inv % n
            result_2 = scalar_1 * i_inv % n

            # divide scalar 2 by odd or even numbers
            if i%2 == 0 and not divide_2_by_even:
                continue
            elif i%2 == 1 and not divide_2_by_odd:
                continue

            # subtract the results
            sub_result = (result_2 - result_1) % n

            # print results separately
          #  print(f"{hex(result_1)[2:]}")
           # print(f"{hex(result_2)[2:]}")
            print(f"{hex(sub_result)[2:]}")

        except ZeroDivisionError:
            pass


if __name__ == "__main__":
    # Set the targets and range for the operations
    scalar_1 = 0x0000000000000000000000000000000b011d90a8cba60d550a2e332b5ef58546
    scalar_2 = 0x00000000000000000000000000000003b9914c3de3a292e6b5a42b617140bbfb

    n = mpz.mpz("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141")

    start_range = 57896044618658097711785492504343953926418782139537452191302581570759080747160
    end_range = 57896044618658097711785492504343953926418782139537452191302581570759080747180

    ec_operations(start_range, end_range, scalar_1, scalar_2, n)



When you are done, go for this one :

Code:
import gmpy2 as mpz
from gmpy2 import powmod

# Define the EllipticCurve class
class EllipticCurve:
    def __init__(self, a, b, p):
        self.a = mpz.mpz(a)
        self.b = mpz.mpz(b)
        self.p = mpz.mpz(p)

    def contains(self, point):
        x, y = point.x, point.y
        return (y * y) % self.p == (x * x * x + self.a * x + self.b) % self.p

    def __str__(self):
        return f"y^2 = x^3 + {self.a}x + {self.b} mod {self.p}"

# Define the Point class
class Point:
    def __init__(self, x, y, curve):
        self.x = mpz.mpz(x)
        self.y = mpz.mpz(y)
        self.curve = curve

    def __eq__(self, other):
        return self.x == other.x and self.y == other.y and self.curve == other.curve

    def __ne__(self, other):
        return not self == other

    def __add__(self, other):
        if self.curve != other.curve:
            raise ValueError("Cannot add points on different curves")

        # Case when one point is zero
        if self == Point.infinity(self.curve):
            return other
        if other == Point.infinity(self.curve):
            return self

        if self.x == other.x and self.y != other.y:
            return Point.infinity(self.curve)

        p = self.curve.p
        s = 0
        if self == other:
            s = ((3 * self.x * self.x + self.curve.a) * powmod(2 * self.y, -1, p)) % p
        else:
            s = ((other.y - self.y) * powmod(other.x - self.x, -1, p)) % p

        x = (s * s - self.x - other.x) % p
        y = (s * (self.x - x) - self.y) % p

        return Point(x, y, self.curve)

    def __sub__(self, other):
        if self.curve != other.curve:
            raise ValueError("Cannot subtract points on different curves")

        # Case when one point is zero
        if self == Point.infinity(self.curve):
            return other
        if other == Point.infinity(self.curve):
            return self

        return self + Point(other.x, (-other.y) % self.curve.p, self.curve)

    def __mul__(self, n):
        if not isinstance(n, int):
            raise ValueError("Multiplication is defined for integers only")

        n = n % (self.curve.p - 1)
        res = Point.infinity(self.curve)
        addend = self

        while n:
            if n & 1:
                res += addend

            addend += addend
            n >>= 1

        return res

    def __str__(self):
        return f"({self.x}, {self.y}) on {self.curve}"

    @staticmethod
    def from_hex(s, curve):
        if len(s) == 66 and s.startswith("02") or s.startswith("03"):
            compressed = True
        elif len(s) == 130 and s.startswith("04"):
            compressed = False
        else:
            raise ValueError("Hex string is not a valid compressed or uncompressed point")

        if compressed:
            is_odd = s.startswith("03")
            x = mpz.mpz(s[2:], 16)

            # Calculate y-coordinate from x and parity bit
            y_square = (x * x * x + curve.a * x + curve.b) % curve.p
            y = powmod(y_square, (curve.p + 1) // 4, curve.p)
            if is_odd != (y & 1):
                y = -y % curve.p

            return Point(x, y, curve)
        else:
            s_bytes = bytes.fromhex(s)
            uncompressed = s_bytes[0] == 4
            if not uncompressed:
                raise ValueError("Only uncompressed or compressed points are supported")

            num_bytes = len(s_bytes) // 2
            x_bytes = s_bytes[1 : num_bytes + 1]
            y_bytes = s_bytes[num_bytes + 1 :]

            x = mpz.mpz(int.from_bytes(x_bytes, byteorder="big"))
            y = mpz.mpz(int.from_bytes(y_bytes, byteorder="big"))

            return Point(x, y, curve)

    def to_hex(self, compressed=True):
        if self.x is None and self.y is None:
            return "00"
        elif compressed:
            prefix = "03" if self.y & 1 else "02"
            return prefix + hex(self.x)[2:].zfill(64)
        else:
            x_hex = hex(self.x)[2:].zfill(64)
            y_hex = hex(self.y)[2:].zfill(64)
            return "04" + x_hex + y_hex

    @staticmethod
    def infinity(curve):
        return Point(-1, -1, curve)

# Define the ec_mul function
def ec_mul(point, scalar, base_point):
    result = Point.infinity(point.curve)
    addend = point

    while scalar:
        if scalar & 1:
            result += addend

        addend += addend
        scalar >>= 1

    return result

# Define the ec_operations function
def ec_operations(start_range, end_range, target_1, target_2, curve, divide_1_by_odd=True, divide_1_by_even=True, divide_2_by_odd=True, divide_2_by_even=True):
    # Define parameters for secp256k1 curve
    n = mpz.mpz("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141")
    G = Point(
        mpz.mpz("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),
        mpz.mpz("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),
        curve
    )

    for i in range(start_range + ( start_range%2), end_range, 1):
        # divide target 1 by odd or even numbers
        if i%2 == 0 and not divide_1_by_even:
            continue
        elif i%2 == 1 and not divide_1_by_odd:
            continue
        try:
            # calculate inverse modulo of i
            i_inv = powmod(i, n-2, n)
           
            # divide the targets by i modulo n
            result_1 = ec_mul(target_1, i_inv, G)
            result_2 = ec_mul(target_2, i_inv, G)

            # divide target 2 by odd or even numbers
            if i%2 == 0 and not divide_2_by_even:
                continue
            elif i%2 == 1 and not divide_2_by_odd:
                continue

            # subtract the results
            sub_result = result_2 - result_1

            # print the results  separately
        #    print(f"{result_1.to_hex()}")
          #  print(f"{result_1.to_hex()}")
            print(f"{sub_result.to_hex()}")
           # data = open("result.txt","a")
          #  data.write(str(sub_result.to_hex()) +"\n")
         #   data.close()

        except ZeroDivisionError:
            pass


if __name__ == "__main__":
    # Set the targets and range for the operations
    curve = EllipticCurve(
        mpz.mpz(0),
        mpz.mpz(7),
        mpz.mpz("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f")
    )

    target_1 = Point.from_hex("03439acdf494f8ed30baa5f465da96c62625dbf0f474535ad9bedefd3f23663f4d", curve)

    target_2 = Point.from_hex("02617125f42749f748bd047f3688f79f8e2a1bf5ef9eca7929bb2daa6fa467b8e1", curve)
   
    start_range = 57896044618658097711785492504343953926418782139537452191302581570759080747160
    end_range = 57896044618658097711785492504343953926418782139537452191302581570759080747180
   
    ec_operations(start_range, end_range, target_2, target_1, curve)

When you are done, repeat the same with unknown points, whatever you do with scalars on first script and whatever results you get, perform them on the points as well, all results will be the same.
800  Bitcoin / Bitcoin Discussion / Re: The Man Who Stole Over 51,680 Bitcoin on: October 24, 2023, 06:32:55 PM
Wow, this is very useful especially for us future key solvers, we will make sure not to make the same mistake.🤣
Good points, soo no hardware wallet, no cash, no CEX.

Jokes aside 😏, he didn't steal from people, correct? He essentially stole from criminals, so he is a master thief.
Stealing will never end well, we have seen it over and over, but people never learn, why?
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [40] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 ... 317 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!