[Help]Need some help with IsValidModel by ******
#1

Hey guys,
I've been working on an object editing system and tried to filter out all invalid objects models by this IsValidModel function written by ******(maybe it's been few years?).

It worked perfectly as usually for object models ranging from 321 to 18630(or similar?) which were in samp before 0.3c,however,IT FILTERED OUT ALL 830 OBJECTS ADDED IN SAMP SINCE 0.3c(18630 ~ 19515)!
I do need to keep those new object models but I am unable to figure out how 'IsValidModel' works thus I can't modify it at all!

Has somebody came across the same problem or have any idea how to solve it?Please post here buddies!

I wonder whether the following code should be updated(or update available but I haven't found it?) in YSI system or something?

Here's the code 'IsValidModel':
pawn Код:
IsValidModel(modelid)
{
    // Created by ******.

    static modeldat[] =
    {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128,
        -515899393, -134217729, -1, -1, 33554431, -1, -1, -1, -14337, -1, -33,
        127, 0, 0, 0, 0, 0, -8388608, -1, -1, -1, -16385, -1, -1, -1, -1, -1,
        -1, -1, -33, -1, -771751937, -1, -9, -1, -1, -1, -1, -1, -1, -1, -1, -1,
        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
        -1, -1, -1, -1, -1, -1, -1, -1, 33554431, -25, -1, -1, -1, -1, -1, -1,
        -1073676289, -2147483648, 34079999, 2113536, -4825600, -5, -1, -3145729,
        -1, -16777217, -63, -1, -1, -1, -1, -201326593, -1, -1, -1, -1, -1,
        -257, -1, 1073741823, -133122, -1, -1, -65, -1, -1, -1, -1, -1, -1,
        -2146435073, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1073741823, -64, -1,
        -1, -1, -1, -2635777, 134086663, 0, -64, -1, -1, -1, -1, -1, -1, -1,
        -536870927, -131069, -1, -1, -1, -1, -1, -1, -1, -1, -16384, -1,
        -33554433, -1, -1, -1, -1, -1, -1610612737, 524285, -128, -1,
        2080309247, -1, -1, -1114113, -1, -1, -1, 66977343, -524288, -1, -1, -1,
        -1, -2031617, -1, 114687, -256, -1, -4097, -1, -4097, -1, -1,
        1010827263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32768, -1, -1, -1, -1, -1,
        2147483647, -33554434, -1, -1, -49153, -1148191169, 2147483647,
        -100781080, -262145, -57, 134217727, -8388608, -1, -1, -1, -1, -1, -1,
        -1, -1, -1, -1, -1, -1, -1, -1, -1048577, -1, -449, -1017, -1, -1, -1,
        -1, -1, -1, -1, -1, -1, -1, -1, -1835009, -2049, -1, -1, -1, -1, -1, -1,
        -8193, -1, -536870913, -1, -1, -1, -1, -1, -87041, -1, -1, -1, -1, -1,
        -1, -209860, -1023, -8388609, -2096897, -1, -1048577, -1, -1, -1, -1,
        -1, -1, -897, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1610612737,
        -3073, -28673, -1, -1, -1, -1537, -1, -1, -13, -1, -1, -1, -1, -1985,
        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1056964609, -1, -1, -1,
        -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
        -236716037, -1, -1, -1, -1, -1, -1, -1, -536870913, 3, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
        -1, -1, -1, -1, -1, -2097153, -2109441, -1, 201326591, -4194304, -1, -1,
        -241, -1, -1, -1, -1, -1, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, -32768, -1, -1, -1, -2, -671096835, -1, -8388609, -66323585, -13,
        -1793, -32257, -247809, -1, -1, -513, 16252911, 0, 0, 0, -131072,
        33554383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8356095, 0, 0, 0, 0, 0,
        0, -256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
        -268435449, -1, -1, -2049, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
        92274627, -65536, -2097153, -268435457, 591191935, 1, 0, -16777216, -1,
        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 127
    };
    if ((modelid >= 0) && ((modelid / 32) < sizeof (modeldat)) && (modeldat[modelid / 32] & (1 << (modelid % 32))))
    {
        return 1;
    }
    return 0;
}
P.S.I have searched the forum serveral times by key words 'IsValid','IsValidModel','IsValidObject' but found nothing helpful.
Reply
#2

Quote:
Originally Posted by ******
Посмотреть сообщение
Actually, it is apparently missing a few of the lower objects too - IIRC the nodding chicken isn't in that set, and maybe a few other script controlled objects not in IDE files. I'll try and set something up to generate the array, until then you could do "if old object use that, else check another way".
Here comes the function author himself ha,thanks pal!
Anyway I have tried to seperate the checkings,basically in 3 ways,
1.objects between 615 to 18630 using your array to check.
2.objects between 321 to 615,2nd checking(Actually no checking,I'm not quite sure,still testing).
3.objects between 18631 to 19515,3rd checking(Actually no checking either 'cause they're all valid)
So it would be like this:
321----614 615----------18630 18631---19515
No checking IsValidModel No Checking
Quite awful isn't it,however it works..

Hope updated array being generated and released soon~
And thanks for the help!
P.S.Title updated.
Reply
#3

Quote:
Originally Posted by ******
Посмотреть сообщение
What are 321-614? Aren't those vehicles and weapons? If all the IDs 18631-19515 are valid it does make the update slightly easier. However, I made that function a LONG time ago and it was automatically generated by code I no longer have. However I would say that actually splitting it up like that is probably the simplest way in terms of development. Technically integrating the lower objects in shouldn't mean too much work as they are in the range covered by all those leading zeros at the start of the array.

Each cell holds 32 1s or 0s, each for one single object. That's how this compresses 18,000 objects in to "only" ~560 cells. It would also have been vastly more obvious had I used hex or even boolean numbers instead of decimal, but meh (both would have made it FAR easier to tweak which objects are valid).
321-614 is just an approximate range of objects I intended to make use of(yes they are weapons and vehicles) and several tests've proven the valid range is basically 321-373.And yes to bind all these together is a piece of cake.

Now I can understand that the array above was perhaps generated from the original GTA:SA IDE files and stored in an large array of cells consist of 32 bits.
Thanks a lot~
Reply
#4

This should do it (W.I.P. for Hold Studio):
PHP код:
#!/usr/bin/env php
<?php
    
if (is_dir('/Volumes/C/Program Files (x86)/Rockstar Games/GTA San Andreas'))
        
define('GTA_DIR''/Volumes/C/Program Files (x86)/Rockstar Games/GTA San Andreas');
    else
        
define('GTA_DIR''/Volumes/BOOTCAMP/Program Files (x86)/Rockstar Games/GTA San Andreas');
    
    
$scanner = new HoldStudioScanner();
    
    
BuildBitArray($scanner);
    
//BuildModelNameArray($scanner);
    
    
function BuildBitArray(HoldStudioScanner $scanner null) {
        if (
$scanner === null)
            
$scanner = new HoldStudioScanner();
        if (empty(
$scanner->models))
            
$scanner->scan(GTA_DIR);
        
        for (
$i 0$i 20000 32$i++) {
            if (
$i 2)
                echo 
", ";
            else if (
$i)
                echo 
",\n";
            
            
printf("0b%032b", @$scanner->valid[$i]);
        }
    }
    
    class 
HoldStudioScanner
    
{
        var 
$models = array();
        var 
$valid;
        
        function 
scan($directory) {
            
$directory realpath($directory);
            
            if (
$directory === false)
                throw new 
InvalidArgumentException("Invalid directory given: \"$directory\".");
            
            
$iterator = new RecursiveIteratorIterator(
                            new 
HoldStudioRecursiveFilterIterator(
                                new 
RecursiveDirectoryIterator($directory)
                            )
                        );
            
            
$valid = array();
            
            foreach (
$iterator as $path) {
                
$contents file_get_contents($path);
                
                if (
preg_match_all('/^\s*(objs|anim|weap|tobj)\s*$(.*?)^\s*end\s*$/ism'$contents$object_matchesPREG_SET_ORDER)) {
                    foreach (
$object_matches as $match) {
                        switch (
strtolower($match[1])) {
                            case 
'inst':
                                
$pat = <<<EOD
                                    /^
                                        \s*(?<id>\d+)\s*,
                                        \s*(?<model>[\\(\\)a-z0-9_+-]+)\s*,
                                        \s*(?<interior>-?\d+)\s*,
                                        \s*(?<pos_x>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<pos_y>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<pos_z>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<rot_x>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<rot_y>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<rot_z>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<rot_w>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<lod>-?\d+)\s*
                                    $/ismx
EOD;
                                
                                break;
                            
                            case 
'objs':
                            case 
'anim':
                            case 
'weap':
                                
$pat = <<<EOD
                                    /^
                                        \s*(?<id>\d+)\s*,
                                        \s*(?<model>[\\(\\)a-z0-9_+-]+)\s*,
                                        \s*(?<texture>[\\(\\)a-z0-9_+-]+)\s*,
                                        (\s*(?<clumps>\d+)\s*,)?
                                        (\s*(?<animation>[\\(\\)a-z0-9_+-]*)\s*,)?
                                        (\s*(?<count>\d+)\s*,)?
                                        \s*(?<draw_distance>-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?)\s*,
                                        \s*(?<flags>-?\d+)\s*
                                    $/ismx
EOD;
                                
                                break;
                            
                            case 
'tobj':
                                
// ID, ModelName, TextureName, ObjectCount, DrawDistance, [DrawDistance2, ...], Flags, TimeOn, TimeOff
                                
$pat = <<<EOD
                                    /^
                                        \s*(?<id>\d+)\s*,
                                        \s*(?<model>[\\(\\)a-z0-9_+-]+)\s*,
                                        \s*(?<texture>[\\(\\)a-z0-9_+-]+)\s*,
                                        \s*(?<clumps>\d+)\s*,
                                        
                                    /ismx
EOD;
                                break;
                            
                            default:
                                throw new 
UnexpectedValueException("Unsupported section: \"{$match[1]}\".");
                        }
                        
                        if (
preg_match_all($pat$match[2], $matchesPREG_SET_ORDER)) {
                            foreach (
$matches as $m) {
                                
$this->models[$m['id']] = (object) array(
                                    
'id'            => $m['id'],
                                    
'name'          => $m['model'],
                                    
'texture'       => $m['texture'],
                                    
'clumps'        => $m['clumps'],
                                    
'count'         => @$m['count'],
                                    
'draw_distance' => @$m['draw_distance'],
                                    
'flags'         => @$m['flags'],
                                    
'valid'         => false,
                                    
'file'          => basename($path)
                                );
                                
                                if (
preg_match('/^lod|lod$|\blod\b|lod_|_lod|lodbit|^laeLOD|lod\d+$/i'$m['model']))
                                    continue;
                                
                                if (@
$m['draw_distance'] > 299.0)
                                    continue;
                                
                                
$id = (int) $m['id'];
                                
$slot = (int) floor($id 32);
                                
                                if (!isset(
$valid[$slot]))
                                    
$valid[$slot] = 0;
                                
                                
$valid[$slot] |= << ($id 31);
                                
                                
$this->models[$m['id']]->valid true;
                            }
                        }
                    }
                }
            }
            
            
$this->valid $valid;
        }
        
        public function 
isValid($id) {
            
$slot = (int) floor($id 32);
            
            if (!isset(
$this->valid[$slot]))
                return 
false;
            else
                return !!(
$this->valid[$slot] & (<< ($id 31)));
        }
    }
    
    class 
HoldStudioRecursiveFilterIterator extends RecursiveFilterIterator
    
{
        function 
__construct(RecursiveDirectoryIterator $iterator) {
            
parent::__construct($iterator);
        }
        
        public function 
accept() {
            
$current $this->current();
            
            if (
$current->isDir())
                return 
true;
            
            
$ext strtolower($current->getExtension());
            
            return 
in_array($ext, array('ide''ipl'), true);
        }
    }
?>
Output (SA-MP 0.3e):
Код:
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b11111111111011111110110111111110, 0b00000000001111111111111111111111,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b11111111111111111111111110000000,
0b11100001001111111111111111111111, 0b11110111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b00000001111000000111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111100011111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111011111, 0b11111111111111111111111101111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111100000000000001111111111,
0b11111111111111111111111111111111, 0b11111111111010111101111111111111,
0b11111111111111111111111111111111, 0b11111111111111111001111111111111,
0b11111111111111111111111111111111, 0b10000000000011111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111011111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111101011101111111111, 0b11111111111111111111111111110111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111110011,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111100111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111011110111101111,
0b10000000000000000000000000000000, 0b00000010000010000000010011111111,
0b00000000001000000100000000000000, 0b11111111101101100101111000000000,
0b01110000111111111111111111111011, 0b00000000001111111111111111000000,
0b10011111110000000000001111001100, 0b11111111101111001100000000011110,
0b00001110110111111100111111111111, 0b11111111111111111111111111001110,
0b11111000000011111111111111111111, 0b11111111111111111110111101101011,
0b01000000000000000111111101110111, 0b11010111111111111111000001111100,
0b11110011111111111111111001111111, 0b01011111111111111111111111111111,
0b01111110100001111011111010101011, 0b10001001010101100100001000010000,
0b10100000000000000001010000101010, 0b00001000001111101010111100100000,
0b11111111111111111111111010100001, 0b00000000011111111111110101111111,
0b00001111111111111111110000111100, 0b11011110111111001111011011111011,
0b11111111111001111111110011001110, 0b11111111111111111111111111111111,
0b01111111111111111111111110111111, 0b01111000111111111111110111111111,
0b00011100000000010000000000000111, 0b00001111111100001000000000000000,
0b10101111001001110111110011111000, 0b01010101010101010110100000101011,
0b01110111110101011111110100101001, 0b01111111111100101110111011111011,
0b11111111111111111100101111001000, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b00000000011111111111111111111111, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b11111111000000000000000000000000, 0b00010100101000001111111111111111,
0b11111111101111011111111111000000, 0b00111111111111111111111100000001,
0b11110000000000000000000000000000, 0b00000101010101010111111111111111,
0b11110010110111000011111010000000, 0b11111110111110000111110111010000,
0b00000000000000011111111111111111, 0b00000000000000000000000000000000,
0b11111111111111111111111111000000, 0b11111111111111111111111111111111,
0b11011111111111111111111111111111, 0b00000000000000000000000000000111,
0b00000000000000000000000000000000, 0b11010111111000000000000000000000,
0b10110011001000101111111111111111, 0b00011000010111010101011111010111,
0b11011111111111111111010101111111, 0b11111111111111100000000000000011,
0b11111111111111111111111111111111, 0b11111111111111111100000101111111,
0b00000000000000000000000111111111, 0b00011000000001111000000000000000,
0b11111111111111100111100000000100, 0b11110100011011111111110000000000,
0b11111110001001111111110000000111, 0b11111111110110000100101010101000,
0b11111111111111111100000000000000, 0b11111111111111111111111111111111,
0b11101011111011110011111111111111, 0b11111111111111111111111111111111,
0b00010001000001111100001111111111, 0b00100000000000000000000000000000,
0b00000000000000000000000000000000, 0b11111101000000000000000000000000,
0b11110001110101000001111111111111, 0b00000000000001101111010000010010,
0b11111111111111111111111110000000, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11100001111100000111100000000000, 0b11100110011111111101011111111011,
0b00000000000000000000000100111001, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000100110000101100111111001100,
0b11111111111110000000000000000000, 0b00000000000001111111111111111111,
0b11000001111111011100000110000000, 0b00000111111101111111111111111111,
0b00000000001000011110000111010010, 0b00111000100111110011110000000000,
0b00111111111110101000001001111110, 0b00000000000000100001111100000000,
0b11111111111111111111111100000000, 0b01111111111111111111111111111111,
0b01011100001111111110101111110111, 0b11100010111111100000000000111111,
0b11011000011000110011100011111001, 0b01100110000011110001100000010000,
0b00000111100000000000000000000100, 0b00010111111101100011100001101010,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b11111111101111111000000000000000, 0b01111000000111100000000111111111,
0b00000000011111110111111110111111, 0b11111111111111111111111111111111,
0b00000000101001101111111111111111, 0b11111111111111111111111111111110,
0b10100001000000111111111111111111, 0b11111111111111111111111111111011,
0b00000000000000000000000000000011, 0b00000000000000100000000000000000,
0b01110001111111010000000000010000, 0b11111101111101100011011111111111,
0b10000000011111111111110101010111, 0b11011111100000010011001010110111,
0b11010011101011111111111111111111, 0b10101010000010010000001111111000,
0b11111000101111100000111110010110, 0b11111111100000000000000000000001,
0b11111111111111111111111111111111, 0b01111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111101111111111,
0b11111111111111111111111111111111, 0b00000000000001111111111111111111,
0b00111000000000010001000000000010, 0b00000000000011100000000000000000,
0b00000000000000000000100000000000, 0b00000000000000000000000000000000,
0b11110101000000000000000000000000, 0b00011111111000000101001000000111,
0b11110000011110100011011101000000, 0b01111110111111111111111111111111,
0b10101000000111110100101111011100, 0b11111111111111111111110000111010,
0b00000000000000000000011111111111, 0b11111111111111111111111111111110,
0b00001000111111111111111111111111, 0b00000000000000000000000000000000,
0b00001111111110000000001111111101, 0b00111110000001111111101110100000,
0b00001111111101111100011111000100, 0b11101010111101010011000111110000,
0b11101010000000000000000111010001, 0b10001110110101100101000001110101,
0b11000011111010101011111111111111, 0b11010110101111110000000000111111,
0b00011111111111111111111111010100, 0b11111111111111111111111111111111,
0b00111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b10000000001111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b00000000000000111111111111111111,
0b00000000000000000000000001000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00011111000000000000000000000000,
0b00011111111111100111111111111111, 0b00000011111111111111111111111110,
0b00000000000000000000000000000000, 0b00101100000110000000000000010000,
0b11100000111110000000001000000000, 0b11111000000000011111111100000000,
0b11010000111111101011111111111111, 0b11001101010100011100011101000011,
0b11111111111101010011110011100111, 0b01000000000111111001101111111111,
0b00000000111010111111110010000111, 0b11111111111000000000001111111111,
0b11111111111111111111111111111111, 0b11111111111011110111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b00000000000001100000001111111111, 0b00000000000000000000000000000000,
0b11100000000000000000000000000000, 0b00000000000000000000000000000001,
0b11111111111111111111110000010000, 0b00000111111111111111111111111111,
0b11111111111111111110100000000000, 0b11111111111111111111111110111111,
0b00000011100001111111111111111111, 0b00000000001100000000000000000000,
0b01100110001011010000000000000000, 0b11111111111111111111111111111111,
0b00000111111111111111111111111111, 0b00000000000000000000000011111110,
0b11111111110100000000000000000000, 0b00000000000000000111111111101011,
0b01100000000000000000000110011100, 0b11111111111111111111111111101010,
0b11111100000000000111111111111111, 0b00000000000000000000000001111111,
0b11101111000000000000000000000000, 0b11111110111111111111111111111111,
0b11111111111111111111011111111111, 0b11000000001000000000000011011001,
0b11011111111111111111111111111111, 0b11100000011000000000011111111110,
0b00000000001111100011111111111111, 0b00011110111111000000000000000000,
0b11001111111100001001011111110100, 0b00110001110001111000011101011110,
0b00000000000000000000000001110110, 0b11111111111111111100000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b00111111111111111111111111111111,
0b00000000000000000000000000000000, 0b11000000000000000000000000000000,
0b00000000000000011111111111111111, 0b11101111111111110100001000000000,
0b00001010000000001111111111111111, 0b00001100000110011000000000000000,
0b01010011111111111111111111000000, 0b11000001111111111100000000000100,
0b11111111111111111111111111111111, 0b11001111110000000000111111111111,
0b11111111111111111111111111111111, 0b00001111111111111111111111011111,
0b00000011100000000000111000100000, 0b11111111111111111110000000100000,
0b11111111111001111111111111111111, 0b11111111111111111111111111111111,
0b00000000000000000000000011111111, 0b10000000000000000000000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111001111,
0b00000000000000000111111000001111, 0b00000000000000000000000000000000,
0b11110111100000000000000000000000, 0b00111111111100001011111111111111,
0b10110111101010010000000000000000, 0b11010000111111110001011011101010,
0b10000011100000101101001011010000, 0b11111111111110000100000010111101,
0b11110011011111110100001100011111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b00000000000110011111111111111111,
0b00001111100000000000000000000000, 0b10000000000000001011111010000000,
0b11100100000001111000000000000000, 0b00000000000000000000000000000011,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111111011,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b00001110001111111101111001011011,
0b00011110011000011100011000111100, 0b11000000001011111111111110010001,
0b01111111111111111101101111111111, 0b00111111111111111010100001110010,
0b01111111111000000100000001011000, 0b00000000001110000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000111000000000000000,
0b01000001000100000011101000000001, 0b11001111100110110000000000111010,
0b00000000000000000000000000000000, 0b11111000000000000100000000000000,
0b01000000001000000001111110111111, 0b11111111111011100111000000000000,
0b11111111111111111111111111111111, 0b00001111111111111111111111111111,
0b11111111110000000000000000000000, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111100001111,
0b11111111111111111111111111111111, 0b01111111101111011111111111111111,
0b00100001000000000000000000000010, 0b10110111011001100111011000001000,
0b00000000001000000000000010000111, 0b10000100000000011000001111100000,
0b00000000000000000000000000000100, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b11111111111111111000000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11010111111111111111111111111101, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111100000011111111111111111111,
0b11111111111111111111111111110011, 0b11111111111111111111100011111111,
0b11111111111111111000000111111111, 0b11111111111111000011111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111110111111111, 0b00000000111101111111111111101111,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b11111111111111100000000000000000,
0b00000001111111111111111111111111, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111000000011111110111111111, 0b11111111111111111111111111111111,
0b11111111111111101111111111111111, 0b00000111111111111111111111111111,
0b00001111111111111111111111111111, 0b01110100111101000100000111110000,
0b10101000000000000000000000000001, 0b00000000111101000000000000000011,
0b00000000111111000000000000000000, 0b00001001000111000000000000000000,
0b00100010100000100000000000000000, 0b11111111111110001100000000100100,
0b11111111111111111111111111111111, 0b01110000011101100011111001111010,
0b11111000000000000000000000011110, 0b11000001111101100000111111111111,
0b00000000011111111111111111101110, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b11111111111111111111111100000000,
0b11111110001111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b01010111111111111111111111111111,
0b01010101010101010101010101010101, 0b01010101000101010101010101010101,
0b01010101010101010101010101010101, 0b10101010101010000101010101010101,
0b01111010111111111111111111111010, 0b00000000111010101101100000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b10000000000000111100000000000000,
0b11110000000000000000000000000101, 0b11111111111111111111111011111111,
0b11111111111111111111111111111111, 0b11111101101101101100111111100001,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b00000000000000000000000000011111,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000101011000000000000, 0b01111011000000100000000000100000,
0b11000011111111010000111111011000, 0b11111011100011110110111001111001,
0b11001101111111110110000111100111, 0b00000101011110110000000001111110,
0b11111111111111110000000000000000, 0b11111111110111111111111111111111,
0b11111111111111111111111111111111, 0b00100011011111111111111111111111,
0b00000000000000000000000000000001, 0b00000000000000000000000000000000,
0b11111111000000000000000000000000, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b00000111111111111111111111111111, 0b00000000000000000000000000000000,
0b11111111111111111111111111111111, 0b00000000001111111111111111111111,
0b00000000010000000000000000000001, 0b00000011100000000000000000000000,
0b00000000000000000000001111101010, 0b11111111111111110000000000000000,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b10111111111111111111111111111111, 0b11111111111111111100111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b01111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111110011111111111, 0b11101111111111111111000111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11111111111111111111111111111111, 0b11111111111111111111111111111111,
0b11110000000001111111111111111111, 0b00001111111111111111111111111111,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000, 0b00100000000000000000000000000000,
0b00000000000000000000000000000000, 0b00000000000000000000000000000000,
0b00000000000000000000000000000000
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)