previndexinfonext

code guessing, round #70 (completed)

started at ; stage 2 at ; ended at

specification

the challenge this round was to finish this game.

players were shown a simple game about collecting items on a grid, and directed to score 2,025 points in order to see the specification and submit a solution.

as it would be exceedingly tedious to manually collect thousands of items, players were indirectly encouraged to automate the process of completing the game. once found, the specification said only to upload the scripts you used to finish the game with no further changes.

this has been the most successful round of cg history with 20 submissions, 1 more than the first round with 19. thank you all for playing.

the game can still be played below, if you are logged in. you can at any time.


    
    
    
    
  

results

  1. ๐Ÿ‘‘ Dolphy +9 -1 = 8
    1. olus2000
    2. ultlang (was Olive)
    3. taswelll (was luatic)
    4. oleander (was ultlang)
    5. rebbbecca
    6. luatic (was yeti)
    7. Olive (was taswelll)
    8. yeti (was LyricLy)
    9. Cotesia Flowers
    10. olive
    11. LyricLy (was moshikoi)
    12. yui (was Makefile_dot_in)
    13. ponydork
    14. moshikoi (was oleander)
    15. Moja
    16. Makefile_dot_in (was yui)
    17. kimapr
    18. Olivia
    19. chirk
  2. LyricLy +11 -4 = 7
    1. olus2000
    2. moshikoi (was Olive)
    3. luatic
    4. taswelll (was ultlang)
    5. rebbbecca
    6. yeti
    7. Dolphy (was taswelll)
    8. Cotesia Flowers
    9. olive
    10. Olive (was moshikoi)
    11. Makefile_dot_in
    12. ultlang (was ponydork)
    13. ponydork (was oleander)
    14. oleander (was Moja)
    15. Moja (was Dolphy)
    16. yui
    17. kimapr
    18. Olivia
    19. chirk
  3. moshikoi +8 -2 = 6
    1. olus2000
    2. luatic (was Olive)
    3. chirk (was luatic)
    4. taswelll (was ultlang)
    5. rebbbecca
    6. oleander (was yeti)
    7. Makefile_dot_in (was taswelll)
    8. LyricLy
    9. Cotesia Flowers
    10. olive
    11. ponydork (was Makefile_dot_in)
    12. yeti (was ponydork)
    13. Olivia (was oleander)
    14. Moja
    15. Olive (was Dolphy)
    16. yui
    17. kimapr
    18. ultlang (was Olivia)
    19. Dolphy (was chirk)
  4. oleander +6 -0 = 6
    1. olus2000
    2. Cotesia Flowers (was Olive)
    3. moshikoi (was luatic)
    4. ultlang
    5. rebbbecca
    6. yeti
    7. yui (was taswelll)
    8. luatic (was LyricLy)
    9. kimapr (was Cotesia Flowers)
    10. olive
    11. chirk (was moshikoi)
    12. Dolphy (was Makefile_dot_in)
    13. ponydork
    14. Olivia (was Moja)
    15. Olive (was Dolphy)
    16. taswelll (was yui)
    17. Makefile_dot_in (was kimapr)
    18. Moja (was Olivia)
    19. LyricLy (was chirk)
  5. Makefile_dot_in +7 -2 = 5
    1. olus2000
    2. oleander (was Olive)
    3. chirk (was luatic)
    4. luatic (was ultlang)
    5. rebbbecca
    6. Dolphy (was yeti)
    7. yeti (was taswelll)
    8. Olive (was LyricLy)
    9. Cotesia Flowers
    10. taswelll (was olive)
    11. moshikoi
    12. olive (was ponydork)
    13. LyricLy (was oleander)
    14. ultlang (was Moja)
    15. Moja (was Dolphy)
    16. yui
    17. kimapr
    18. Olivia
    19. ponydork (was chirk)
  6. taswelll +2 -1 = 1
    1. chirk (was olus2000)
    2. Olive
    3. Olivia (was luatic)
    4. Makefile_dot_in (was ultlang)
    5. rebbbecca
    6. oleander (was yeti)
    7. olive (was LyricLy)
    8. moshikoi (was Cotesia Flowers)
    9. ultlang (was olive)
    10. Cotesia Flowers (was moshikoi)
    11. Dolphy (was Makefile_dot_in)
    12. luatic (was ponydork)
    13. ponydork (was oleander)
    14. LyricLy (was Moja)
    15. kimapr (was Dolphy)
    16. olus2000 (was yui)
    17. yui (was kimapr)
    18. Moja (was Olivia)
    19. yeti (was chirk)
  7. ultlang +3 -3 = 0
    1. olus2000
    2. chirk (was Olive)
    3. moshikoi (was luatic)
    4. rebbbecca
    5. ponydork (was yeti)
    6. yeti (was taswelll)
    7. Moja (was LyricLy)
    8. Cotesia Flowers
    9. yui (was olive)
    10. Dolphy (was moshikoi)
    11. Olivia (was Makefile_dot_in)
    12. kimapr (was ponydork)
    13. LyricLy (was oleander)
    14. Makefile_dot_in (was Moja)
    15. Olive (was Dolphy)
    16. taswelll (was yui)
    17. luatic (was kimapr)
    18. oleander (was Olivia)
    19. olive (was chirk)
  8. luatic +2 -2 = 0
    1. olus2000
    2. yui (was Olive)
    3. rebbbecca (was ultlang)
    4. chirk (was rebbbecca)
    5. LyricLy (was yeti)
    6. Makefile_dot_in (was taswelll)
    7. Moja (was LyricLy)
    8. moshikoi (was Cotesia Flowers)
    9. oleander (was olive)
    10. Olive (was moshikoi)
    11. olive (was Makefile_dot_in)
    12. Olivia (was ponydork)
    13. kimapr (was oleander)
    14. ponydork (was Moja)
    15. Dolphy
    16. taswelll (was yui)
    17. ultlang (was kimapr)
    18. yeti (was Olivia)
    19. Cotesia Flowers (was chirk)
  9. Moja +2 -2 = 0
    1. olus2000
    2. oleander (was Olive)
    3. Dolphy (was luatic)
    4. kimapr (was ultlang)
    5. luatic (was rebbbecca)
    6. LyricLy (was yeti)
    7. Makefile_dot_in (was taswelll)
    8. moshikoi (was LyricLy)
    9. Cotesia Flowers
    10. Olive (was olive)
    11. olive (was moshikoi)
    12. Olivia (was Makefile_dot_in)
    13. chirk (was ponydork)
    14. ponydork (was oleander)
    15. rebbbecca (was Dolphy)
    16. taswelll (was yui)
    17. ultlang (was kimapr)
    18. yeti (was Olivia)
    19. yui (was chirk)
  10. Olivia +5 -6 = -1
    1. olus2000
    2. chirk (was Olive)
    3. yeti (was luatic)
    4. moshikoi (was ultlang)
    5. rebbbecca
    6. Makefile_dot_in (was yeti)
    7. oleander (was taswelll)
    8. LyricLy
    9. Cotesia Flowers
    10. yui (was olive)
    11. ponydork (was moshikoi)
    12. Olive (was Makefile_dot_in)
    13. Dolphy (was ponydork)
    14. olive (was oleander)
    15. taswelll (was Moja)
    16. Moja (was Dolphy)
    17. luatic (was yui)
    18. kimapr
    19. ultlang (was chirk)
  11. yui +2 -3 = -1
    1. olus2000
    2. Cotesia Flowers (was Olive)
    3. moshikoi (was luatic)
    4. rebbbecca (was ultlang)
    5. luatic (was rebbbecca)
    6. LyricLy (was yeti)
    7. Dolphy (was taswelll)
    8. oleander (was LyricLy)
    9. Makefile_dot_in (was Cotesia Flowers)
    10. Olivia (was olive)
    11. Olive (was moshikoi)
    12. olive (was Makefile_dot_in)
    13. Moja (was ponydork)
    14. chirk (was oleander)
    15. ponydork (was Moja)
    16. taswelll (was Dolphy)
    17. kimapr
    18. ultlang (was Olivia)
    19. yeti (was chirk)
  12. Olive +1 -2 = -1
    1. olive (was olus2000)
    2. yeti (was luatic)
    3. Moja (was ultlang)
    4. kimapr (was rebbbecca)
    5. ponydork (was yeti)
    6. chirk (was taswelll)
    7. ultlang (was LyricLy)
    8. Olivia (was Cotesia Flowers)
    9. moshikoi (was olive)
    10. Dolphy (was moshikoi)
    11. Makefile_dot_in
    12. taswelll (was ponydork)
    13. Cotesia Flowers (was oleander)
    14. olus2000 (was Moja)
    15. yui (was Dolphy)
    16. luatic (was yui)
    17. LyricLy (was kimapr)
    18. rebbbecca (was Olivia)
    19. oleander (was chirk)
  13. yeti +1 -2 = -1
    1. LyricLy (was olus2000)
    2. moshikoi (was Olive)
    3. oleander (was luatic)
    4. chirk (was ultlang)
    5. Moja (was rebbbecca)
    6. luatic (was taswelll)
    7. Cotesia Flowers (was LyricLy)
    8. olive (was Cotesia Flowers)
    9. Makefile_dot_in (was olive)
    10. Dolphy (was moshikoi)
    11. ponydork (was Makefile_dot_in)
    12. kimapr (was ponydork)
    13. rebbbecca (was oleander)
    14. ultlang (was Moja)
    15. taswelll (was Dolphy)
    16. Olive (was yui)
    17. yui (was kimapr)
    18. Olivia
    19. olus2000 (was chirk)
  14. olive +4 -6 = -2
    1. Olive (was olus2000)
    2. yeti (was Olive)
    3. moshikoi (was luatic)
    4. ultlang
    5. rebbbecca
    6. taswelll (was yeti)
    7. olus2000 (was taswelll)
    8. ponydork (was LyricLy)
    9. Cotesia Flowers
    10. Dolphy (was moshikoi)
    11. oleander (was Makefile_dot_in)
    12. Olivia (was ponydork)
    13. luatic (was oleander)
    14. LyricLy (was Moja)
    15. chirk (was Dolphy)
    16. Moja (was yui)
    17. kimapr
    18. Makefile_dot_in (was Olivia)
    19. yui (was chirk)
  15. rebbbecca +8 -11 = -3
    1. olus2000
    2. Olive
    3. luatic
    4. ultlang
    5. moshikoi (was yeti)
    6. oleander (was taswelll)
    7. LyricLy
    8. Cotesia Flowers
    9. olive
    10. ponydork (was moshikoi)
    11. taswelll (was Makefile_dot_in)
    12. yui (was ponydork)
    13. Dolphy (was oleander)
    14. Makefile_dot_in (was Moja)
    15. Moja (was Dolphy)
    16. yeti (was yui)
    17. kimapr
    18. chirk (was Olivia)
    19. Olivia (was chirk)
  16. Cotesia Flowers +7 -10 = -3
    1. olus2000
    2. Makefile_dot_in (was Olive)
    3. Dolphy (was luatic)
    4. yeti (was ultlang)
    5. rebbbecca
    6. moshikoi (was yeti)
    7. taswelll
    8. oleander (was LyricLy)
    9. Olive (was olive)
    10. olive (was moshikoi)
    11. yui (was Makefile_dot_in)
    12. ponydork
    13. luatic (was oleander)
    14. LyricLy (was Moja)
    15. Moja (was Dolphy)
    16. ultlang (was yui)
    17. kimapr
    18. Olivia
    19. chirk
  17. ponydork +0 -3 = -3
    1. chirk (was olus2000)
    2. Cotesia Flowers (was Olive)
    3. Dolphy (was luatic)
    4. kimapr (was ultlang)
    5. luatic (was rebbbecca)
    6. LyricLy (was yeti)
    7. Makefile_dot_in (was taswelll)
    8. Moja (was LyricLy)
    9. moshikoi (was Cotesia Flowers)
    10. oleander (was olive)
    11. Olive (was moshikoi)
    12. olive (was Makefile_dot_in)
    13. Olivia (was oleander)
    14. olus2000 (was Moja)
    15. rebbbecca (was Dolphy)
    16. taswelll (was yui)
    17. ultlang (was kimapr)
    18. yeti (was Olivia)
    19. yui (was chirk)
  18. chirk +0 -3 = -3
    1. kimapr +3 -9 = -6
      1. Makefile_dot_in (was olus2000)
      2. Cotesia Flowers (was Olive)
      3. Dolphy (was luatic)
      4. rebbbecca (was ultlang)
      5. olus2000 (was rebbbecca)
      6. chirk (was yeti)
      7. Olive (was taswelll)
      8. LyricLy
      9. Olivia (was Cotesia Flowers)
      10. olive
      11. moshikoi
      12. yui (was Makefile_dot_in)
      13. yeti (was ponydork)
      14. ponydork (was oleander)
      15. oleander (was Moja)
      16. Moja (was Dolphy)
      17. ultlang (was yui)
      18. luatic (was Olivia)
      19. taswelll (was chirk)
    2. olus2000 +3 -12 = -9
      1. luatic (was Olive)
      2. chirk (was luatic)
      3. ponydork (was ultlang)
      4. rebbbecca
      5. Dolphy (was yeti)
      6. moshikoi (was taswelll)
      7. Makefile_dot_in (was LyricLy)
      8. Cotesia Flowers
      9. yui (was olive)
      10. oleander (was moshikoi)
      11. olive (was Makefile_dot_in)
      12. kimapr (was ponydork)
      13. taswelll (was oleander)
      14. Olive (was Moja)
      15. Moja (was Dolphy)
      16. ultlang (was yui)
      17. yeti (was kimapr)
      18. Olivia
      19. LyricLy (was chirk)

    entries

    you can download all the entries

    entry #1

    written by olus2000
    submitted at
    3 likes

    guesses
    comments 0

    post a comment


    070.factor ASCII text
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    ! Copyright (C) 2025 Aleksander "olus2000" Sabak.
    ! See https://factorcode.org/license.txt for BSD license.
    USING: accessors arrays assocs concurrency.combinators http http.client http.json kernel math namespaces
    sequences words ;
    IN: esolang_games.code_guess.070
    
    
    CONSTANT: game-url "https://codeguessing.gay/extra/game70"
    
    
    ! Game
    
    CONSTANT: grid-width 15
    CONSTANT: grid-height 5
    
    
    : find-in-grid ( grid char -- coords? )
      swap index [ grid-width 1 + /mod swap 2array ] [ f ] if* ;
    
    
    TUPLE: state player goal bomb seq score ;
    
    USE: io
    
    : <state> ( json -- state )
      [ "grid" of
        [ CHAR: @ find-in-grid ]
        [ CHAR: + find-in-grid ]
        [ CHAR: * find-in-grid ] tri ]
      [ "s" of ] [ "score" of ] tri state boa ;
    
    
    USE: prettyprint
    
    
    : bomb?-swap ( horisontal vertical state -- moves moves )
      dup bomb>>
      [ [ bomb>> ] [ player>> ] [ goal>> ] tri [ first2 ] tri@
        drop nipd -rot [ = ] 2bi@ or [ swap ] when ] [ drop ] if ;
    
    
    : prepare-moves ( state -- moves-first moves-second )
      dup [ player>> ] [ goal>> ] bi [ first2 ] bi@ swapd [ - ] 2bi@
      [ [ abs ] [ 0 > ] bi "left" "right" ? <array> ]
      [ [ abs ] [ 0 > ] bi "up" "down" ? <array> ] bi*
      rot bomb?-swap ;
    
    
    ! Networking
    
    SYMBOL: game-session
    
    
    : +session-cookie ( request -- request' )
      game-session get "session" <cookie> put-cookie ;
    
    
    : current-state ( -- state )
      game-url <get-request> +session-cookie
      http-request-json nip <state> ;
    
    
    : move ( dir -- state )
      game-url "POST" <json-request>
      swap 'H{ { "dir" _ } } <json-data> >>data
      +session-cookie http-request-json nip <state> ;
    
    
    : naive-step ( -- )
      current-state prepare-moves append [ move drop ] each ;
    
    
    : async-step ( -- )
      current-state prepare-moves append
      [ move drop ] parallel-each ;
    
    
    : parallel-moves ( moves -- state )
      [ move ] parallel-map [ seq>> ] maximum-by ;
    
    
    : sequential-step ( state -- state )
      prepare-moves append parallel-moves ;
    
    
    : n-steps ( n -- state )
      current-state swap [ sequential-step ] times ;
    
    
    : sequential-bomb-avoiding-step ( state -- state )
      prepare-moves
      [ [ f ] [ parallel-moves ] if-empty ] bi@ swap or ;
    
    
    : n-bomb-avoiding-steps ( n -- state )
      current-state swap
      [ sequential-bomb-avoiding-step ] times ;
    
    
    : avoid-bombs-until ( n -- state )
      current-state swap '[ dup score>> _ < ]
      [ sequential-bomb-avoiding-step ] while ;
    

    entry #2

    written by Olive
    submitted at
    1 like

    guesses
    comments 0

    post a comment


    cg70asjkflghdf.js ASCII text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    'use strict';
    function findChar(grid, char) {
      var y = 0;
      for (let row of grid) {
        var x = 0;
        for (let c of row) {
          if (c === char) {
            return {
              x,
              y
            };
          }
          x++;
        }
        y++;
      }
      throw new Error("char " + char + "not found in grid");
    }
    
    function chooseDir(grid_) {
      const grid = grid_.split('\n');
      const playerPos = findChar(grid, '@');
      var closed = new Set([]);
      const hash = (x, y) => x + ' ' + y;
      var open = [{
        x: playerPos.x,
        y: playerPos.y,
        dir: null
      }];
      while (open.length > 0) {
        const {
          x,
          y,
          dir
        } = open.shift();
        if (closed.has(hash(x, y))) continue;
        closed.add(hash(x, y));
        const moves = [
          {nx: x - 1, ny: y, new_dir: 'left'},
          {nx: x + 1, ny: y, new_dir: 'right'},
          {nx: x, ny: y - 1, new_dir: 'up'},
          {nx: x, ny: y + 1, new_dir: 'down'},
        ];
        for (var {nx, ny, new_dir} of moves) {
          if (dir !== null) {
            new_dir = dir;
          }
          if (nx < 0 || nx >= 15 || ny < 0 || ny >= 5) continue;
          switch (grid[ny][nx]) {
            case '*':
              continue;
            case '+':
              return new_dir;
          }
          if (!closed.has(hash(nx, ny))) {
          open.push({
            x: nx,
            y: ny,
            dir: new_dir
          });
          }
        }
      }
      console.log(closed);
      throw new Error("unreachable");
    }
    
    async function scoreUntil(maxScore) {
      var dir = 'up';
      while (true) {
        const response = await fetch("/extra/game70", {
          method: "POST",
          body: JSON.stringify({
            dir
          }),
          headers,
        });
        const gameState = await response.json();
        renderGame(gameState);
        const {
          grid,
          s,
          score
        } = gameState;
        if (score >= maxScore) {
          return;
        }
        dir = chooseDir(grid);
      }
    }
    await scoreUntil(2024);
    

    entry #3

    written by luatic
    submitted at
    0 likes

    guesses
    comments 0

    post a comment


    stuff.js ASCII text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    const find = (lines, c) => {
    	for (let i = 0; i < lines.length; ++i) {
    		let j = lines[i].indexOf(c);
    		if (j >= 0) return [i, j];
    	}
    	return [null, null];
    };
    const press = (id, n_times) => {
    	for (let i = 0; i < n_times; ++i)
    		document.getElementById(id).click();
    };
    let old;
    const doit = () => {
    	const lines = document.getElementById("screen").innerHTML.split("<br>");
    	let [py, px] = find(lines, "@");
    	let [ty, tx] = find(lines, "+");
    	let [oy, ox] = find(lines, "*");
    	let neww = [[ty, tx], [oy, ox]];
    	if (JSON.stringify(old) == neww) return;
    	old = neww;
    	if (tx == px && oy != py) {
    		if (px == 0) {
    			press("right", 1);
    			px++;
    		} else {
    			press("left", 1);
    			px--;
    		}		
    	}
    	if (ty == py && ox != px) {
    		if (py == 0) {
    			press("down", 1);
    			py++;
    		} else {
    			press("up", 1);
    			py--;
    		}
    	}
    	if (oy == ty) {
    		press("left", px - tx);
    		press("right", tx - px);
    		press("up", py - ty);
    		press("down", ty - py);
    	} else {
    		press("up", py - ty);
    		press("down", ty - py);
    		press("left", px - tx);
    		press("right", tx - px);
    	}
    }
    setInterval(doit, 1000);
    

    entry #4

    written by ultlang
    submitted at
    2 likes

    guesses
    comments 0

    post a comment


    cg.ahk Unicode text, UTF-8 (with BOM) text, with CRLF line terminators
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    #NoEnv
    SendMode Input
    SetWorkingDir %A_ScriptDir%
    
    Xmove(x) {
    	loop % abs(x) {
    		if (x > 0) {
    			MouseClick, L, 1082, 423
    		} else {
    			MouseClick, L, 855, 423
    		}
    		Sleep, 110
    	}
    	return
    }
    Ymove(y) {
    	loop % abs(y) {
    		if (y > 0) {
    			MouseClick, L, 961, 501
    		} else {
    			MouseClick, L, 961, 342
    		}
    		Sleep, 110
    	}
    	return
    }
    
    ^,::exitapp
    
    $^.::
    loop {
    try {
    MouseClickDrag, L, 872, 359, 1064, 490
    clipboard := ""
    Send ^c
    ClipWait, 2
    ard := clipboard
    StringReplace, pbo, ard, `n, , All
    StringReplace, cli, pbo, `r, , All
    
    plus := InStr(cli, "+")
    at := InStr(cli, "@")
    bomb := InStr(cli, "*")
    xdiff := mod(plus - 1, 15) - mod(at - 1, 15)
    ydiff := floor((plus - 1) / 15) - floor((at - 1) / 15)
    
    if (floor((at - 1) / 15) == floor((bomb - 1) / 15)) {
    	if (floor((at - 1) / 15) == floor((plus - 1) / 15)) {
    		if (floor((at - 1) / 15) == 0) {
    			Ymove(1)
    			Xmove(xdiff)
    			Ymove(-1)
    		} else {
    			Ymove(-1)
    			Xmove(xdiff)
    			Ymove(1)
    		}
    	} else {
    		Ymove(ydiff)
    		Xmove(xdiff)
    	}
    } else {
    	if ((mod(bomb - 1, 15) == mod(plus - 1, 15))) {
    		if ((mod(bomb - 1, 15) == mod(at - 1, 15))) {
    			if (mod(at - 1, 15) == 0) {
    				Xmove(1)
    				Ymove(ydiff)
    				Xmove(-1)
    			} else {
    				Xmove(-1)
    				Ymove(ydiff)
    				Xmove(1)
    			}
    		} else {
    			Ymove(ydiff)
    			Xmove(xdiff)
    		}
    	} else {	
    		Xmove(xdiff)
    		Ymove(ydiff)
    	}
    }
    }
    Sleep, 500
    }
    

    entry #5

    written by rebbbecca
    submitted at
    3 likes

    guesses
    comments 0

    post a comment


    dir cg70
    dir pathing
    pathing.factor ASCII text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    ! Copyright (C) 2025 Aleksander "olus2000" Sabak.
    ! See https://factorcode.org/license.txt for BSD license.
    
    USING: io sequences kernel splitting namespaces ranges arrays math qw
    math.vectors path-finding combinators ; 
    IN: entry 
    
    SYMBOL: grid
    
    : str>>grid ( string -- )  
      "\n" split grid set ;
    
    : print-grid ( -- ) 
      grid get "\n" join print ;
    
    : tile ( position -- tile ) 
      reverse grid get [ swap nth ] reduce ; 
    
    CONSTANT: deltas { { 1 0 } { 0 1 } { -1 0 } { 0 -1 } }
    CONSTANT: extents { 15 5 } 
    
    : inbounds? ( position -- ? ) 
      [ { 0 0 } swap v<= vall? ]
      [ extents v< vall? ] bi and ;
      
    : neighbors ( position -- neighbors ) 
      deltas [ v+ ] with map
      [ inbounds? ] filter
      [ tile CHAR: * = ] reject ;
    
    : where ( char -- position ) 
      grid get [ index ] with map
      [ ] find swap 2array ;
    
    : delta>dir ( delta -- direction )
      deltas index qw{ right down left up } nth ; 
    
    : path ( -- directions ) 
      CHAR: @ where 
      CHAR: + where 
      [ neighbors ] [ 2drop 1 ] [ 2drop 0 ] <astar> find-path 
      dup rest swap [ v- delta>dir ] 2map ;
    
    entry.factor ASCII text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    ! Copyright (C) 2025 Aleksander "olus2000" Sabak.
    ! See https://factorcode.org/license.txt for BSD license.
    
    USING: accessors arrays assocs calendar concurrency.futures entry.pathing 
    formatting hashtables http http.client io io.encodings.string io.encodings.utf8 
    json json.http kernel math math.parser namespaces prettyprint sequences 
    sequences.repeating threads ;
    IN: entry
    
    CONSTANT: session
    "SESSION COOKIE HERE" 
    
    : session-cookie ( -- cookie ) 
      session "session" <cookie> ;
    
    : request ( method -- request )
      "https://codeguessing.gay/extra/game70" swap <client-request>
      session-cookie put-cookie ;  
    
    : step-body ( direction -- post-data )
      "dir" associate <json-post-data> ;
    
    : step-request ( direction -- request ) 
      "POST" request
      swap step-body >>post-data ;
    
    SYMBOL: score
    
    : print-score ( -- ) score get "score: %d\n" printf ; 
    
    : request! ( request -- response )
      http-request nip utf8 decode json> ;
    
    : respect ( response -- ) 
      [ "grid" of str>>grid ]
      [ "score" of score set ] bi ;
    
    : init ( -- ) "GET" request request! respect ;
    
    : travel ( path -- ) 
      [ [ step-request request! ] curry future 
        100 milliseconds sleep
      ] map
      [ ?future ] map 
      [ "s" of ] maximum-by respect ;
      
    : print-state ( -- ) print-score print-grid ;
    
    : perform-iteration ( -- ) path travel print-state ;
    
    : entry ( -- )
      init print-state
      [ score get 2025 <  ]
      [ perform-iteration ] while ;
    
    MAIN: entry
    

    entry #6

    written by yeti
    submitted at
    0 likes

    guesses
    comments 0

    post a comment


    main.js ASCII text
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    const WIDTH  = 15;
    const HEIGHT = 5;
    
    function PosToX(pos) {
    	return {
    		x: pos % WIDTH,
    		y: Math.floor(pos / WIDTH)
    	};
    }
    
    function GetScreen() {
    	return document.getElementById("screen").innerHTML.replaceAll("<br>", "");
    }
    
    let running = false;
    
    let playerPos = PosToX(GetScreen().indexOf("@"));
    
    function GoLeft() {
    	document.getElementById("left").click();
    	playerPos.x -= 1;
    }
    
    function GoRight() {
    	document.getElementById("right").click();
    	playerPos.x += 1;
    }
    
    function GoUp() {
    	document.getElementById("up").click();
    	playerPos.y -= 1;
    }
    
    function GoDown() {
    	document.getElementById("down").click();
    	playerPos.y += 1;
    }
    
    let reset = false;
    
    function Move() {
    	if (running) return;
    
    	running = true;
    
    	let screen = GetScreen();
    
    	let foodPos = PosToX(screen.indexOf("+"));
    	let bombPos = PosToX(screen.indexOf("*"));
    
    	let moved = false;
    
    	if (playerPos.x > foodPos.x) { // player is on the right
    		if ((bombPos.y == playerPos.y) && (bombPos.x == playerPos.x - 1)) {
    			if (foodPos.y > playerPos.y) {
    				GoDown();
    			}
    			else {
    				GoUp();
    			}
    		}
    
    		GoLeft();
    		moved = true;
    	}
    	else if (playerPos.x < foodPos.x) { // player is on the left
    		if ((bombPos.y == playerPos.y) && (bombPos.x == playerPos.x + 1)) {
    			if (foodPos.y > playerPos.y) {
    				GoDown();
    			}
    			else {
    				GoUp();
    			}
    		}
    
    		GoRight();
    		moved = true;
    	}
    	else if (playerPos.y > foodPos.y) { // player is below
    		if ((bombPos.x == playerPos.x) && (bombPos.y == playerPos.y - 1)) {
    			if (foodPos.x > playerPos.x) {
    				GoRight();
    			}
    			else {
    				GoLeft();
    			}
    		}
    
    		GoUp();
    		moved = true;
    	}
    	else if (playerPos.y < foodPos.y) { // player is above
    		if ((bombPos.x == playerPos.x) && (bombPos.y == playerPos.y + 1)) {
    			if (foodPos.x > playerPos.x) {
    				GoRight();
    			}
    			else {
    				GoLeft();
    			}
    		}
    
    		GoDown();
    		moved = true;
    	}
    
    	running = false;
    }
    
    window.setInterval(Move, 20);
    // window.setInterval(Move, 100);
    
    window.setInterval(function() {
    	while (running) {}
    
    	running = true;
    
    	playerPos = PosToX(GetScreen().indexOf("@"));
    
    	running = false;
    }, 1000);
    
    document.addEventListener("keydown", function(e) {
    	console.log("key");
    	if (e.keyCode == 38) {
    		GoUp();
    	}
    	else if (e.keyCode == 40) {
    		GoDown();
    	}
    	else if (e.keyCode == 37) {
    		GoLeft();
    	}
    	else if (e.keyCode == 39) {
    		GoRight();
    	}
    });
    

    entry #7

    written by taswelll
    submitted at
    1 like

    guesses
    comments 0

    post a comment


    cg.js ASCII text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    R={s:-1}
    async function move(dir) {
        let r = await (await fetch("/extra/game70",{
            method: dir?"POST":"GET",
            body: dir && JSON.stringify({dir}),
            headers: {"Content-Type": "application/json"}
        })).json()
        renderGame(r)
        if (R.s<r.s) R=r
        return r;
    }
    async function step() {
        for (dir of create_path(R.grid))
            await Promise.all(dir.map(move));
    }
    
    function create_path(grid) {
        let at=grid.indexOf("@")
        let pl=grid.indexOf("+")
        let bo=grid.indexOf("*")
    
        let dy=(pl>>4)-(at>>4)
        let dx=pl%16-at%16
        let x = Array(dx>0?dx:-dx).fill(dx>0?"right":"left")
        let y = Array(dy>0?dy:-dy).fill(dy>0?"down":"up")
        return bo==-1 ? [x.concat(y)] :
            dx==0 && at%16==bo%16 ? [[pl%16?"left":"right"],y,[pl%16?"right":"left"]] :
            dy==0 && (at>>4)==(bo>>4) ? [[pl>>4?"up":"down"],x,[pl>>4?"down":"up"]] :
            (bo>>4)==(at>>4) || bo%16==pl%16 ? [y,x] : [x,y]
    }
    
    await move()
    while (R.score<2025) await step()
    

    entry #8

    written by LyricLy
    submitted at
    0 likes

    guesses
    comments 0

    post a comment


    hit.py ASCII text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    import requests
    cookies = {"session": "no"}
    grid = requests.get("https://codeguessing.gay/extra/game70", cookies=cookies).json()["grid"].splitlines()
    while True:
        us = [(x, y) for y in range(len(grid)) for x in range(len(grid[0])) if grid[y][x] == "@"][0]
        target = [(x, y) for y in range(len(grid)) for x in range(len(grid[0])) if grid[y][x] == "+"][0]
        hori = ["left"] * (us[0]-target[0]) + ["right"] * (target[0]-us[0])
        vert = ["up"] * (us[1]-target[1]) + ["down"] * (target[1]-us[1])
        plan = hori + vert
    
        x, y = us
        for v in plan:
            match v:
                case "up":
                    y -= 1
                case "down":
                    y += 1
                case "left":
                    x -= 1
                case "right":
                    x += 1
            if grid[y][x] == "*":
                plan = vert + hori
                break
                    
        for v in plan:
            r = requests.post("https://codeguessing.gay/extra/game70", json={"dir": v}, cookies=cookies)
        grid = r.json()["grid"].splitlines()
        print(grid)
    

    entry #9

    written by Cotesia Flowers
    submitted at
    3 likes

    guesses
    comments 0

    post a comment


    badness.js Unicode text, UTF-8 text, with CRLF line terminators
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    setInterval(ใ…ค=>fetch("http://localhost:8080/execute", {
        method: "POST",
        headers: {
            "Content-Type": "application/json"
        },
        body: `{env:{SCREEN:"${E`screen`.textContent}"},source:${JSON.stringify(source)}}`
    }).then(res => res.json().then(v => {
    	s=E`screen`.textContent
    	i=s.indexOf('@')
    	if (s[i-1]=='*' || s[i+1]=='*') {
    		v[0] && (v[0] == 1 ? d() : u())
    		setTimeout(ใ…ค=>v[1] && (v[1] == 1 ? r() : l()), 333)
    	} else {
    		v[1] && (v[1] == 1 ? r() : l())
    		setTimeout(ใ…ค=>v[0] && (v[0] == 1 ? d() : u()), 333)
    	}
    })), 999)
    
    /*
    	NLโ†โŽ•UCS 10
    
    	]load HttpCommand
    	HttpCommand.Fix 'https://raw.githubusercontent.com/Dyalog/Jarvis/master/Source/Jarvis.dyalog'
    
    	โˆ‡ resโ†execute req
    		{(,โˆ˜'โ†'ยจ (โŽ,)ยจ โต(โŽ•SE.Dyalog.Utils.repObjโŽ)ยจโŠข)โต.โŽ•NL-โณ9}req.env
    		linesโ†NL(โ‰ โŠ†โŠข)req.source
    		โŽยจยฏ1โ†“lines
    		resโ†โŽโŠƒโŒฝlines
    	โˆ‡
    
    	jโ†Jarvis.New ''
    	(rc msg)โ†j.Start
    
    */
    
    mase.js Unicode text, UTF-8 text, with CRLF line terminators
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    E=i=>document.getElementById(i)
    
    HTML=document.documentElement.outerHTML
    _=a=>HTML.match(new RegExp('id="('+a+'\\w+)"'))[1]
    //////////////////////////// hiya, I'm jan Mase! :โ€ข)
    d_=E(_`d`);d=ใ…ค=>d_.click() // I'm new here, so... nice to meet ya. wanna be friends?
    l_=E(_`l`);l=ใ…ค=>l_.click() // this is an ice breaker. Sheer personality  on display.
    r_=E(_`r`);r=ใ…ค=>r_.click() // How about a self-assessment, too? might prove helpful.
    u_=E(_`u`);u=ใ…ค=>u_.click() // terse | consistent | exacting | illustrative | asinine
    //////////////////////////// See you around, or not.
    DO=(n,f)=>Array(n).fill(f).map(eval).filter(ใ…ค=>typeof ใ…ค== "function").map(ใ…ค=>ใ…ค())
    DO(1012,'DO(14,l,DO(4,u,DO(14,r,d(DO(14,l,d(DO(14,r,d(DO(14,l,d(DO(14,r)))))))))))')
    
    source=String.raw`
        AY AXโ†1+5 15โŠคยฏ1+('@'=SCREEN)โณ1 โ AT
        PY PXโ†1+5 15โŠคยฏ1+('+'=SCREEN)โณ1 โ PLUS
        BY BXโ†1+5 15โŠคยฏ1+('*'=SCREEN)โณ1 โ BOMB
    
        Vโ†โ‰ยฏ1+3 3โŠค0 1 2 3,ยฏ5+โณ4 โ VECTORS
        Nโ†V+(โดV)โดAY,AX          โ NEARBY
        Bโ†โˆง/0<N                 โ BORDER
        Dโ†+/|((โดA)โดPY,PX)-Aโ†BโŒฟN โ DISTANCE
        Uโ†โˆง/((โดA)โดBY,BX)=Aโ†BโŒฟN  โ UNSAFE
        Wโ†(Dร—0=U)+1.79E308ร—U    โ WEIGHTED
        Mโ†(<\W=โŒŠ/W)/โณโดW         โ MIN
        Kโ†(โณ2ร—+/B)โˆŠ(2ร—M)-0 1    โ KEEP
        Tโ†K/,BโŒฟV                โ TARGET
        T
    `
    

    entry #10

    written by olive
    submitted at
    2 likes

    guesses
    comments 0

    post a comment


    dungeon.c Unicode text, UTF-8 text
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    #include <u.h>
    #include <libc.h>
    
    // TODO : ๐Ÿ‘‰๐Ÿ‘ˆ ?
    
    #define CTLASK "url https://codeguessing.gay/extra/game70\n"
    #define CTLASKB "contenttype application/json\n"
    
    char *rights = "{\"dir\":\"right\"}";
    char *ups    = "{\"dir\":\"up\"}   ";
    char *lefts  = "{\"dir\":\"left\"} ";
    char *downs  = "{\"dir\":\"down\"} ";
    #define DIRLEN 15
    
    char buf[1024];
    char wbuf[1024];
    long bufl = 0;
    long wbufl = 0;
    
    char grid[5*16];
    
    void
    unfold(char *jsons)
    {
    	if(strncmp(jsons, "{\"grid\":\"", 9) != 0)
    		sysfatal("unfold: lyricaahlyyy!");
    	jsons += 9;
    	for(char *g=grid; g<grid+15*5; g+=15, jsons+=15+2)
    		memcpy(g, jsons, 15);
    }
    
    enum dir { None, Right, Up, Left, Down };
    
    void
    move(enum dir d)
    {
    	/* oh, what an /u/t/t/e/r/ mess you're about to behold! */
    	
    	int ctl, fd;
    	char *eyedi, *path, *ds;
    	long eyedil, written;
    	
    	
    	ctl = open("/mnt/web/clone", ORDWR);
    		if(ctl < 0) sysfatal("%r");
    	
    	bufl = read(ctl, buf, 1024);
    		if(bufl < 0) sysfatal("%r");
    		if(bufl == 0) sysfatal("clone: unexpected EOF");
    	// badd
    	eyedil = (char*)memchr(buf, '\n', bufl)-buf;
    		if(eyedil <= 0 || eyedil > 1024) sysfatal("clone: not given id");
    	eyedi = malloc(eyedil);
    		if(eyedi == 0) sysfatal("%r");
    	memcpy(eyedi, buf, eyedil);
    	
    	written = write(ctl, CTLASK, strlen(CTLASK));
    		if(written < strlen(CTLASK)) sysfatal("writing ctl 1st: %r");
    	written = write(ctl, CTLASKB, strlen(CTLASKB));
    		if(written < strlen(CTLASKB)) sysfatal("writing ctl 2nd: %r");
    	
    	
    	if(d != None)
    	{
    		print("C");
    		path = smprint("/mnt/web/%.*s/postbody", eyedil, eyedi);
    		fd = open(path, OWRITE);
    			if(fd < 0) sysfatal("%r");
    		free(path);
    		
    		switch(d)
    		{
    			case Right: ds = rights; break;
    			case Up:    ds = ups;    break;
    			case Left:  ds = lefts;  break;
    			case Down:  ds = downs;  break;
    		}
    		written = write(fd, ds, DIRLEN);
    			if(written < DIRLEN) sysfatal("%r");
    	//	written = write(fd, "", 0);
    	//		if(written < 0) sysfatal("%r");
    		
    		close(fd);
    	}
    //	else
    	{
    		print("A");
    		path = smprint("/mnt/web/%.*s/body", eyedil, eyedi);
    		fd = open(path, OREAD);
    			if(fd < 0) sysfatal("%r");
    		free(path);
    		print("b");
    		bufl = read(fd, buf, 1024);
    			if(bufl < 0) sysfatal("%r");
    			if(bufl == 0) sysfatal("body: unexpected EOF");
    		//	print("belly: %.*s\n", bufl, buf); /***/
    		
    		close(fd);
    	}
    	
    	close(ctl);
    }
    
    void
    debuggrid(void)
    {
    	print("\n%.15s\n%.15s\n%.15s\n%.15s\n%.15s\n", grid, grid+15, grid+30, grid+45, grid+60);
    }
    
    void
    debuggridm(int mi)
    {
    	char gridm[5*15];
    	memcpy(gridm, grid, 5*15);
    	gridm[mi] = 'M';
    	print("\n%.15s\n%.15s\n%.15s\n%.15s\n%.15s\n", gridm, gridm+15, gridm+30, gridm+45, gridm+60);
    	
    //	move(None);
    //	unfold(buf);
    //	debuggrid();
    }
    
    void
    main(int argc, char *argv[])
    {
    	int mi, it, bo;
    	enum dir d;
    	
    	while(1)
    	{
    		move(None);
    		unfold(buf);
    		
    		bo = -1;
    		for(int i=0; i<15*5; i++)
    			switch(grid[i])
    			{
    				case '.':
    					break;
    				case '@':
    					mi = i; break;
    				case '+':
    					it = i; break;
    				case '*':
    					bo = i; break;
    				deault:
    					sysfatal("unknown bohmbe: '%c'", grid[i]);
    			}
    		
    		debuggridm(mi);
    		
    		while(mi/15 < it/15)
    			if(mi+15 != bo)
    				{ move(Down); mi+=15; debuggridm(mi); }
    			else if(bo/15 == it/15)
    			{
    				move((bo%15 < it%15) ? Right : Left);
    				move(Down);
    				mi+=15;
    				mi+=((bo%15 < it%15) ? 1 : -1);
    				debuggridm(mi);
    			}
    			else
    			{
    				move((mi%15==0) ? Right : Left);
    				move(Down); move(Down);
    				move((mi%15==0) ? Left : Right);
    				mi+=30;
    				debuggridm(mi);
    			}
    		while(mi/15 > it/15)
    			if(mi-15 != bo)
    				{ move(Up); mi-=15; debuggridm(mi); }
    			else if(bo/15 == it/15)
    			{
    				move((bo%15 < it%15) ? Right : Left);
    				move(Up);
    				mi-=15;
    				mi+=((bo%15 < it%15) ? 1 : -1);
    				debuggridm(mi);
    			}
    			else
    			{
    				move((mi%15==0) ? Right : Left);
    				move(Up); move(Up);
    				move((mi%15==0) ? Left : Right);
    				mi-=30;
    				debuggridm(mi);
    			}
    		while(mi%15 < it%15)
    			if(mi+1 != bo)
    				{ move(Right); mi+=1; debuggridm(mi); }
    			else if(bo%15 == it%15)
    			{
    				move((bo/15 < it/15) ? Down : Up);
    				move(Right);
    				mi+=1;
    				mi+=((bo/15 < it/15) ? 15 : -15);
    				debuggridm(mi);
    			}
    			else
    			{
    				move((mi/15==0) ? Down : Up);
    				move(Right); move(Right);
    				move((mi/15==0) ? Up : Down);
    				mi+=2;
    				debuggridm(mi);
    			}
    		while(mi%15 > it%15)
    			if(mi-1 != bo)
    				{ move(Left); mi-=1; debuggridm(mi); }
    			else if(bo%15 == it%15)
    			{
    				move((bo/15 < it/15) ? Down : Up);
    				move(Left);
    				mi-=1;
    				mi+=((bo/15 < it/15) ? 15 : -15);
    				debuggridm(mi);
    			}
    			else
    			{
    				move((mi/15==0) ? Down : Up);
    				move(Left); move(Left);
    				move((mi/15==0) ? Up : Down);
    				mi-=2;
    				debuggridm(mi);
    			}
    		
    	//	debuggridm(mi);
    	}
    	
    	exits(nil);
    }
    
    // hihi ^^
    

    entry #11

    written by moshikoi
    submitted at
    0 likes

    guesses
    comments 0

    post a comment


    cg70.js ASCII text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    async function move(dir) {
        const headers = new Headers();
        headers.append("Content-Type", "application/json");
        await window.fetchAndRender({ method: 'POST', body: JSON.stringify({ dir }), headers })
    }
    
    function solve() {
        const x = document.getElementById('screen');
        const lines = x.innerText.split('\n');
        let player_pos, target_pos, bomb_pos;
    
        const distmap = [];
        for (let i = 0; i < lines.length; ++i) {
            distmap.push([]);
            for (let j = 0; j < lines[i].length; ++j) {
                distmap[i].push({ dist: Infinity, pred: null })
                if (lines[i][j] == '@') player_pos = [i, j];
                if (lines[i][j] == '+') target_pos = [i, j];
                if (lines[i][j] == '*') bomb_pos = [i, j];
            }
        }
    
        visit = (i, j) => {
            for (let [dir, i2, j2] of [['left', i, j + 1], ['right', i, j - 1], ['up', i + 1, j], ['down', i - 1, j]]) {
                if (i2 < 0 || i2 >= distmap.length
                    || j2 < 0 || j2 >= distmap[0].length
                    || (i2 == bomb_pos[0] && j2 == bomb_pos[1]))
                    continue;
    
                let new_dist = distmap[i][j].dist + 1;
                if (new_dist < distmap[i2][j2].dist) {
                    distmap[i2][j2].dist = new_dist;
                    distmap[i2][j2].pred = dir;
                    visit(i2, j2);
                }
            }
        }
        distmap[target_pos[0]][target_pos[1]].dist = 0;
        visit(...target_pos);
    
        const path = [];
    
        while (player_pos[0] != target_pos[0] || player_pos[1] != target_pos[1]) {
            const dir = distmap[player_pos[0]][player_pos[1]].pred;
            path.push(dir)
            switch (dir) {
                case 'up': player_pos[0] -= 1; break;
                case 'down': player_pos[0] += 1; break;
                case 'left': player_pos[1] -= 1; break;
                case 'right': player_pos[1] += 1; break;
            }
        }
    
        return path;
    }
    
    function run_path(path) {
        return new Promise((resolve, reject) => {
            const promises = [];
            const interval = setInterval(() => {
                promises.push(move(path.shift()));
                if (path.length == 0) {
                    clearInterval(interval);
                    resolve(Promise.all(promises));
                }
            }, 70);
        });
    }
    
    async function bot() {
        while (true) {
            const path = solve();
            await run_path(path);
        }
    }
    

    entry #12

    written by Makefile_dot_in
    submitted at
    0 likes

    guesses
    comments 0

    post a comment


    shipshipshitship.js ASCII text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    async function sendmoves(...lst) {
      const l = [];
      for (let { x = 0, y = 0, delay } of lst) {
        if (delay) await Promise.race([new Promise(resolve => setTimeout(() => resolve(), delay)), Promise.all(l)]);
        const xaxis = (x > 0) ? ["right", x] : ["left", -x];
        const yaxis = (y > 0) ? ["down",  y] : ["up",   -y];
        for (let [dir, length] of [xaxis, yaxis])
          for (let i = 0; i < length; ++i)
            l.push(fetch("/extra/game70", {method: "POST", body: JSON.stringify({dir}), headers}).then(r => r.json()));
      }
    
      let newState = await Promise.all(l)
        .then(rs => rs.reduce((a, b) => a.s > b.s ? a : b));
        
      if (newState !== undefined)
        renderGame(newState);
      return newState;
    }
    
    function findLocations(arr) {
      let plus, at, star;
      for (let y = 0; y < arr.length; ++y) {
        for (let x = 0; x < arr[y].length; ++x) {
         switch (arr[y][x]) {
            case "+": plus = [x, y]; break;
            case "@": at = [x, y]; break;
            case "*": star = [x, y]; break;
         }
        }
      }
      return {plus, at, star};
    }
    
    function vminus([x1, y1], [x2, y2]) { return [x1 - x2, y1 - y2]; }
    function veq([x1, y1], [x2, y2]) { return x1 == x2 && y1 == y2; }
    
    let x = false;
    
    async function play() {
      while (!x) {
        const { plus, at: sat, star } = findLocations(screen.innerText.split("\n"));
        const at = [sat[0], sat[1]];
        const moves = [];
        const log = [];
        let n = 0;
        const x = x => { at[0] += x; n += Math.abs(x); moves.push({x}); };
        const y = y => { at[1] += y; n += Math.abs(y); moves.push({y}); };
        const delay = delay => { moves.push({delay: n * delay}); n = 0; };
        while (!veq(at, plus)) {
          const movevec = vminus(plus, at);
          if (star !== undefined) {
            const comet = vminus(star, at);
            const shenan = Math.sign(comet[0]) == Math.sign(movevec[0]) && Math.abs(comet[0]) <= Math.abs(movevec[0])
                        || Math.sign(comet[1]) == Math.sign(movevec[1]) && Math.abs(comet[1]) <= Math.abs(movevec[1]);
            const sxaxis = shenan && plus[0] == at[0] && at[0] == star[0];
            const syaxis = shenan && plus[1] == at[1] && at[1] == star[1];
            const interf = shenan && (plus[0] == star[0] || at[1] == star[1]);
            log.push({comet, shenan, sxaxis, syaxis, interf});
            if      (sxaxis) { x(plus[0] < 14 ? 1 : -1); delay(250);     }
            else if (syaxis) { y(plus[1] < 4  ? 1 : -1); delay(250);     }
            else if (interf) { y(movevec[1]); delay(150); x(movevec[0]); }
            else if (shenan) { x(movevec[0]); delay(150); y(movevec[1]); }
            else             { x(movevec[0]); y(movevec[1]);             }
          } else             { x(movevec[0]); y(movevec[1]);             }
        }
        const newstate = await sendmoves(...moves);
        console.log({plus, at, sat, star, moves, newstate, log, n});
        console.log(newstate.grid);
        await new Promise(resolve => setTimeout(() => resolve(), 10));
      }
    }
    

    entry #13

    written by ponydork
    submitted at
    0 likes

    guesses
    comments 0

    post a comment


    script.js ASCII text, with CRLF line terminators
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    let movesStack = []
    
    let interval = setInterval(() => {
        if (movesStack.length == 0){
            let player = { x: 0, y: 0 };
            let food = { x: 0, y: 0 };
            let spike = { x: 1000, y: 1000 };
        
            let canvas = document.getElementById("screen").innerHTML;
            let lines = canvas.split("<br>");
        
            let text = document.getElementById("score-counter").textContent;
            let score = +text.replace("score: ", "");
            
            if (score != 2025){
                for (let i = 0; i < lines.length; i++) {
                    let currentLine = lines[i];
                    for (let j = 0; j < currentLine.length; j++) {
                        let currentSymbol = currentLine[j];
                        if (currentSymbol == "@") {
                            player.x = j;
                            player.y = i;
                        }
                        if (currentSymbol == "+") {
                            food.x = j;
                            food.y = i;
                        }
                        if (currentSymbol == "*") {
                            spike.x = j;
                            spike.y = i;
                        }
                    }
                }
        
                if (player.y == food.y) {
                    if (player.x > food.x) {
                        if(spike.x == player.x-1 && spike.y == player.y){
                            if(player.y != 4){
                                movesStack = ["down","left","left","up"]
                            }else{
                                movesStack = ["up","left","left","down"]
                            }
                        } else {
                            move("left")
                        }
                    } else {
                        if(spike.x == player.x+1 && spike.y == player.y){
                            if(player.y != 4){
                                movesStack = ["down","right","right","up"]
                            } else {
                                movesStack = ["up","right","right","down"]
                            }
                        } else {
                            move("right")
                        }
                    }
                }
                else
                {
                    if (player.y < food.y) { 
                        if(spike.y == (player.y)+1 && spike.x == player.x){
                            if(food.x > player.x){
                                movesStack = ["right","down"]
                            } else {
                                movesStack = ["left","down"]
                            }
                        } else {
                            movesStack = ["down"]
                        }
                    } else {
                        if(spike.y == (player.y)-1 && spike.x == player.x){
                            if(food.x > player.x){
                                movesStack = ["right","up"]
                            } else {
                                movesStack = ["left","up"]
                            }
                        } else {
                            movesStack = ["up"]
                        }
                    }
                }
            }
        }else{
            move(movesStack.shift()); 
        }
    }, 220);
    
    function move(input){
        let text = document.getElementById("score-counter").textContent;
        let score = +text.replace("score: ", "");
        if (score != 2025){
            document.getElementById(input).click();
        }
    }
    

    entry #14

    written by oleander
    submitted at
    1 like

    guesses
    comments 0

    post a comment


    temp.js ASCII text, with CRLF line terminators
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    async function go(dir, num) {for (let i = 0; i < num; i++) {
    	//await fetch("/extra/game70", { method: "POST", body: JSON.stringify({dir}), headers, });
    	fetch("/extra/game70", {method: "POST", body: JSON.stringify({dir}), headers, });
    }}
    
    async function get() {
        grabbed = await fetch("/extra/game70", {method: "GET", headers,});
        grid = await grabbed.json();
        return await grid['grid'];
    }
    
    for (let i = 0; i < 3000; i++) {
    grid = await get();
    px = grid.indexOf('@') % 16;
    py = Math.floor(grid.indexOf('@') / 16);
    gx = grid.indexOf('+') % 16;
    gy = Math.floor(grid.indexOf('+') / 16);
    kx = grid.indexOf('*') % 16;
    ky = Math.floor(grid.indexOf('*') / 16);
    
    console.log(px, py, gx, gy, kx, ky);
    
    if (ky != py) {
    	await go(px < gx ? 'right' : 'left', Math.abs(px - gx));
    	await go(py < gy ? 'down' : 'up', Math.abs(py - gy));
    }
    else {
    	await go(py < gy ? 'down' : 'up', Math.abs(py - gy));
    	await go(px < gx ? 'right' : 'left', Math.abs(px - gx));
    }
    }
    

    entry #15

    written by Moja
    submitted at
    0 likes

    guesses
    comments 0

    post a comment


    cg70bot.py ASCII text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    import requests
    import random
    
    server_url="https://codeguessing.gay/extra/game70"
    
    def get_grid(s):
        r = s.get(server_url)
        return r.json()["grid"]
    
    def get_move(cp, tp, bp):
        (cx, cy)=cp
        (tx, ty)=tp
        dx = [-1, 1][cx < tx]
        dy = [-1, 1][cy < ty]
        if cx != tx and bp != (cx + dx, cy) and cy != ty and bp != (cx, cy + dy):
            return random.choice([cx < tx, 2 + (cy < ty)])
    
        if cx != tx and bp != (cx + dx, cy):
            return cx < tx
        if cy != ty:
            if bp != (cx, cy + dy):
                return 2 + (cy < ty)
            return random.randrange(0, 2)
        return random.randrange(2, 4)
    
    def get_pos(thing, grid):
        idx = grid.find(thing)
        return (idx % 16, idx // 16)
    
    def get_positions(grid):
        cp = get_pos("@", grid)
        tp = get_pos("+", grid)
        bp = get_pos("*", grid)
        return (cp, tp, bp)
    
    def make_move_local(cp, move):
        (dx, dy) = [(-1, 0), (1, 0), (0, -1), (0, 1)][move]
        return (cp[0]+dx, cp[1]+dy)
    
    def make_move_remote(s, move):
        move=["left", "right", "up", "down"][move]
        r = s.post(server_url, headers={"Content-Type": "application/json"}, json={"dir": move})
        return r.json()["grid"]
    
    def make_move(s, grid):
        (cp, tp, bp) = get_positions(grid)
        while cp != tp:
            move = get_move(cp, tp, bp)
            cp = make_move_local(cp, move)
            make_move_remote(s, move)
    
    
    def main():
        with requests.Session() as s:
            s.cookies = requests.utils.add_dict_to_cookiejar(s.cookies, {"session": ""})
    
            while True:
                grid=get_grid(s)
                print(grid)
                make_move(s, grid)
    
    main()
    

    entry #16

    written by Dolphy
    submitted at
    0 likes

    guesses
    comments 0

    post a comment


    solver.py ASCII text
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    # solver?
    # i just,, cant
    
    import requests
    import heapq
    from math import fabs, sqrt
    
    session_token = ""
    with open('./session.txt', 'r') as f:
        session_token = f.read()
    
    url = "https://codeguessing.gay/extra/game70"
    headers = {"Content-Type": "application/json"}
    cookies = {"session": session_token}
    
    def distance(p1, p2):
        return fabs(p1[0] - p2[0]) + fabs(p1[1] - p2[1]) + sqrt((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2)
    
    def map_(func, l):
        return list(map(func, l))
    
    def diff(path):
        diff_list = []
        for i in range(len(path) - 1):
            diff_list.append( (path[i + 1][0] - path[i][0], path[i + 1][1] - path[i][1]) )
        return diff_list
    
    def direction(d):
        match d:
            case (-1, 0):
                return "left"
            case (1, 0):
                return "right"
            case (0, -1):
                return "up"
            case (0, 1):
                return "down"
        raise RuntimeError("le boobs")
    
    
    def solve():
        while True:
            r = requests.get(url, cookies=cookies)
            if r.status_code != 200:
                raise RuntimeError(f"server issue {r.status_code}")
    
            resp = r.json()
            
            grid = resp['grid']
            s = resp['s']
            score = resp['score']
            print(f"score: {score}")
            print(f"s: {s}")
            print(grid, end='\n\n')
            grid = grid.split('\n')
            ylimit = len(grid)
            xlimit = len(grid[0])
    
            x = 0
            y = 0
            player = (0, 0)
            bomb = (-1, -1)
            target = (0, 0)
            for y, line in enumerate(grid):
                for x, c in enumerate(line):
                    if c == '@':
                        player = (x, y)
                    elif c == '+':
                        target = (x, y)
                    elif c == '*':
                        bomb = (x, y)
    
            # i cant be bothered to implement a good pathfinding algorithm
            # diff = [target[0] - player[0], target[1] - player[1]]
            # vert_movement = 0
            # hrzt_movement = 0
            #
            # if diff[0] < 0:
            #     hrzt_movement = 1
            #     diff[0] = -diff[0]
            # if diff[1] > 0:
            #     vert_movement = 1
            # else:
            #     diff[1] = -diff[1]
            #
            # dirs = []
            # dirs += ['rliegfhtt'[hrzt_movement::2]] * diff[0] # cool trick
            # dirs += [('down' if vert_movement == 1 else 'up')] * diff[1] # not so cool trick
    
            # the code above keeps hitting bombs
            # this is intentional by lyly's server code
            # literally 1984
            pq = []
            d = distance(player, target)
            heapq.heappush(pq, (d, player))
    
            path = []
            while True:
                if len(pq) == 0:
                    break
                _, (x, y) = heapq.heappop(pq)
                path.append((x, y))
                if x == target[0] and y == target[1]:
                    break
    
                for dx, dy in [(-1, 0), (1, 0), (0, -1), (0, 1)]:
                    _x = x + dx
                    _y = y + dy
                    if (_x == bomb[0] and _y == bomb[1]) or not (_x >= 0 and _x < xlimit) or not (_y >= 0 and _y < ylimit):
                        continue
    
                    d = distance((_x, _y), target)
                    heapq.heappush(pq, (d, (_x, _y)))
    
            path = diff(path)
            dirs = map_(direction, path)
    
            for dir in dirs:
                r = requests.post(url, json={'dir': dir}, headers=headers, cookies=cookies)
    
            if score >= 2024:
                break
    
    solve()
    

    entry #17

    written by yui
    submitted at
    1 like

    guesses
    comments 0

    post a comment


    a.js Unicode text, UTF-8 text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    let W=15,H=5,G=[],S=0,Cookie="session=..."
    ,GET=async()=>storeGame(await(await fetch("https://codeguessing.gay/extra/game70",{headers:{Cookie}})).json())
    ,POST=async(dir)=>{
     process.stdout.write({l:"โ†",u:"โ†‘",r:"โ†’",d:"โ†“"}[dir[0]]);
     return await (await fetch(
      "https://codeguessing.gay/extra/game70",
      {method:"POST",body:JSON.stringify({dir}),headers:{Cookie,"Content-Type":"application/json"}}
     )).json();
    },find=(c,x,y)=>{for(y=0;y<H;y++)for(x=0;x<W;x++)if(G[y][x]==c)return[x,y];return[-1,-1]}
    ,pathfind=([ax,ay],[bx,by],[cx,cy])=>{
     let q=[[ax,ay]],v=new Set([ax+","+ay]),d=[[-1,0],[1,0],[0,-1],[0,1]],p={},j=[],x,y,c,dx,dy,nx,ny,k,lx,ly;
     for(;[x,y]=q.shift();){
      if(x==bx&&y==by){
       for(c=x+","+y;c;c=p[c]){
        [x,y]=c.split(',').map(Number);
        j.unshift(x>lx?"left":x<lx?"right":y>ly?"up":"down");
        lx=x,ly=y;
       }return j.pop(),j;
      }for([dx,dy]of d){
       nx=x+dx,ny=y+dy,k=nx+","+ny;
       if(nx>=0&&ny>=0&&nx<W&&ny<H&&!v.has(k)&&!(nx==cx&&ny==cy)){
        v.add(k);
        p[k]=x+","+y;
        q.push([nx,ny]);
       }
      }
     }return[];
    },storeGame=d=>{G=d.grid.split("\n").map(x=>x.split(""));S=d.score;console.log(`\n${S}\n${d.grid}`)}
    ,moveToFood=async(P=pathfind(find("@"),find("+"),find("*")),L=P.pop())=>{
     if(!P.length&&!L)throw-1;
     if(find("*")){
      let p=[],c,l,n;
      P.map((x)=>x==l?c.push(x):p.push(c=[l=x]));
      for(n of p)await Promise.all(n.map(POST));
     }else await Promise.all(P.map(POST));
     storeGame(await POST(L));
    }
    for(await GET();S<2025;)await moveToFood();
    

    entry #18

    written by kimapr
    submitted at
    3 likes

    guesses
    comments 0

    post a comment


    longjet.js Unicode text, UTF-8 text, with very long lines (418), with CRLF line terminators
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    (q=>(([x,y,z])=>y(`(require)=>{||${x}||}`)(z))(([(q=[
     "๐Ÿ ๐œฌ๐œฌ๐œฌ๐„ฒ๐Ÿ‚๐•ช๐•Œ๐Ÿ ๐ƒ˜๐‚บ๐œฟจ๐‚๐ƒถ๐‚๐œพŽ๐œปš๐œผ–๐‹–๐œปธ๐œผด๐„ฒ๐œพฌ๐พ๐‚บ๐œผด๐œผ–๐•ช๐•Œ๐‚บ๐œบผ๐„ฒ๐œฟจ๐Ÿ ๐ƒ˜๐‚บ๐œฟจ๐‚๐ƒถ๐‚๐œพŽ๐œปš๐œผ–๐‹–๐œปธ๐œผด๐„ฒ๐œพฌ๐พ๐‚บ๐œผด๐œผ–๐Ÿ‚๐Ÿ‚๐Ÿ ๐ข”๐‚บ๐œบผ๐„ฒ๐œฟจ๐Ÿ ๐‡ฆ๐œฌ๐œฌ๐œฌ๐ƒ˜๐‚บ๐œฟจ๐‚๐ƒถ๐‚๐œพŽ๐œปš๐œผ–๐‹–๐œปธ๐œผด๐„ฒ๐œพฌ๐พ๐‚บ๐œผด๐œผ–๐†ช๐œฌ๐œผด๐‚บ๐œบผ๐‚บ๐œผด๐œผ–๐‚บ๐Ÿ ๐Ÿ‚๐œฌ๐€ค๐œพŽ๐‚๐œพฌ๐Ÿ ๐Ÿพ๐Ÿพ๐Ÿ‚๐Ÿ‚๐œŽ๐œŽ๐Ÿ‚๐Ÿ‚๐Ÿ‚๐Ÿ‚๐Ÿ‚๐šด๐‚บ๐š–๐œฌ๐œŽ๐Ÿ‚๐Ÿ‚๐Ÿ ๐œปธ๐“ฒ๐œปธ๐œพฌ๐‚๐œพŽ๐Œฐ๐‚บ๐ƒ˜๐œพŽ๐ƒถ๐œฌ๐œบ€๐Š๐™š๐‚บ๐š–๐œฌ๐›’๐Ÿ ๐Ÿ ๐œผด๐œพŽ๐œพŽ๐œฟจ๐‚œ๐œฌ๐ ๐œปธ๐„ฒ๐ŽŠ๐•Œ๐•ช๐œบ€๐Ÿ ๐œฝฐ๐„ฒ๐œฟŠ๐œฌ๐†ช๐œบ€๐œฌ๐œฌ๐œฌ๐‡ฆ๐œฌ๐œฌ๐œฌ๐Ÿ ๐œปธ๐œพฌ๐‚๐œพŽ๐Œฐ๐‚บ๐ƒ˜๐œพŽ๐’ถ๐œฟŠ๐œพŽ๐œผด๐‚œ๐œฌ๐พ๐œพฌ๐‚๐œผด๐œปธ๐‹–๐•Œ๐•ช๐Ÿ‚๐œบ€๐จ๐…ฎ๐Ÿ ๐จ๐พ๐œŽ๐œธˆ๐‡ˆ๐‡ˆ๐œธˆ๐‡ˆ๐‡ˆ๐Ÿ‚๐žค๐œฌ๐Ÿ ๐œธˆ๐‡ˆ๐‡ˆ๐œธˆ๐‡ˆ๐‡ˆ๐œŽ๐Ÿ ๐œฟจ๐œฟจ๐“ฒ๐‚บ๐ƒถ๐„ฒ๐œฟจ๐œฝฐ๐‚บ๐œผด๐œฌ๐œบ€๐Ÿ ๐œฟจ๐„ฒ๐œบผ๐‚บ๐•Œ๐•ช๐œบ€๐ข”๐Ÿ‚๐Ÿ ๐œฌ๐œฌ๐œฌ๐„ฒ๐Ÿ‚",
     "๐Ÿœ ๐Ÿฒ๐žน–๐žถข๐žปฌ๐Ÿ€ถ๐Ÿœ ๐žบ’๐Ÿœ‚๐Ÿ’ฉ๐Ÿ’‹๐žตฅ๐žพ๐žฟ›๐ŸœŸ๐žพฝ๐žผง๐žป๐Ÿ’๐Ÿฐ๐žผฆ๐Ÿ‡ถ๐žพž",
     "๐žพ‚๐žน–๐Ÿœ‚๐žฟบ๐žปฌ๐žธธ๐žนด๐žถข๐Ÿ’ช๐ŸœŸ๐ŸœŸ๐Ÿ„ฅ๐Ÿ€—๐Ÿšง๐Ÿ“๐Ÿƒฉ๐Ÿšง๐žผ‰๐Ÿšฆ๐žพผ๐Ÿšฆ๐žธถ๐Ÿšฆ๐žฝข๐Ÿœ€๐Ÿ’จ๐Ÿ’‰๐Ÿœ๐Ÿชก๐žผ‡๐Ÿ’ง๐Ÿœ๐žถŸ๐Ÿšฅ๐žถฝ๐Ÿšค๐žพœ",
     "๐Ÿšจ๐Ÿฒ๐Ÿšจ๐Ÿ”๐Ÿœ‚๐Ÿ’ช๐Ÿ’Œ๐Ÿœ ๐Ÿชค๐Ÿฑ๐Ÿ’ฉ๐Ÿ‚ญ๐Ÿ’ฉ๐Ÿ’‹๐žถก๐Ÿ“‡๐Ÿ˜ฏ๐Ÿ‘ญ๐Ÿ„ค๐Ÿ™ช๐Ÿ™ช๐Ÿ™ช๐Ÿฐ๐žนฒ๐žนฒ๐Ÿฐ๐žถŸ๐Ÿœ๐Ÿš‡๐žถŸ๐Ÿ›ฟ๐Ÿƒง๐Ÿ™ฉ๐žผ‡๐Ÿฏ๐žบฌ๐Ÿœœ๐Ÿ‚ช๐Ÿ’ฆ๐Ÿ’ˆ๐Ÿ€”๐Ÿ™จ๐žธ–๐Ÿœ›๐Ÿ›ฝ๐Ÿ›ฝ๐Ÿ“ฟ๐Ÿ„ก๐Ÿ™ง๐Ÿ™ง๐Ÿ™ง๐Ÿญ๐žนฎ๐žนฎ๐Ÿฌ๐žถœ๐Ÿœš๐žถœ๐Ÿ›ผ๐Ÿƒค๐Ÿ™ฅ๐žผƒ๐Ÿซ๐žบฉ๐Ÿœ™๐Ÿ‚ง๐Ÿ’ฃ๐Ÿ’…๐Ÿ€‘๐Ÿ™ค๐Ÿ€๐Ÿœ˜๐Ÿ›บ๐Ÿ›บ๐Ÿš ๐Ÿชœ๐ŸŒ๐Ÿ’ก๐Ÿ‚ฅ๐Ÿ’ก๐Ÿ’ƒ๐žถท๐Ÿ’ฟ๐Ÿ˜ง๐Ÿ‘ฅ๐Ÿ„๐Ÿ™ข๐Ÿ™ข๐Ÿ™ข๐Ÿจ๐žนช๐žนช๐Ÿจ๐žถ˜๐Ÿœ•๐Ÿ™ฟ๐žถต๐Ÿ›ท๐ŸƒŸ๐Ÿ™ก๐žปฟ๐Ÿง๐žบฅ๐Ÿœ”๐Ÿ‚ข๐Ÿ’ž๐Ÿ’€๐Ÿ€Œ๐Ÿ™ ๐žผœ๐Ÿœ”๐Ÿ›ต๐Ÿ›ต๐Ÿ“ท๐Ÿ„™๐Ÿ™Ÿ๐Ÿ™Ÿ๐Ÿ™Ÿ๐Ÿฅ๐žนง๐žนฆ๐Ÿค๐žถ”๐Ÿœ’๐žถฒ๐Ÿ›ด๐Ÿƒœ๐Ÿ™ž๐žปป๐Ÿฃ๐žบก๐Ÿœ‘๐Ÿ‚Ÿ๐Ÿ’›๐Ÿ‘ฝ๐Ÿ€‰๐Ÿ™๐žนค๐Ÿœ๐Ÿ›ฒ๐Ÿ›ฒ๐Ÿš˜๐Ÿช”๐žพ",
     "๐Ÿ‘ฎ๐Ÿœ ๐Ÿฒ๐Ÿœ ๐Ÿœ‚๐Ÿšจ๐Ÿ”๐Ÿœ ๐Ÿœ‚๐Ÿœ๐Ÿ”ƒ๐ŸœŸ๐Ÿ“๐ŸœŸ๐Ÿœ๐Ÿšง๐Ÿฑ๐ŸœŸ๐Ÿœ€๐Ÿœ€๐Ÿœ€๐Ÿšฆ๐Ÿชข๐žพผ๐Ÿ’จ๐Ÿœž๐žน“๐Ÿšฅ๐žบญ๐Ÿšฅ๐žฟ™๐Ÿšฅ๐žพ",
     "๐Ÿšจ๐žพพ๐Ÿœ‚๐Ÿ’ช๐Ÿ’Œ๐Ÿœ ๐žพพ๐Ÿ’ช๐Ÿ€˜๐Ÿ™ซ๐žน•๐ŸœŸ๐Ÿœ๐Ÿšง๐žพฝ๐Ÿ‘ญ๐ŸœŸ๐žพฝ๐Ÿ’จ๐žพผ๐Ÿ™ช๐žน”๐žบฎ๐žผฆ๐žพ€๐žธถ๐Ÿœ๐Ÿœป๐Ÿ„…๐žปฉ๐Ÿœป๐Ÿ›ฟ๐Ÿ™ฉ๐žผ‡๐Ÿฏ๐žบฌ๐Ÿœœ๐žฟถ๐Ÿ’ฆ๐Ÿ’ˆ๐žฟถ๐Ÿ™จ๐žน’๐žบซ๐žผฃ๐žฝฝ๐žธณ๐Ÿœ›๐Ÿœน๐Ÿœน๐Ÿ›ฝ๐Ÿ›ฝ๐Ÿšข๐žน๐Ÿ’ค๐Ÿ„ ๐žพธ๐Ÿ™ฆ๐žผข๐žฟด๐žปฅ๐žพท๐žธฑ๐žพ™",
     "๐Ÿšจ๐žพพ๐Ÿ„ฆ๐Ÿ˜ฐ๐Ÿƒช๐Ÿ™ฌ๐žผจ๐žฟบ๐žปฌ๐žพฝ๐žธท๐žพŸ",
     "๐Ÿƒช๐Ÿšจ๐Ÿชค๐žพพ๐Ÿ™ฌ๐žฟœ๐žปŽ๐žนด๐ŸŽบ๐Ÿฑ๐Ÿ€ต๐žพŸ",
     "๐Ÿœ ๐Ÿœ ๐žนด๐Ÿšจ๐žถข๐Ÿœ‚๐Ÿ’ช๐Ÿ’Œ๐žนด๐Ÿ™ซ๐žฟ›๐žป๐žนณ๐ŸŽน๐Ÿฑ๐Ÿ€ต๐žพŸ",
     "๐Ÿœ ๐Ÿœ ๐Ÿ€ถ๐Ÿšจ๐žท€๐Ÿœ‚๐Ÿ’ช๐Ÿ’Œ๐Ÿ€ถ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿœฝ๐Ÿ‘๐Ÿœฝ๐Ÿ‘ญ๐žบฏ๐Ÿ’ฉ๐Ÿ„ฅ๐žถ ๐Ÿšฆ๐žถพ๐Ÿƒจ๐Ÿ”‚๐Ÿ€ด๐Ÿ’จ๐Ÿ’จ๐Ÿœป๐Ÿ›ƒ๐Ÿœป๐Ÿ‘ซ๐žฟ™๐Ÿ’ง๐Ÿ„ฃ๐žถŸ๐Ÿšฅ๐žถผ๐Ÿƒฆ๐Ÿ”€๐Ÿ€ฒ๐Ÿ’ฆ๐Ÿ’ฆ๐Ÿœบ๐Ÿ› ๐Ÿœน๐Ÿ‘ฉ๐žพ›",
     "๐Ÿ’ช๐Ÿ„ฆ๐žถข๐Ÿšจ๐žท€๐Ÿƒช๐Ÿ”„๐Ÿ„ฆ๐Ÿƒช๐Ÿ„ฅ๐Ÿ˜ฏ๐Ÿƒฉ๐Ÿœ๐Ÿœ๐Ÿšง๐Ÿ„ฅ๐žน•๐Ÿšง๐žบฎ๐Ÿšฆ๐žฟš๐Ÿšฆ๐žพž",
     "๐Ÿƒช๐Ÿœ‚๐Ÿ”„๐žปฌ๐žธš๐žผจ๐žผจ๐Ÿœ‚๐Ÿšจ๐Ÿชฃ๐žธท๐Ÿ’ฉ๐ŸœŸ๐Ÿฑ๐Ÿšง๐Ÿ“๐Ÿšง๐Ÿ€ต๐Ÿœ€๐Ÿ’จ๐Ÿ’Š๐Ÿœž๐Ÿ€ด๐Ÿ„ค๐Ÿ˜ฎ๐Ÿƒจ๐Ÿ“…๐Ÿ’ง๐Ÿ‹‡๐Ÿฏ๐žธต๐žพ",
     "๐Ÿ™ฌ๐žผŠ๐Ÿฒ๐žท€๐Ÿœ ๐Ÿฒ๐Ÿ„ฆ๐Ÿ˜ฐ๐Ÿƒช๐Ÿšง๐Ÿ“๐Ÿ„ฅ๐Ÿ˜ฏ๐Ÿƒฉ๐Ÿœ๐Ÿ›๐Ÿ›๐Ÿ€ต๐Ÿ„ค๐Ÿ˜ฎ๐Ÿƒจ๐Ÿ’Š๐Ÿ’จ๐Ÿ‹ˆ๐Ÿฐ๐žธถ๐žพ",
     "๐Ÿ™ฌ๐žผŠ๐žพ‚๐žปฌ๐Ÿœ ๐Ÿฒ๐Ÿ„ฆ๐Ÿ˜ฐ๐Ÿƒช๐Ÿšง๐Ÿ“๐Ÿ„ฅ๐Ÿ˜ฏ๐Ÿƒฉ๐Ÿœ๐Ÿชฃ๐Ÿ›๐Ÿ›๐Ÿ€ด๐Ÿ„ค๐Ÿ˜๐Ÿƒจ๐Ÿ“†๐Ÿ’จ๐Ÿ‹ˆ๐Ÿฐ๐žธต๐žพ",
     "๐Ÿ™ฌ๐žผŠ๐Ÿฒ๐žท€๐Ÿœ ๐Ÿฒ๐Ÿ„ฆ๐Ÿ˜’๐Ÿƒช๐Ÿšง๐Ÿ“๐Ÿ„ฅ๐Ÿ˜‘๐Ÿƒฉ๐Ÿœ๐Ÿ›๐Ÿ›๐Ÿ€ต๐Ÿ„ค๐Ÿ˜๐Ÿƒจ๐Ÿ’Š๐Ÿ’จ๐Ÿ‹ˆ๐Ÿฐ๐žธถ๐žพ",
     "๐Ÿ™ฌ๐žผŠ๐žพ‚๐žปฌ๐Ÿœ ๐Ÿฒ๐Ÿ„ฆ๐Ÿ˜’๐Ÿƒช๐Ÿšง๐Ÿ“๐Ÿ„ฅ๐Ÿ˜‘๐Ÿƒฉ๐Ÿœ๐Ÿœ๐Ÿšง๐Ÿชฃ๐žฝข๐Ÿ’จ๐Ÿœž๐Ÿฐ๐Ÿšฆ๐Ÿ’๐Ÿšฆ๐Ÿ€–๐Ÿšฅ๐žพ",
     "๐Ÿœ‚๐Ÿ’ช๐Ÿ’Œ๐Ÿœ ๐Ÿ€˜๐Ÿ‘ฎ๐Ÿœ ๐žธธ๐Ÿœ ๐Ÿ„ฅ๐Ÿฑ๐Ÿ„ฅ๐Ÿ˜ฏ๐Ÿƒฉ๐Ÿšง๐Ÿฑ๐Ÿ„ฅ๐Ÿ˜‘๐Ÿƒจ๐Ÿƒจ๐Ÿšฆ๐Ÿ„ค๐Ÿ’๐Ÿ„ค๐Ÿ˜ฎ๐Ÿƒจ๐Ÿšฅ๐Ÿฏ๐Ÿ„ฃ๐Ÿ˜๐Ÿƒง๐Ÿƒง๐Ÿšฅ๐žพ",
     "๐Ÿœ‚๐žตˆ๐žตˆ๐žธธ๐Ÿœ ๐Ÿ„ฆ๐Ÿ”๐Ÿ„ฆ๐Ÿ˜ฐ๐Ÿƒฉ๐Ÿšง๐Ÿฑ๐Ÿ„ฅ๐Ÿ˜‘๐Ÿƒฉ๐Ÿƒฉ๐Ÿšง๐Ÿ„ฅ๐Ÿ’๐Ÿ„ค๐Ÿ˜ฎ๐Ÿƒจ๐Ÿšฆ๐Ÿ’๐Ÿ„ค๐Ÿ˜๐Ÿƒง๐Ÿƒง๐Ÿšฅ๐žพ",
     "๐Ÿœ‚๐Ÿœ‚๐Ÿชค๐Ÿ”„๐Ÿœ ๐žธธ๐Ÿœ ๐Ÿ„ฆ๐Ÿฒ๐Ÿ„ฅ๐Ÿ˜ฏ๐Ÿƒฉ๐Ÿšง๐Ÿฑ๐Ÿ„ฅ๐Ÿ˜‘๐Ÿƒฉ๐Ÿƒฉ๐Ÿšฆ๐Ÿ„ค๐Ÿฐ๐Ÿ„ค๐Ÿ˜ฎ๐Ÿƒจ๐Ÿšฆ๐Ÿ’๐Ÿ„ฃ๐Ÿ˜๐Ÿƒง๐Ÿƒง๐Ÿšฅ๐žพ",
     "๐Ÿœ‚๐žตˆ๐žตˆ๐žธธ๐Ÿœ ๐Ÿ„ฆ๐Ÿฒ๐Ÿ„ฆ๐Ÿ˜ฐ๐Ÿƒฉ๐Ÿšง๐Ÿ“๐Ÿ„ฅ๐Ÿ˜‘๐Ÿƒฉ๐Ÿƒฉ๐Ÿšง๐Ÿ„ฅ๐Ÿ’๐Ÿ„ค๐Ÿ˜ฎ๐Ÿƒจ๐Ÿšฆ๐Ÿ’๐Ÿ„ค๐Ÿ˜๐Ÿƒง๐Ÿƒง๐Ÿšฅ๐žพ",
     "๐Ÿœ‚๐Ÿœ‚๐Ÿœ‚๐Ÿšจ๐Ÿชค๐Ÿฒ๐žน–๐žถข๐žปฌ๐Ÿ€ต๐ŸœŸ๐Ÿœ๐Ÿ’ฉ๐Ÿ’‹๐žตฅ๐žฟ›๐žป๐žนณ๐Ÿœž๐Ÿ“ค๐Ÿ“ค๐Ÿœ€๐žธถ๐žนฒ๐žถ ๐žตค๐Ÿฏ๐žท›๐Ÿฏ๐žฝฟ๐žธต๐Ÿ ๐Ÿ€•๐Ÿ™ฉ๐žถฝ๐Ÿœœ๐Ÿ›พ๐Ÿ“ข๐žฟ˜๐žปŠ๐žนฐ๐Ÿœœ๐Ÿ“ข๐Ÿ“ก๐Ÿ›ฝ๐žตก๐žผฃ๐žฟต๐žธณ๐Ÿ ‹๐žผฃ๐Ÿ’ฅ๐žพธ๐Ÿœš๐Ÿ›ผ๐Ÿ“ ๐žฝผ๐žฟ–๐Ÿœš๐ŸŸฌ๐žผก๐Ÿ›ป๐Ÿ๐žนญ๐žฟณ๐Ÿซ๐žผฟ๐Ÿ“Ÿ๐Ÿช๐žผ ๐žฟฒ๐žธฐ๐Ÿ ˆ๐Ÿ„ž๐žนŽ๐Ÿš ๐žบจ๐ŸšŸ๐žฟ“๐ŸšŸ๐žพ—",
     "๐Ÿƒช๐Ÿ’ช๐žผจ๐Ÿ“ฆ๐žพ‚๐žฟœ๐Ÿœ ๐Ÿ€˜๐Ÿ™ฌ๐žบฏ๐žบฏ๐Ÿ›๐Ÿ›๐ŸŸฑ๐žพŸ",
     "๐Ÿœ‚๐žตฆ๐žผจ๐žฟบ๐žธธ๐Ÿ ๐žท€๐Ÿ’ช๐žบฐ๐Ÿšง๐žถƒ๐Ÿ’ฉ๐Ÿ˜ฏ๐Ÿšง๐žฝฃ๐Ÿ’ฉ๐žปซ๐žฟน๐žทœ๐Ÿ Ž๐Ÿˆ”๐žฟธ๐žธถ๐Ÿœž๐Ÿœ€๐Ÿ“ค๐žท›๐žพ",
     "๐žพ‚๐žผจ๐žฟบ๐Ÿœ ๐Ÿ˜’๐Ÿœ‚๐žตฆ๐Ÿชค๐žผจ๐žฟน๐žธท๐Ÿ ๐žทป๐Ÿ’ฉ๐žบฏ๐Ÿ„ฅ๐Ÿ˜ฏ๐Ÿƒฉ๐Ÿธ๐Ÿ—ฒ๐Ÿ›ข๐Ÿ—ฒ๐Ÿšˆ๐Ÿ˜๐Ÿšฆ๐Ÿ‚ฌ๐Ÿ“ฃ๐Ÿ„ฃ๐Ÿ‚ซ๐Ÿšฅ๐žบญ๐Ÿƒง๐Ÿ’ง๐Ÿœ๐žบญ๐Ÿ„ข๐Ÿ˜Ž๐Ÿƒฆ๐Ÿ›‚๐žทธ๐Ÿ“„๐žน’๐Ÿ„ข๐Ÿ˜๐Ÿƒฅ๐Ÿ—๐Ÿ—๐žบซ๐Ÿ„ก๐Ÿ˜๐Ÿƒฅ๐Ÿ›๐žทถ๐Ÿ’†๐Ÿ’ค๐Ÿ˜ช๐Ÿ›ผ๐Ÿ‘จ๐Ÿ„ ๐žผ„๐Ÿœ™๐Ÿ˜ฉ๐Ÿšก๐žทต๐Ÿ›ป๐Ÿšก๐Ÿ„Ÿ๐žบฉ๐Ÿ„Ÿ๐Ÿ˜จ๐Ÿƒข๐Ÿš ๐žบจ๐Ÿ„ž๐Ÿ˜Š๐Ÿƒข๐Ÿšพ๐žทณ๐Ÿƒก๐Ÿƒก๐Ÿช›๐Ÿ“ป๐Ÿœ—๐Ÿœ—๐žทณ๐Ÿ’ก๐žตบ๐Ÿฐ๐Ÿ—ช๐Ÿ›š๐Ÿ—ช๐Ÿš€๐Ÿ˜ˆ๐Ÿšž๐žบฅ๐Ÿ„›๐Ÿ˜ฅ๐ŸƒŸ๐Ÿšป๐žทฑ๐Ÿ’ฝ๐žน‹๐Ÿ„›๐Ÿ˜ค๐Ÿƒž๐Ÿ๐Ÿ๐žบค๐Ÿ„š๐Ÿ˜ค๐Ÿƒž๐Ÿšน๐žทฏ๐Ÿ‘ฟ๐Ÿ’๐Ÿ˜ฃ๐Ÿ›ต๐žดป๐žดป๐Ÿœ“๐žทฎ๐Ÿ’œ๐Ÿ™ผ๐žทฎ๐Ÿšš๐žตถ๐Ÿšธ๐Ÿšธ๐Ÿ›ณ๐Ÿš™๐Ÿ„—๐žปป๐Ÿœ‘๐žทญ๐Ÿš™๐Ÿ˜ก๐Ÿ›ณ๐Ÿš˜๐Ÿ„–๐žบ ๐Ÿ„–๐Ÿ˜ ๐Ÿƒš๐Ÿšถ๐žทฌ๐Ÿš˜๐žบŸ๐Ÿ„•๐Ÿ˜๐Ÿƒ™๐Ÿƒ™๐Ÿƒ™๐Ÿ›ฑ๐Ÿ“•๐Ÿช’๐žผ–๐žฟจ๐žธฆ๐ŸŸพ๐žผด๐Ÿ’˜๐Ÿ‚œ๐Ÿ’˜๐Ÿ‘น๐Ÿœ๐Ÿ„“๐Ÿ™™๐Ÿ™™๐Ÿ™™๐Ÿ๐Ÿƒ—๐Ÿ™˜๐žปถ๐Ÿž๐žบœ๐ŸœŒ๐žฟฆ๐Ÿ’–๐Ÿ‘ธ๐žฝ๐Ÿ™—๐žพ‹",
     "๐Ÿฒ๐žน–๐Ÿœ ๐žฟบ๐Ÿœ‚๐Ÿ‘ฎ๐žฟบ๐Ÿ”„๐žฝค๐Ÿ™ซ๐Ÿฑ๐Ÿ€—๐Ÿ€—๐ŸœŸ๐žฟน๐Ÿ™ซ๐žฟ›๐žพ๐žปช๐Ÿฐ๐žผฆ๐žผฆ๐žถ ๐Ÿœž๐Ÿ‚ฌ๐Ÿ’จ๐Ÿ’‰๐Ÿœ๐Ÿ‘๐Ÿ™ฉ๐Ÿ€•๐žฟท๐žผฅ๐žฟท๐žธต๐žฟถ๐Ÿœœ๐žฟถ๐Ÿ›พ๐Ÿšค๐žฝ ๐Ÿ™จ๐Ÿ€”๐žฟต๐žผฃ๐žฟต๐žธณ๐žฟต๐Ÿœ›๐žฟต๐Ÿ›ฝ๐Ÿ›ฝ๐Ÿ›ผ๐Ÿ™ฆ๐Ÿ€ฐ๐Ÿฌ๐žธฒ๐Ÿ€ฐ๐žพš",
     "๐Ÿœ ๐Ÿ‚ฎ๐Ÿ’ช๐Ÿ’Œ๐žตฆ๐žดช๐Ÿœ‚๐Ÿœ‚๐Ÿœ‚๐Ÿšง๐Ÿ€—๐Ÿ™ซ๐žผ‰๐žน•๐žพฝ๐Ÿ’ฉ๐Ÿ“๐Ÿ™ซ๐žน”๐žพ€๐žถ‚๐žฟธ๐Ÿœ€๐Ÿชข๐žฝ„๐Ÿœž๐Ÿ›ฟ๐Ÿ“ฃ๐žฝฟ๐žฟ™๐Ÿœ๐Ÿ‘๐Ÿ™ฉ๐žน“๐žฝฟ๐žถ€๐žฟถ๐Ÿ’ˆ๐Ÿ˜Ž๐Ÿ˜ฌ๐Ÿ˜ฌ๐Ÿ›พ๐žทš๐žพ›",
     "๐žพ‚๐žผจ๐žฟบ๐Ÿœ ๐Ÿ”๐Ÿ™ฌ๐žน–๐žพ‚๐žถ„๐žฟน๐Ÿ’‹๐Ÿ”ก๐Ÿ˜ฏ๐Ÿœ๐žฝ…๐ŸœŸ๐Ÿœ๐Ÿšง๐Ÿชข๐Ÿฐ๐žทœ๐Ÿฐ๐žพ€๐žธถ๐Ÿ Ž๐žบ๐Ÿœ๐Ÿ˜๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ›ฟ๐Ÿ“ฃ๐žผฅ๐Ÿ’ง๐žพป๐Ÿœœ๐Ÿ›พ๐Ÿ“ข๐Ÿ„ข๐žน’๐Ÿšค๐Ÿ‚ช๐Ÿšค๐žฟ—๐Ÿšฃ๐žพ›",
     "๐Ÿƒช๐Ÿ’ช๐žผจ๐Ÿ“ฆ๐žพ‚๐žฟœ๐Ÿœ ๐žผจ๐Ÿœ๐Ÿ›๐žผง๐Ÿ„ฅ๐Ÿ—•๐Ÿƒฉ๐Ÿœ๐žตฅ๐Ÿ€—๐Ÿ™ซ๐žบฎ๐žบฎ๐Ÿ’จ๐Ÿ˜ฎ๐Ÿ“ค๐Ÿ’๐žนฒ๐žฟธ๐Ÿฏ๐žฝƒ๐žดง๐Ÿชก๐žดง๐žดง๐žฟท๐žผฅ๐žน“๐žฟถ๐Ÿ Œ๐žฝพ๐žฟ˜๐Ÿœœ๐ŸŸฎ๐žพœ",
     "๐Ÿœ‚๐žตฆ๐žผŠ๐Ÿœ ๐žฟœ๐Ÿ„ฆ๐Ÿ˜ฐ๐Ÿƒช๐ŸšŠ๐žบฏ๐Ÿ„ฅ๐Ÿ˜ฏ๐Ÿƒฉ๐Ÿšง๐žฟ›๐Ÿ„ฅ๐Ÿ˜‘๐Ÿƒฉ๐Ÿšˆ๐žบฎ๐Ÿ„ค๐Ÿ˜๐Ÿƒจ๐Ÿœ€๐žดจ๐žฟธ๐žผฅ๐žน“๐žฟท๐žตฃ๐Ÿชก๐žผฅ๐žฟท๐žธต๐Ÿ ๐Ÿ„ข๐žธ–๐Ÿšค๐žถผ๐Ÿšค๐žถž๐Ÿƒฆ๐Ÿ’ฆ๐Ÿ„ก๐Ÿ„ก๐žบซ๐Ÿ„ก๐Ÿ˜ซ๐Ÿƒฅ๐Ÿšฃ๐žบซ๐Ÿ„ก๐Ÿ˜Œ๐Ÿƒค๐Ÿƒค๐Ÿšข๐Ÿ‹„๐Ÿฌ๐žธฒ๐žพš",
     "๐Ÿ™ฌ๐žนด๐Ÿฒ๐žปฌ๐Ÿ€˜๐žปŽ๐žผŠ๐Ÿœ ๐Ÿœ‚๐Ÿ’‹๐Ÿ˜ฏ๐Ÿ™ซ๐Ÿ–™๐Ÿšง๐Ÿ‹‰๐Ÿฑ๐žธท๐žพŸ",
     "๐Ÿ™ฌ๐žนด๐Ÿฒ๐žปฌ๐Ÿ€˜๐žปŽ๐žผŠ๐Ÿœ ๐Ÿœ‚๐Ÿ’‹๐Ÿ˜ฏ๐Ÿ™ซ๐Ÿ–™๐Ÿƒฉ๐Ÿ“ฅ๐Ÿชฃ๐žผง๐žฟน๐žธถ๐Ÿ Ž๐žพ€๐Ÿ’จ๐Ÿ˜ฎ๐Ÿ“ค๐žทœ๐žพž",
     "๐žพ‚๐žผจ๐žฟบ๐Ÿœ ๐Ÿ˜’๐Ÿœ‚๐žตฆ๐Ÿชค๐žพ‚๐žฟ›๐ŸœŸ๐ŸŸฑ๐ŸœŸ๐žฝฃ๐ŸœŸ๐žบฏ๐Ÿšง๐žธ™๐Ÿšฆ๐žถพ๐Ÿšฆ๐žพž",
     "๐Ÿœ‚๐žตˆ๐žตˆ๐žฝค๐Ÿœ ๐žธš๐Ÿšจ๐žฟœ๐Ÿšจ๐žถก๐Ÿšง๐žพŸ",
     "๐Ÿœ‚๐Ÿœ‚๐Ÿœ‚๐Ÿ ๐Ÿ”๐žนด๐žฟบ๐Ÿฒ๐žฝ†๐Ÿ“ฅ๐Ÿชฃ๐žธ™๐Ÿ’ฉ๐Ÿ„ฅ๐Ÿ‹‰๐Ÿฑ๐žธท๐žพŸ",
     "๐Ÿ™ฌ๐žฟœ๐žผจ๐žปŽ๐žปŽ๐žนด๐Ÿœ ๐Ÿ‹Š๐Ÿฒ๐žธท๐žพŸ",
     "๐Ÿ™ฌ๐žนด๐Ÿฒ๐žปฌ๐Ÿ€˜๐žปŽ๐žผŠ๐Ÿœ ๐Ÿœ‚๐Ÿ›ฃ๐žน•๐Ÿ„ฅ๐Ÿ˜ฏ๐Ÿƒฉ๐Ÿœ๐Ÿšง๐Ÿ‹‰๐Ÿฑ๐žธถ๐žพž",
     "๐Ÿ™ฌ๐žฟœ๐žผจ๐žปŽ๐žปŽ๐žนด๐Ÿœ ๐Ÿ‹Š๐Ÿฒ๐žธท๐žพŸ",
     "๐Ÿ™ฌ๐žนด๐Ÿฒ๐žปฌ๐Ÿ€˜๐žปŽ๐žผŠ๐Ÿœ ๐Ÿœ‚๐Ÿ›ฃ๐žน•๐Ÿ„ฅ๐Ÿ˜‘๐Ÿƒฉ๐Ÿœ๐Ÿƒฉ๐Ÿ“ฅ๐Ÿชฃ๐žถพ๐Ÿ’จ๐Ÿ‹ˆ๐Ÿฐ๐žธถ๐žพž",
     "๐Ÿ™ฌ๐žนด๐Ÿฒ๐žปฌ๐Ÿ€˜๐žปŽ๐žผŠ๐Ÿœ ๐Ÿœ‚๐Ÿ’‹๐Ÿ˜ฏ๐Ÿ™ซ๐Ÿ–™๐Ÿ“ฅ๐žถก๐Ÿ’ฉ๐Ÿ‹‰๐Ÿฑ๐žธถ๐žพž",
     "๐Ÿ™ฌ๐žนด๐Ÿฒ๐žปฌ๐Ÿ€˜๐žปŽ๐žผŠ๐Ÿœ ๐Ÿœ‚๐Ÿ’‹๐Ÿ˜ฏ๐Ÿ™ซ๐Ÿ–™๐Ÿ“ฅ๐Ÿชฃ๐žพ๐Ÿ›…๐Ÿ›…๐Ÿ“ค๐žพ€๐žฟš๐Ÿœž๐žพ€๐Ÿ’Š๐Ÿ˜๐Ÿ˜ฎ๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ›ฟ๐žตฃ๐žฝฟ๐Ÿ’ง๐Ÿ˜ญ๐Ÿ“ฃ๐Ÿ€ณ๐žปŠ๐žปจ๐žน’๐žปŠ๐žผค๐žฟถ๐Ÿ™จ๐žฟถ๐žนฏ๐žนฏ๐žป‰๐žนฏ๐Ÿœ›๐ŸŸ๐ŸŸญ๐ŸŸ๐Ÿ›ฝ๐Ÿ“ ๐Ÿฌ๐žท˜๐Ÿฌ๐žฝผ๐žธฒ๐Ÿ Š๐žบŒ๐Ÿœ™๐Ÿ˜‹๐Ÿ˜ฉ๐Ÿ˜ฉ๐Ÿ›ป๐žดฃ๐Ÿช๐žดฃ๐žผƒ๐Ÿœ˜๐žธ’๐Ÿ„ž๐Ÿ˜จ๐Ÿƒข๐Ÿš‚๐žบจ๐Ÿ„ž๐Ÿ˜ง๐Ÿƒก๐ŸšŸ๐žธ‘๐Ÿ„๐Ÿ˜‰๐Ÿƒก๐Ÿš๐žบง๐Ÿ„œ๐Ÿ˜ˆ๐Ÿƒ ๐Ÿšž๐žถถ๐Ÿ›ธ๐Ÿ“œ๐Ÿชš๐žปฟ๐Ÿœ•๐žฟ‘๐Ÿ„›๐Ÿ˜ฅ๐ŸƒŸ๐Ÿ™ฟ๐žธ๐Ÿ„›๐Ÿ˜ค๐Ÿƒž๐Ÿšœ๐žฟ๐Ÿ„š๐Ÿ˜†๐Ÿƒž๐Ÿ™พ๐žธ๐Ÿ„™๐Ÿ˜…๐Ÿƒ๐Ÿš›๐žถ•๐Ÿ›ต๐Ÿ“™๐Ÿช—๐žดœ๐Ÿค๐žท๐Ÿค๐žฝด๐žธช๐Ÿ ‚๐Ÿœ’๐žผ™๐Ÿ’›๐Ÿ‘ฝ๐Ÿ‰ก๐žนฅ๐žบฟ๐žปป๐žฝณ๐žน‡๐žฟช๐Ÿ™œ๐Ÿข๐žผ˜๐žผ˜๐Ÿœ๐Ÿ„๐Ÿ›ฒ๐Ÿ™œ๐žฟ‹๐žฝฑ๐žป›๐Ÿก๐žผ—๐žผ—๐žถ‘๐Ÿœ๐Ÿ‚œ๐Ÿ’˜๐Ÿ‘บ๐žผ–๐Ÿ™š๐žฟŠ๐žบผ๐žนข๐ŸŽจ๐ŸŸ๐Ÿ€ฃ๐žพ",
     "๐Ÿœ ๐žฟบ๐Ÿ’ช๐Ÿ’Œ๐Ÿ”๐Ÿ™ฌ๐Ÿ€˜๐žฟบ๐žผจ๐žฟน๐žธท๐žฟน๐ŸœŸ๐žฟน๐Ÿœ๐Ÿœ๐Ÿœ๐Ÿœ๐Ÿœž๐Ÿ„ค๐Ÿ™ช๐Ÿ™ช๐Ÿ™ช๐Ÿ’๐Ÿƒจ๐Ÿœ€๐Ÿ“ฃ๐Ÿชก๐žดง๐Ÿ‘๐žนฑ๐žฟท๐Ÿฏ๐žฝƒ๐žดง๐Ÿ€ฒ๐Ÿฎ๐žธด๐Ÿ€ฒ๐žพœ",
     "๐Ÿœ ๐žฟบ๐Ÿœ‚๐žตฆ๐Ÿ€ถ๐žปŽ๐žปฌ๐žน–๐žปŽ๐žผง๐žฟน๐Ÿ™ซ๐žฟน๐žนณ๐žนณ๐žป๐žนณ๐ŸœŸ๐žฟธ๐Ÿœ€๐Ÿ“ค๐Ÿฐ๐žทœ๐Ÿฐ๐žพ€๐žธถ๐Ÿ ๐žบ๐Ÿœ๐Ÿ˜๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ›ฟ๐Ÿ“ฃ๐žดฆ๐žดฆ๐Ÿ›พ๐Ÿ›พ๐Ÿช ๐Ÿœœ๐Ÿœœ๐ŸŸฎ๐žพน๐žผฃ๐žป‰๐Ÿ๐Ÿญ๐žผฃ๐Ÿ‡ณ๐žพ›",
     "๐žพ‚๐žน–๐Ÿ™ฌ๐žทž๐žพ‚๐žปฌ๐Ÿ€˜๐žปŽ๐žทž๐Ÿœ๐Ÿ‘ญ๐Ÿฑ๐žท๐Ÿฑ๐žพ๐žธท๐ŸœŸ๐Ÿฑ๐žน”๐žถ ๐žปช๐Ÿ€ด๐Ÿœž๐žตค๐Ÿด๐žผฆ๐žฝฟ๐žฟท๐žปฉ๐žธต๐žดง๐Ÿšฅ๐Ÿ™‹๐Ÿ›ก๐Ÿ ๐Ÿฒ๐žปŠ๐žปจ๐žฟ˜๐žฝพ๐žพบ๐Ÿ Œ๐Ÿ€”๐Ÿญ๐žธณ๐Ÿญ๐Ÿ ‹๐Ÿš…๐Ÿš…๐Ÿš…๐Ÿš…๐Ÿ’‡๐Ÿ›ž๐Ÿ™ˆ๐žต ๐žปˆ๐žนฎ๐žฝผ๐žพธ๐žฝผ๐žปฅ๐Ÿšก๐Ÿ€ฏ๐žป‡๐žป‡๐žผฟ๐žฝป๐žฟณ๐Ÿšก๐žนŽ๐žบจ๐Ÿช๐žผ‚๐žดข๐Ÿš ๐Ÿชœ๐žนŽ๐ŸšŸ๐žพต๐ŸšŸ๐Ÿ€๐ŸšŸ๐Ÿ‹๐Ÿ›น๐Ÿ’ก๐Ÿ’ƒ๐žตœ๐žฝธ๐žฟ’๐Ÿœ–๐ŸŸจ๐Ÿœ–๐žป„๐žนช๐žฝท๐žพณ๐žฝท๐žปก๐Ÿ‘๐Ÿ‘๐Ÿ€ซ๐žปƒ๐žปƒ๐žผบ๐žฝถ๐žฟฎ๐Ÿ›ถ๐Ÿ›ถ๐ŸŽ๐žธŽ๐žป ๐Ÿ€ฉ๐žธซ๐žฝต๐žป๐žปŸ๐Ÿœ“๐Ÿœฑ๐žถณ๐Ÿœฑ๐Ÿšš๐Ÿœฐ๐žธช๐žพ’",
     "๐žนด๐žปŽ๐žทž๐Ÿ ๐žปฌ๐žฟบ๐žทž๐Ÿ ๐ŸŽบ๐žนณ๐žนณ๐žป๐žนณ๐ŸœŸ๐žถฟ๐Ÿœ๐Ÿœฝ๐Ÿœ๐Ÿœž๐Ÿœผ๐Ÿ€ด๐žปŒ๐žปช๐žฟš๐žพ€๐žพผ๐Ÿ™ฉ๐žฝก๐žน“๐žป‹๐žปฉ๐Ÿ ๐ŸŸฏ๐Ÿ’ง๐Ÿ ๐žตข๐ŸŸ๐žปŠ๐žนฐ๐žฝพ๐žพบ๐žฝพ๐žปจ๐ŸŸ๐Ÿ“ฟ๐Ÿ ‹๐Ÿ‹ฃ๐žถ๐žนฏ๐žฝฝ๐Ÿ€ฑ๐Ÿ‹ฃ๐žถœ๐Ÿ™ฆ๐Ÿ€ฐ๐žปˆ๐žผ„๐Ÿšข๐Ÿ Š๐ŸŸŽ๐žน๐žบฉ๐Ÿซ๐žผƒ๐ŸŸ๐Ÿ“ฝ๐Ÿ‘ง๐Ÿ‘ง๐Ÿ‘ง๐Ÿš ๐Ÿ ˆ๐ŸŸŒ๐Ÿ€ฎ๐žป†๐žป†๐žผพ๐žฝบ๐žฟฑ๐ŸŸ‹๐Ÿ“ป๐Ÿ ‡๐ŸŸ‹๐žน๐žฟฑ๐žน๐žน๐žฝธ๐žป„๐žปข๐Ÿ’ ๐Ÿœด๐Ÿ›ธ๐Ÿ“œ๐Ÿชš๐žน‹๐Ÿ’Ÿ๐žปก๐žฟฏ๐žท“๐Ÿ …๐Ÿซ๐žผ๐žฝท๐žฟฎ๐žป ๐žธฌ๐Ÿœ”๐žป‚๐žนจ๐žฝถ๐žพฒ๐žฝต๐žปŸ๐Ÿš›๐žต™๐žบฃ๐žฝต๐žบฃ๐žฟญ๐žผ›๐žฝด๐žปž๐žฝด๐žปž๐žพฐ๐Ÿ“ถ๐Ÿ˜„๐Ÿ˜ข๐Ÿ˜ก๐Ÿš™๐žพ‘",
     "๐žฟบ๐Ÿฒ๐Ÿ€˜๐žฟบ๐žนด๐žน–๐Ÿ‡ธ๐žพ‚๐žผŠ๐žฟน๐žป๐žธ™๐žธท๐Ÿ”ƒ๐Ÿ˜‘๐Ÿ˜ฏ๐žฟน๐Ÿ—•๐Ÿšฆ๐Ÿ’๐žปŒ๐Ÿ€–๐žถ ๐Ÿ‡ถ๐žพ€๐žผˆ๐žฟท๐žป‹๐žธ—๐žธต๐Ÿ”๐Ÿ˜๐Ÿ˜ญ๐žฟท๐Ÿ—“๐žดฆ๐Ÿ›พ๐Ÿ“ข๐Ÿ๐Ÿ’ฆ๐žปจ๐žฟถ๐žทš๐Ÿ ‹๐Ÿˆ‘๐žฟต๐žธณ๐Ÿœ›๐Ÿ›ฝ๐Ÿ“ก๐ŸชŸ๐žน‘๐Ÿ’ค๐Ÿœš๐žน๐Ÿ’ค๐Ÿ’†๐Ÿฌ๐žน๐žถœ๐žปฅ๐Ÿ€ฏ๐Ÿœ™๐Ÿ๐žป‡๐Ÿ€‘๐žถ›๐Ÿšก๐žถน๐Ÿ›บ๐Ÿ’ข๐Ÿ’„๐Ÿœ˜๐žบจ๐žนฌ๐žป†๐Ÿ€ฎ๐žฟฑ๐žน๐žน๐Ÿ™ฃ๐žน๐žธฏ๐Ÿ€๐žป…๐žธ‘๐žธฎ๐Ÿ™ข๐Ÿ‚ค๐žธฎ๐žถ˜๐žบฆ๐žฟฐ๐ŸŸจ๐Ÿ’Ÿ๐Ÿœณ๐žธญ๐žธญ๐žถ—๐Ÿœณ๐Ÿ‘๐Ÿ‘๐žบฅ๐žนจ๐žป‚๐Ÿ€ช๐žฟฎ๐žนŠ๐žนŠ๐Ÿ™ ๐žนŠ๐žธซ๐Ÿ€‹๐žป๐žธ๐žธซ๐Ÿ™Ÿ๐žท‘๐žนง๐žฝต๐žธช๐žฟฌ๐Ÿœ’๐ŸŒ–๐Ÿˆˆ๐ŸŠ€๐ŸŠž๐Ÿ™ž๐žน‡๐žธฉ๐žนฅ๐žฝณ๐žป๐žพฏ๐žฝณ๐žฟ๐žถ“๐Ÿœ๐žต–๐Ÿ€ˆ๐žฝฒ๐žนค๐Ÿ“ด๐ŸŸ„๐žบพ๐žธŠ๐žธง๐ŸŸƒ๐Ÿš—๐Ÿƒ๐žบฝ๐Ÿ€‡๐žถ‘๐žด™๐Ÿ›ฐ๐Ÿšด๐Ÿœฌ๐Ÿƒถ๐žปš๐Ÿœฌ๐Ÿ›ฐ๐Ÿš–๐Ÿช’๐žถญ๐Ÿ’—๐Ÿœ๐žถญ๐Ÿ’—๐ŸŸ๐žท‹๐ŸŸ๐žฝฎ๐žธค๐ŸŸผ๐žน‚๐Ÿ™˜๐žน ๐žฟฆ๐žนพ๐žธ†๐žฟฅ๐žน๐žธฃ๐Ÿœ‹๐Ÿœ‹๐žถซ๐Ÿ’•๐Ÿ‘ท๐ŸœŠ๐žถช๐Ÿ›ฌ๐Ÿ›ฌ๐ŸœŠ๐žต๐ŸชŽ๐žบš๐Ÿœ๐žธก๐žพ‰",
     "๐Ÿ”„๐ŸŸ”๐Ÿ™Ž๐žฟบ๐žท€๐žธธ๐žนด๐Ÿฒ๐Ÿ™Ž๐žพฝ๐Ÿฑ๐žผ‰๐žฟน๐Ÿ•๐Ÿ˜ฏ๐ŸŸ“๐Ÿšง๐Ÿ“๐žผฆ๐žปŒ๐Ÿ€ด๐žฝ„๐žพ€๐žปช๐žพผ๐Ÿ”‚๐žฟ™๐Ÿฏ๐žผฅ๐žน“๐žฟท๐Ÿšฅ๐žฝฟ๐Ÿ€•๐žฟท๐žผ†๐žบฌ๐žปŠ๐žธด๐žฟถ๐žปจ๐žธด๐Ÿ”€๐žธณ๐žนฏ๐žธ•๐žฟต๐Ÿšฃ๐ŸชŸ๐žพ›",
     "๐žฟบ๐Ÿฒ๐Ÿ€˜๐žฟบ๐žนด๐žน–๐Ÿ”„๐žตฆ๐Ÿ€ถ๐žป๐žป๐žฝ…๐žพ๐žฟน๐Ÿ”ƒ๐Ÿ€ต๐žป๐žป๐žฝ„๐žพ€๐žฟธ๐Ÿšฆ๐Ÿ™ช๐Ÿ™ช๐Ÿ™ช๐Ÿ’๐žป‹๐Ÿ€•๐žถŸ๐Ÿ‘ซ๐žตฃ๐Ÿœป๐Ÿ€ณ๐žป‹๐žปฉ๐žธด๐žฟถ๐žปจ๐žธด๐Ÿš†๐žธด๐žถž๐žบฌ๐žฟต๐Ÿœน๐Ÿ“ฟ๐Ÿœน๐Ÿญ๐žบซ๐žบซ๐žผฃ๐žฝฝ๐Ÿ€ฐ๐Ÿฌ๐žธฒ๐žฝผ๐žปˆ๐žปฆ๐Ÿ™ˆ๐žฝž๐žน๐žป‡๐žปฅ๐Ÿœท๐žดฃ๐Ÿช๐Ÿ“ฝ๐žตŸ๐žดฃ๐žดข๐Ÿš ๐ŸŒ๐žป†๐Ÿ€๐žถš๐Ÿ“ผ๐ŸŒ๐žป…๐Ÿ€๐žถ™๐Ÿ‘ฅ๐ŸŒ›๐Ÿˆ๐ŸŠ…๐ŸŠฃ๐Ÿ™ฃ๐žนŒ๐žธฎ๐žนช๐žฝธ๐žปข๐žพด๐žฝธ๐žฟ’๐žถ—๐Ÿœ•๐Ÿ‰๐žปƒ๐Ÿ€๐žถ—๐Ÿ›ท๐Ÿ“น๐žปก๐žธŽ๐žผœ๐žผœ๐Ÿšœ๐Ÿช˜๐žปพ๐žฟฎ๐žธฌ๐žพ“",
     "๐žปŽ๐Ÿ€˜๐Ÿ”„๐Ÿ”๐žปŽ๐Ÿ€˜๐žถข๐Ÿ‘ฎ๐ŸŸ”๐Ÿ‰ฏ๐ŸŠ๐Ÿˆ•๐Ÿ‡ท๐ŸŸ“๐Ÿ”ƒ๐ŸŸ“๐Ÿฝ๐ŸŽน๐Ÿ‡ถ๐ŸŸ’๐žดจ๐Ÿœ€๐Ÿœ€๐Ÿœ€๐Ÿšฆ๐žถพ๐Ÿ’ง๐Ÿฏ๐žท›๐Ÿฏ๐žฝฟ๐žธต๐Ÿœ๐Ÿฏ๐žน“๐žถž๐žปจ๐Ÿ€ฒ๐Ÿœœ๐Ÿ›พ๐Ÿ’ฆ๐Ÿ’ˆ๐Ÿœœ๐žถป๐Ÿ’ฅ๐Ÿญ๐žท™๐Ÿญ๐žฝฝ๐žธณ๐Ÿ ‹๐žถป๐Ÿ™ฆ๐ŸŽ๐žปˆ๐Ÿ€’๐žถœ๐Ÿ™ฆ๐žธฒ๐žฟด๐žถน๐žธฑ๐Ÿœ™๐Ÿ›ป๐Ÿšก๐ŸŒ๐Ÿˆ๐ŸŠ‡๐ŸŠฅ๐Ÿ™ค๐žบจ๐Ÿช๐žนฌ๐žนŽ๐žฟฒ๐Ÿœ˜๐žถธ๐Ÿ›น๐Ÿ›น๐Ÿ›น๐Ÿœ—๐žถท๐Ÿ›น๐Ÿช›๐Ÿ™ฃ๐Ÿ€ญ๐Ÿจ๐žธฎ๐Ÿ€ฌ๐žพ–",
     "๐Ÿœ ๐Ÿฒ๐žน–๐žถข๐žปฌ๐Ÿ€ถ๐Ÿœ ๐žฟบ๐Ÿœ‚๐Ÿ’ฉ๐Ÿ’‹๐žตฅ๐Ÿ€ต๐žป๐žปซ๐žน•๐žป๐žผง๐žฟธ๐Ÿ™ช๐žฟธ๐žนฒ๐žนฒ๐žปŒ๐žนฒ๐Ÿœž๐žถฝ๐Ÿ›ฟ๐Ÿ“ฃ๐žธต๐žพ",
     "๐žนด๐žปŽ๐žทž๐Ÿ ๐žฟบ๐žดช๐Ÿœ‚๐Ÿšจ๐Ÿœ ๐žบฏ๐žนณ๐žป๐Ÿ€ต๐žฟน๐žน•๐žน•๐Ÿ™ซ๐žน•๐žธถ๐Ÿ€–๐žปŒ๐žธ˜๐žธถ๐Ÿ™ช๐Ÿ‚ฌ๐žธถ๐žถŸ๐žบญ๐žฟท๐ŸŸฏ๐Ÿ’ง๐Ÿœป๐žธต๐žธต๐žถŸ๐Ÿœบ๐Ÿ˜๐Ÿ˜๐Ÿช ๐žบฌ๐žนฐ๐žปŠ๐Ÿ€ฒ๐žฟต๐žน‘๐žน‘๐Ÿ™ง๐žน‘๐žธณ๐Ÿ€“๐žป‰๐žธ•๐žธฒ๐Ÿ™ฆ๐žท˜๐žนฎ๐žฝผ๐žธฒ๐žฟด๐Ÿœš๐ŸŒ๐Ÿˆ๐ŸŠ‡๐ŸŠฅ๐Ÿ™ฅ๐žน๐žธฑ๐žนญ๐žฝป๐žปค๐žพถ๐žฝบ๐žฟ”๐žถš๐Ÿœ˜๐žตž๐Ÿ€๐žฝน๐žนซ๐Ÿ“ป๐ŸŸ‹๐žฝน๐žปฃ๐ŸŸ‹๐ŸšŸ๐Ÿ‹๐žป„๐Ÿ€Ž๐žถ˜๐Ÿ“บ๐žถถ๐žด ๐Ÿ›ธ๐Ÿšผ๐Ÿœณ๐Ÿƒฝ๐žปก๐Ÿœณ๐Ÿ›ท๐Ÿš๐Ÿœ•๐ŸŸง๐žพณ๐Ÿ›ถ๐žดผ๐žดผ๐Ÿœ”๐žพฒ๐Ÿ™ ๐žนŠ๐Ÿ‘ข๐Ÿ‘ก๐Ÿ˜…๐Ÿ™๐Ÿ˜ฃ๐Ÿ›ต๐Ÿ’ป๐Ÿœ“๐žถณ๐Ÿ™Ÿ๐žนˆ๐Ÿ‘ ๐Ÿ‘ ๐Ÿ˜„๐Ÿ™€๐Ÿ˜ข๐Ÿ›ด๐Ÿ›ด๐Ÿช•๐Ÿ๐Ÿ๐Ÿœ‘๐žพฏ๐Ÿ’›๐žถฑ๐Ÿš™๐Ÿ€‰๐Ÿ™œ๐Ÿ€ฆ๐žบพ๐žปœ๐Ÿ™œ๐Ÿ€ฆ๐žผ˜๐žฟช๐Ÿข๐žนฃ๐Ÿœ๐Ÿ›ฑ๐Ÿš—๐Ÿ€‡๐Ÿ™›๐Ÿ€ฅ๐žบฝ๐žปš๐Ÿ™š๐žผ–๐žบผ๐žพฌ๐ŸœŽ๐ŸœŽ๐žถฎ๐Ÿ™š๐žนƒ๐Ÿ€ฃ๐žบป๐žนก๐žฟง๐ŸŸŸ๐Ÿ’—๐žป™๐žธ†๐žผ”๐žผ”๐Ÿ›ฎ๐Ÿˆ๐Ÿˆ๐žถฌ๐Ÿ™˜๐žพช๐žนŸ๐žฝญ๐Ÿ€ƒ๐Ÿ‘™๐Ÿช๐Ÿป๐Ÿƒณ๐žป—๐Ÿƒฒ๐žธข๐žน€๐Ÿ€ ๐žบธ๐žนž๐žฟค๐Ÿ“ฎ๐ŸŸบ๐Ÿž๐žต๐žถฉ๐Ÿ™•๐žธฟ๐Ÿ€Ÿ๐žบท๐žน๐žฟข๐žด’๐Ÿƒฐ๐žป”๐Ÿƒฐ๐žป”๐Ÿž€๐žตŽ๐žถจ๐Ÿ™“๐žพฅ๐žน›๐žฝฉ๐žฟฟ๐Ÿ™“๐žธฝ๐žบ—๐žผŽ๐žฝจ๐žธž๐Ÿœ†๐Ÿœค๐Ÿƒฎ๐žป’๐Ÿœค๐Ÿ›จ๐Ÿ™‘๐žปฏ๐Ÿ—๐žบ•๐Ÿœ…๐žฟŸ๐Ÿ’๐Ÿ‘ฑ๐Ÿœข๐Ÿƒฌ๐žธœ๐Ÿœข๐Ÿšช๐žฟž๐Ÿ›ฆ๐Ÿ™๐žฝˆ๐žบฑ๐žฝฅ๐žป๐Ÿœƒ๐Ÿœก๐Ÿƒซ๐žป๐Ÿœก๐Ÿœ‚๐žดช๐Ÿ‚๐Ÿ”„๐žท€๐Ÿšจ๐Ÿ€˜๐Ÿ™ฌ๐žผŠ๐žน•๐žพฝ๐žต‡๐žต‡๐ŸŸ“๐ŸŸ“๐Ÿœ๐Ÿœ๐Ÿœ๐Ÿœ€๐Ÿœž๐žน”๐Ÿœ€๐Ÿ“ค๐Ÿ€–๐Ÿ’จ๐žตค๐žดง๐Ÿ“ฃ๐Ÿชก๐Ÿ€•๐Ÿ™ฉ๐žน“๐Ÿ’ง๐Ÿ‚ซ๐Ÿ’ง๐Ÿ’ˆ๐žพบ๐Ÿ™จ๐žพบ๐žนฐ๐žฝพ๐Ÿ€”๐Ÿ“ข๐Ÿ€“๐Ÿ™ง๐žบซ๐žบซ๐Ÿ’ฅ๐ŸŸญ๐ŸŸญ๐Ÿœ›๐žน‘๐žบช๐Ÿฌ๐žผ„๐Ÿ‘จ๐Ÿ‘จ๐Ÿ˜ช๐Ÿ›ผ๐Ÿ“ ๐Ÿ€‘๐Ÿ™ฅ๐Ÿ€ฏ๐žป‡๐žปฅ๐Ÿ’ฃ๐žปฅ๐žฟณ๐žท—๐Ÿ ˆ๐Ÿ€ฎ๐žป†๐žปค๐žนŽ๐žป†๐žผ ๐žฟฒ๐Ÿ™ฃ๐Ÿญ๐žป…๐žปฃ๐žน๐žป…๐žผŸ๐žฟฑ๐Ÿœ—๐žบฆ๐žนช๐žป„๐Ÿ€ฌ๐žฟฐ๐žนŒ๐žนŒ๐Ÿ™ข๐žน‹๐žธญ๐Ÿ€๐žฟฏ๐žนฉ๐žนฉ๐Ÿ›ท๐Ÿ“›๐Ÿ€๐Ÿ™ ๐Ÿ€ช๐žป‚๐žป ๐Ÿ™ ๐žผœ๐žป‚๐žพฒ๐Ÿœ“๐ŸŸ‡๐Ÿ€ฉ๐žป๐žปŸ๐žปŸ๐žฟญ๐Ÿ€ฉ๐žธซ๐žฝด๐žป€๐žปž๐ŸŸ†๐Ÿ›ด๐Ÿ“˜๐Ÿช–๐Ÿ„˜๐Ÿ€‰๐Ÿ™๐žผ™๐Ÿš™๐Ÿ€‰๐Ÿ™๐žนฅ๐Ÿš™๐Ÿ€‰๐Ÿ™œ๐žธŠ๐Ÿš˜๐Ÿ€ˆ๐Ÿ™œ๐Ÿ€ˆ๐Ÿƒš๐Ÿ’š๐Ÿ„–๐Ÿœญ๐žผ—๐žฟฉ๐žฟ‹๐žธง๐Ÿœญ๐Ÿš—๐Ÿœญ๐žนข๐žฝฐ๐žพฌ๐žพŽ",
     "๐žธธ๐Ÿœพ๐Ÿšจ๐Ÿœพ๐žธš๐žบฐ๐Ÿœพ๐Ÿšจ๐Ÿœพ๐Ÿ€—๐žป๐žท๐žปซ๐Ÿœฝ๐Ÿƒฉ๐Ÿชฃ๐Ÿ™ซ๐žผ‰๐Ÿฐ๐žบฎ๐Ÿœž๐Ÿœž๐Ÿ€–๐Ÿšฆ๐žบฎ๐Ÿœ€๐Ÿ’ง๐Ÿ’‰๐Ÿ‚ซ๐Ÿ’ง๐Ÿ’‰๐žตฃ๐Ÿ‘๐Ÿ™ฉ๐Ÿฏ๐Ÿ€”๐Ÿ€”๐Ÿœœ๐žบฌ๐Ÿ’ฆ๐žน’๐Ÿœœ๐žตข๐Ÿ€“๐žฝฝ๐žนฏ๐Ÿ“ฟ๐Ÿ€“๐žดฅ๐Ÿ›ฝ๐Ÿ™ง๐žธณ๐žพš",
     "๐žฟบ๐žปฌ๐Ÿœ ๐Ÿ‚ฎ๐Ÿ’ช๐Ÿ’Œ๐Ÿ”๐Ÿ™ฌ๐Ÿ€˜๐žฟน๐žผง๐žฟน๐žธท๐žฟน๐ŸœŸ๐žบฏ๐Ÿœ๐Ÿœ๐Ÿœ€๐žดจ๐Ÿœ€๐Ÿ“ค๐Ÿ€–๐Ÿ™ช๐žถพ๐Ÿ’จ๐žถฝ๐Ÿ’ง๐Ÿ’‰๐žน“๐Ÿœ๐Ÿ›ฟ๐Ÿ“ฃ๐Ÿชก๐žท›๐žพœ",
     "๐žพ‚๐žผจ๐žฟบ๐Ÿœ ๐Ÿ˜’๐Ÿœ‚๐žธธ๐žนด๐žถข๐žตฅ๐Ÿฑ๐žท๐Ÿฑ๐žพ๐žธท๐Ÿ ๐žน•๐ŸœŸ๐Ÿœ€๐Ÿ“ค๐Ÿ’๐žนฒ๐žฟธ๐Ÿฐ๐žฝ„๐žดจ๐Ÿ€ณ๐Ÿฏ๐žธต๐Ÿ€ณ๐žพ",
     "๐Ÿœ ๐žฟบ๐Ÿœ‚๐žตฆ๐Ÿ€ถ๐žปŽ๐žปฌ๐žน–๐žปŽ๐žผง๐žฟน๐Ÿ™ซ๐žฟน๐žนณ๐žนณ๐žป๐žนณ๐ŸœŸ๐žฟธ๐Ÿœ€๐Ÿ“ค๐Ÿฐ๐žทœ๐Ÿฐ๐žพ€๐žธถ๐Ÿ ๐žบ๐Ÿœ๐Ÿ˜๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ›ฟ๐žดง๐žนฐ๐žฟถ๐žธด๐žธ–๐žนฐ๐žปจ๐Ÿ Œ๐Ÿ„ข๐Ÿ€“๐Ÿšฃ๐Ÿ๐Ÿƒฅ๐žดฅ๐Ÿ›ฝ๐Ÿœ›๐žนฏ๐žฟต๐žบŒ๐žธ”๐žฝผ๐žนฎ๐žฟด๐Ÿœš๐Ÿœธ๐žธ”๐žปฅ๐Ÿ€‘๐žฝป๐Ÿ€ฏ๐žฝป๐Ÿœท๐Ÿ›ป๐Ÿšก๐Ÿช๐ŸŒœ๐ŸˆŽ๐ŸŠ†๐ŸŠค๐Ÿ™ค๐žบจ๐Ÿช๐žนฌ๐žน๐žฟฑ๐Ÿœ—๐žนซ๐žฟฑ๐žบ‰๐žธ‘๐žฝน๐žนซ๐žฟฐ๐Ÿœ–๐Ÿœด๐žฟ’๐žนŒ๐Ÿœด๐Ÿ›ธ๐Ÿ™ข๐žนฉ๐žฟฏ๐Ÿง๐Ÿ€๐ŸŽ‘๐žฝท๐žผ๐žฟฏ๐Ÿˆ‹๐žถ–๐žป ๐Ÿ€ช๐Ÿœ”๐ŸŸˆ๐Ÿ€ช๐žป‚๐žป ๐žฟ๐žฝต๐žพฑ๐Ÿ™Ÿ๐žฝ—๐žน‰๐žป๐žปŸ๐ŸŸ‡๐Ÿ›ด๐Ÿ›ด๐Ÿ›ด๐Ÿ“ถ๐Ÿ™€๐Ÿ™€๐Ÿ’บ๐Ÿ™ผ๐Ÿ™ป๐Ÿ™ป๐Ÿ™ป๐Ÿ ๐Ÿง๐žบฟ๐žป๐žฟ๐žฝณ๐žพฎ๐Ÿ €๐žฟŒ๐žฝฒ๐žผ˜๐žฟช๐Ÿช”๐Ÿœ๐Ÿœ๐žน…๐Ÿš—๐Ÿ€‡๐Ÿš—๐žปน๐Ÿš—๐Ÿƒ๐Ÿš—๐žผด๐Ÿ›ฐ๐Ÿ’˜๐Ÿ‘บ๐žต”๐Ÿ€†๐Ÿ’˜๐žต”๐žน„๐Ÿ“ฑ๐Ÿœ๐žฟง๐Ÿ’—๐Ÿ‘น๐Ÿ‚›๐Ÿ’—๐Ÿ‘น๐žฟฆ๐Ÿ™˜๐žฝฎ๐žป˜๐žป˜๐žฟฆ๐žน ๐Ÿ‡ค๐žฟฆ๐žถซ๐žธฃ๐Ÿ›ญ๐Ÿœ‹๐žน๐Ÿป๐Ÿžก๐žน๐Ÿ€ ๐žนž๐žฟค๐žฟค๐žป–๐Ÿบ๐Ÿ›ฌ๐Ÿš’๐ŸชŽ๐žผ‘๐Ÿ“ญ๐žธฟ๐Ÿน๐ŸžŸ๐žผ‘๐žฟฃ๐žฟ…๐žธ ๐Ÿธ๐Ÿš๐žนœ๐Ÿ“ฌ๐žธพ๐Ÿธ๐Ÿžž๐žนœ๐žฝฉ๐žพฅ๐žพ‡",
     "๐žธธ๐Ÿ‚๐Ÿšจ๐žธš๐Ÿ”„๐žน–๐Ÿ‚๐Ÿžถ๐žธš๐žบฏ๐Ÿ‚๐Ÿšง๐Ÿ€—๐Ÿ”ƒ๐žน•๐Ÿ‚๐Ÿžต๐Ÿ€—๐žปŒ๐žทœ๐žปช๐Ÿ‚Ž๐žดจ๐Ÿ“ค๐Ÿชข๐žฝ„๐Ÿ’ง๐Ÿ„ฃ๐Ÿƒง๐Ÿ“ฃ๐Ÿ€•๐Ÿ™ฉ๐Ÿ‘๐Ÿ’ง๐žตฃ๐žดฆ๐Ÿ“ข๐Ÿ„ข๐Ÿ€”๐Ÿ™จ๐Ÿ๐Ÿ™จ๐žผค๐Ÿšฃ๐Ÿ€“๐Ÿ™ง๐Ÿ๐Ÿ™ง๐žนฏ๐Ÿšฃ๐Ÿ€“๐Ÿ™ง๐ŸŽ๐Ÿ™ฆ๐žธ”๐Ÿšข๐Ÿ€’๐Ÿ™ฆ๐ŸŽ๐Ÿ™ฆ๐Ÿ€‘๐Ÿƒฃ๐Ÿ’ฃ๐Ÿ„Ÿ๐Ÿ™ฅ๐Ÿ™ฅ๐Ÿ™ฅ๐Ÿซ๐žนญ๐žนฌ๐Ÿช๐žถš๐Ÿœ˜๐Ÿ–ฐ๐Ÿ›บ๐Ÿƒข๐Ÿชœ๐Ÿ™ฃ๐žผ๐Ÿฉ๐žบง๐Ÿœ—๐žฟฑ๐Ÿ’ก๐Ÿ’ƒ๐žปฃ๐žฟฐ๐žท”๐Ÿ †๐ŸˆŒ๐žฟฐ๐žธฎ๐Ÿœ–๐Ÿ›ธ๐Ÿ›ท๐Ÿ“›๐Ÿ€๐Ÿ™ก๐Ÿ‰๐Ÿ™ก๐žถต๐Ÿ’Ÿ๐žปก๐žธŽ๐žผœ๐žผœ๐Ÿ“š๐Ÿˆ๐Ÿ’ž๐žป ๐žฟฎ๐žท‘๐Ÿ ƒ๐Ÿˆ‰๐žฟญ๐žธซ๐Ÿœ“๐Ÿ›ต๐Ÿ“™๐Ÿ€‹๐Ÿ™ž๐žถฒ๐Ÿ’œ๐žถฒ๐Ÿ’œ๐Ÿ‘พ๐žฟŽ๐žฟฌ๐žธฉ๐Ÿ€ง๐žพ‘",
     "๐Ÿฒ๐žปฌ๐Ÿ€˜๐Ÿˆด๐žฟบ๐žปฌ๐Ÿ€˜๐žฟบ๐žนด๐ŸœŸ๐Ÿœ๐Ÿ“ฅ๐Ÿชฃ๐Ÿ„ฅ๐Ÿ€—๐Ÿ™ซ๐žผง๐Ÿšง๐Ÿ€–๐Ÿ™ช๐žนฒ๐Ÿšฆ๐Ÿ€–๐Ÿ™ช๐žธ˜๐Ÿšฆ๐Ÿ€•๐Ÿ™ฉ๐Ÿ€•๐Ÿƒง๐Ÿ’ง๐Ÿ„ฃ๐Ÿ„ฃ๐Ÿ€•๐Ÿ™ฉ๐žผค๐Ÿšค๐Ÿ€”๐Ÿ™จ๐Ÿ๐Ÿ™จ๐žนฐ๐Ÿšค๐Ÿ€“๐Ÿ™ง๐Ÿ๐Ÿ™ง๐žผฃ๐Ÿƒฅ๐Ÿšฃ๐Ÿ„ก๐Ÿ€“๐Ÿ™ฆ๐žนฎ๐Ÿšข๐Ÿ€’๐Ÿ™ฆ๐ŸŽ๐Ÿ™ฆ๐žผข๐Ÿšก๐Ÿ€‘๐Ÿ™ฅ๐Ÿ๐Ÿ™ฅ๐žนญ๐Ÿƒฃ๐Ÿšก๐Ÿช๐Ÿ„ž๐Ÿ€๐Ÿ™ค๐žธ’๐Ÿš ๐Ÿ€๐Ÿ™ค๐ŸŒ๐Ÿ™ฃ๐Ÿ€๐ŸšŸ๐Ÿ€๐Ÿ™ฃ๐Ÿ‹๐Ÿ™ฃ๐žธ‘๐Ÿƒก๐Ÿšž๐Ÿ„œ๐Ÿ€Ž๐Ÿ™ข๐Ÿ€Ž๐Ÿšž๐Ÿ€Ž๐Ÿ™ข๐Ÿ‰๐Ÿ™ก๐žธ๐Ÿš๐Ÿ€๐Ÿ™ก๐Ÿ‰๐Ÿ™ก๐Ÿ€๐Ÿƒž๐Ÿƒž๐Ÿ™ ๐žปพ๐Ÿฆ๐žบค๐Ÿœ”๐Ÿœ”๐Ÿ„™๐žฟ๐Ÿš›๐žน‰๐Ÿš›๐žพ“",
     "๐Ÿƒช๐Ÿœ‚๐Ÿ’ช๐Ÿ’Œ๐Ÿœ ๐Ÿฒ๐žน–๐žถข๐žปฌ๐Ÿ€ต๐ŸœŸ๐žบฏ๐Ÿœ๐Ÿ’ฉ๐Ÿ’‹๐žตฅ๐žพ๐žฟ›๐Ÿœž๐Ÿ€–๐Ÿ™ช๐Ÿ’๐Ÿ™ช๐žถพ๐Ÿœ€๐Ÿฐ๐žท›๐Ÿฏ๐žฝฟ๐žธต๐Ÿ ๐Ÿ€•๐Ÿ™ฉ๐Ÿ‘๐Ÿ™ฉ๐žถผ๐Ÿ“ข๐Ÿช ๐žฝพ๐žฟ˜๐Ÿœœ๐žน’๐Ÿ™จ๐žน‘๐žฝฝ๐žตฟ๐žฟต๐Ÿ’‡๐Ÿ˜ซ๐Ÿ›ฝ๐žบซ๐Ÿ’ฅ๐Ÿ‰ช๐žนฎ๐žปˆ๐žผ„๐žฝผ๐žน๐žฟด๐Ÿ™ฆ๐Ÿซ๐žผก๐žผก๐Ÿœ™๐žน๐Ÿ›ป๐Ÿšก๐Ÿ๐Ÿ™ฅ๐Ÿช๐Ÿ€๐Ÿ€๐Ÿœ˜๐Ÿ€๐Ÿ™ค๐ŸŒ๐Ÿ™ค๐žถท๐Ÿ’ก๐žบง๐Ÿช›๐Ÿ’ก๐žบง๐Ÿ™ฃ๐žธฏ๐žพ—",
     "๐žฟบ๐žปฌ๐Ÿœ ๐žทผ๐Ÿ’ช๐Ÿ’Œ๐Ÿœ ๐Ÿ”๐Ÿ™ฌ๐Ÿ€—๐žฟน๐žผง๐žฟน๐žธท๐žฟน๐ŸœŸ๐žบฏ๐Ÿœ๐Ÿšฆ๐Ÿ€–๐Ÿ™ช๐Ÿ’๐Ÿ™ช๐žถพ๐Ÿ’จ๐žปช๐žธ—๐žผฅ๐žผฅ๐Ÿšฅ๐žทน๐Ÿ›ฟ๐Ÿ›ฟ๐Ÿ›ฟ๐Ÿšฅ๐Ÿฎ๐žทš๐Ÿฎ๐žฝพ๐žธด๐Ÿ Œ๐žบฌ๐Ÿ“ข๐ŸชŸ๐žฝ๐Ÿ™ง๐žบซ๐žธ•๐žน‘๐žพ›",
     "๐Ÿœ ๐žบฐ๐Ÿ’ช๐Ÿ’Œ๐žพ ",
     "๐Ÿ™ฌ๐Ÿฒ๐Ÿ€˜๐Ÿ€˜๐Ÿœ ๐žบฐ๐Ÿ’ช๐žบฐ๐Ÿ™ฌ๐žธท๐žพŸ",
     "๐žฟบ๐žปฌ๐Ÿœ ๐žทผ๐Ÿ’ช๐Ÿ’Œ๐Ÿœ ๐žพ ",
     "๐Ÿ™ฌ๐Ÿ€˜๐žฟบ๐žผจ๐žฟบ๐žธธ๐žฟบ๐Ÿœ ๐žบฐ๐Ÿœ๐Ÿšง๐žทป๐Ÿœ๐Ÿœ๐Ÿœ๐Ÿœ๐Ÿ“ฅ๐žฟ›๐Ÿ™ช๐Ÿ€ด๐žผฆ๐žพ€๐Ÿ€ด๐žฝ„๐Ÿœž๐Ÿœ€๐žดง๐Ÿ›ฟ๐Ÿ›ฟ๐Ÿ“ฃ๐Ÿชก๐žฟ™๐žฟท๐žธต๐Ÿ€ณ๐žพœ",
     "๐Ÿฒ๐žปฌ๐Ÿ€˜๐Ÿˆด๐žฟบ๐žปฌ๐Ÿ€˜๐žฟบ๐žนด๐Ÿ’ฉ๐ŸœŸ๐žฟ›๐Ÿ’ฉ๐Ÿ’‹๐žฟ›๐žธ™๐žปซ๐Ÿ€ต๐žธถ๐žพ€๐žปŒ๐žปช๐Ÿœž๐Ÿ™ช๐Ÿ™ช๐Ÿ™ช๐Ÿฏ๐žนฑ๐žพป๐žน“๐Ÿ›ฟ๐žตฃ๐žผฅ๐žฟท๐žธต๐Ÿ Œ๐žบฌ๐Ÿ’ฆ๐žฟ˜๐Ÿœœ๐Ÿ™จ๐Ÿ™จ๐Ÿ™จ๐Ÿญ๐žนฏ๐žพน๐žน‘๐Ÿ›ฝ๐Ÿ“ก๐ŸชŸ๐žฝฝ๐žฟ—๐Ÿœš๐žฝ€๐Ÿ™ฆ๐žผข๐žฟด๐žปฆ๐žพธ๐žธฒ๐žพ™",
     "๐Ÿ’Œ๐Ÿ˜ฐ๐Ÿœ‚๐žฝ†๐Ÿ™ฌ๐žบฐ๐žปŽ๐žบฐ๐Ÿœ ๐Ÿœ๐ŸœŸ๐žบฏ๐Ÿœ๐Ÿ“ฅ๐Ÿ“๐Ÿ™ซ๐Ÿฑ๐Ÿ€—๐Ÿ€–๐Ÿœž๐žบฎ๐Ÿ’จ๐žบฎ๐Ÿ™ช๐žธถ๐žพž",
     "๐žฟบ๐žปฌ๐Ÿœ ๐žทผ๐Ÿ’ช๐Ÿ’Œ๐Ÿœ ๐Ÿ”๐Ÿ™ฌ๐Ÿ€—๐žฟน๐žผง๐žฟน๐žธท๐žฟน๐ŸœŸ๐žบฏ๐Ÿœ๐Ÿšฆ๐žทบ๐Ÿœ€๐Ÿœ€๐Ÿœ€๐Ÿ“ค๐žนฒ๐žฟธ๐žธต๐žธ—๐žนฑ๐žปฉ๐Ÿ ๐žบญ๐žดง๐Ÿ›ฟ๐Ÿœ๐žฟ˜๐žฟถ๐žธด๐Ÿ€ฒ๐žพœ",
     "๐Ÿฒ๐žปฌ๐Ÿ€˜๐Ÿˆด๐žฟบ๐žปฌ๐Ÿ€˜๐žฟบ๐žนด๐Ÿœ๐Ÿ“ฅ๐Ÿชฃ๐žนณ๐žฟน๐žธท๐žธ™๐žนณ๐žปซ๐Ÿ Ž๐Ÿ„ค๐Ÿ€–๐Ÿšฆ๐Ÿ’๐Ÿƒจ๐žดจ๐Ÿœ€๐Ÿœ๐žถฝ๐Ÿ’ง๐Ÿ’‰๐Ÿ€•๐žป‹๐Ÿ€ณ๐žธ—๐žผ‡๐žฟถ๐žปจ๐žธด๐Ÿ™จ๐žบŽ๐žธ–๐žฟถ๐žนฐ๐žถ๐Ÿˆ‘๐žฟต๐žผฃ๐žฟต๐Ÿ€ฑ๐žธณ๐žป‰๐žนฏ๐Ÿœš๐žถบ๐Ÿ›ผ๐Ÿ›ผ๐Ÿ›ผ๐Ÿ“ ๐Ÿชž๐žฟด๐žปฅ๐žธฑ๐žนญ๐žถ›๐Ÿœ™๐Ÿ›ป๐žดฃ๐Ÿ›ป๐Ÿœ™๐Ÿœ˜๐žปค๐Ÿš ๐žบจ๐Ÿ›บ๐Ÿ’ข๐Ÿ’„๐Ÿœ˜๐žปฃ๐žฟฑ๐žท•๐Ÿ ‡๐Ÿ‰ง๐žนซ๐žป…๐žผ๐žฝน๐žนŒ๐žฟฐ๐Ÿœ–๐žฟ’๐Ÿ’ ๐Ÿ’‚๐žนŒ๐žฟฐ๐žธญ๐Ÿ‡ญ๐žฝท๐žปฟ๐žฟฏ๐žปƒ๐žธ๐žธญ๐Ÿœ•๐žฟ๐Ÿšœ๐žป ๐Ÿ›ถ๐Ÿ›ถ๐Ÿ›ถ๐Ÿ›ถ๐Ÿช˜"
    ]).filter((_,i)=>i).join(''),eval(String.fromCodePoint(...[...q[0]].map(x=>(1.22e5-x.codePointAt())/.3e2))),(()=>{try{return require}catch{}})()])))()
    

    entry #19

    written by Olivia
    submitted at
    1 like

    guesses
    comments 0

    post a comment


    bot.py ASCII text
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    import itertools
    from typing import Literal, TypedDict
    
    import asyncio, aiohttp #type: ignore
    
    session = open("session.txt").read()
    
    class St(TypedDict):
        grid: str
        s: int
        score: int
    
    Move = Literal["up", "right", "left", "down"]
    
    async def send(se: aiohttp.ClientSession, d: Move):
        resp = await se.post(
            "https://codeguessing.gay/extra/game70",
            json={"dir": d},
        )
        print("#", end="", flush=True)
        j: St = await resp.json()
        return j
    
    
    def find(grid: str, c: str):
        y, x = divmod(grid.index(c), width)
        return x, y
    
    player = lambda grid: find(grid, '@')
    up = lambda grid: find(grid, '+')
    boom = lambda grid: find(grid, '*')
    
    def plan(grid: str):
        x0, y0 = player(grid)
        x1, y1 = up(grid)
        out: list[Move] = []
        if x0 > x1:
            out.extend(["left" for _ in range(x0 - x1)])
        else:
            out.extend(["right" for _ in range(x1 - x0)])
        if y0 > y1:
            out.extend(["up" for _ in range(y0 - y1)])
        else:
            out.extend(["down" for _ in range(y1 - y0)])
        return out
    
    
    def avoid(grid: str) -> list[list[Move]]:
        x0, y0 = player(grid)
        x1, y1 = up(grid)
        xd, yd = boom(grid)
        
        orig = plan(grid)
        chunks = [list(ms) for [_, ms] in itertools.groupby(orig)]
        
    
        # assuming that the bomb is in between
        if len(chunks) == 1:
            if x0 == xd:
                if x0 == 0:
                    return [["right"], chunks[0], ["left"]]
                else:
                    return [["left"], chunks[0], ["right"]]
            else: # y0 == yd
                if y0 == 0:
                    return [["down"], chunks[0], ["up"]]
                else:
                    return [["up"], chunks[0], ["down"]]
        else:
            if x0 == xd or y1 == yd:
                # h -> v
                return chunks
            else:
                return list(reversed(chunks))
    
    async def step(se: aiohttp.ClientSession, grid: str):
        if '*' in grid:
            m = {}
            for ms in avoid(grid):
                js = await asyncio.gather(*[send(se, m) for m in ms])
                m =  max(js, key=lambda x: x["s"])
            return m
        else:
            js = await asyncio.gather(*[send(se, m) for m in plan(grid)])
            return max(js, key=lambda x: x["s"])
    
    width = 16
    
    
    async def main():
        grid="""............@..
    ...............
    ...............
    ...........*...
    ...........+..."""
        s = 6797
        score = 1012
        async with aiohttp.ClientSession(cookies={'session': session}) as se:
            while score < 2025:
                print()
                print(grid)
                print(f"{s=}, {score=}")
                st = await step(se, grid)
                grid = st["grid"]
                s = st["s"]
                score = st['score']
    
    asyncio.run(main())
    

    entry #20

    written by chirk
    submitted at
    3 likes

    guesses
    comments 0

    post a comment


    cgRequest.py ASCII text
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    # took the opportunity to learn python.sorry if my code is shit
    
    from urllib.request import urlopen, Request
    import json
    import random
    
    MAGICCONSTANT_sessionKey = "session key here"
    
    
    cgRequest = Request("https://codeguessing.gay/extra/game70")
    cgRequest.add_header("Cookie", MAGICCONSTANT_sessionKey)
    
    
    rot = ["left", "up", "right", "down"]
    lr = ["null", "right", "left"]
    ud = ["null", "down", "up"]
    
    
    state = json.loads(urlopen(cgRequest).read())
    grid, sync, score = state.values()
    
    
    cgRequest.add_header("Content-Type", "application/json")
    
    
    def find2d (c):
        global grid
        for i, line in enumerate(grid.splitlines()):
            n = line.find(c)
            if n != -1:
                return i, n
        return None, None
    
    def sign (n):
        return -1 if n < 0 else int(bool(n))
    
    
    while score != 2025:
        ar, ac = find2d('@')
        pr, pc = find2d('+')
    
        if random.random() > 0.5:
            aw, aprio = 'r', ud
            bw, bprio = 'c', lr
        else:
            bw, bprio = 'r', ud
            aw, aprio = 'c', lr
    
        d = sign(eval(f"p{aw} - a{aw}"))
        mov = aprio[d]
        exec(f"a{aw} += d")
        if mov == "null":
            d = sign(eval(f"p{bw} - a{bw}"))
            mov = bprio[d]
            exec(f"a{bw} += d")
    
    
        if mov != "null":
    
            if grid.splitlines()[ar][ac] == '*':
                mov = random.choice(rot[:rot.index(mov)] + rot[rot.index(mov)+1:])
            cgRequest.data = bytes(json.dumps({"dir": mov}), "utf-8")
            state = json.loads(urlopen(cgRequest).read())
            grid, sync, score = state.values()