mirror of
https://github.com/gryf/wmtemp.git
synced 2026-02-02 14:15:45 +01:00
initial import of wmtempmon
This commit is contained in:
35
wmtempmon/Makefile
Normal file
35
wmtempmon/Makefile
Normal file
@@ -0,0 +1,35 @@
|
||||
# By RedSeb 1999, Liverbugg 2002
|
||||
|
||||
|
||||
SRC = wmtempmon.c ../wmgeneral/wmgeneral.c ../wmgeneral/misc.c ../wmgeneral/list.c
|
||||
|
||||
EXE = wmtempmon
|
||||
|
||||
OBJ = $(SRC:.c=.o)
|
||||
|
||||
CFLAGS = -Wall -O3
|
||||
|
||||
LIB = -L/usr/X11R6/lib -lXpm -lXext -lX11 -lsensors
|
||||
|
||||
INSTALL = /usr/bin/install
|
||||
|
||||
CC = gcc
|
||||
|
||||
all: $(OBJ)
|
||||
$(CC) -o $(EXE) $(OBJ) $(LIB)
|
||||
strip $(EXE)
|
||||
|
||||
$(OBJ): %.o : %.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
clean:
|
||||
rm -rf $(EXE)
|
||||
rm -rf *.o
|
||||
rm -rf ../wmgeneral/*.o
|
||||
|
||||
install:
|
||||
$(INSTALL) $(EXE) /usr/local/bin/
|
||||
uninstall:
|
||||
rm -rf /usr/local/bin/$(EXE)
|
||||
|
||||
remove: uninstall
|
||||
25
wmtempmon/standards.h
Normal file
25
wmtempmon/standards.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/*****************************************************************************
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/io.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/shm.h>
|
||||
#include <dlfcn.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netdb.h>
|
||||
#include <netinet/in.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
/* Testing Values */
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#define OK 0
|
||||
#define ERROR -1
|
||||
134
wmtempmon/wmtempmon.c
Normal file
134
wmtempmon/wmtempmon.c
Normal file
@@ -0,0 +1,134 @@
|
||||
/*
|
||||
* wmtempmon: a sensor monitor for WindowMaker. this little app is mainly based
|
||||
* on wmsensormon and other simple dockapps.
|
||||
*
|
||||
* version = 0.1
|
||||
* date: Fri Oct 31 20:41:14 CET 2008 @861 /Internet Time/
|
||||
* author: Roman 'gryf' Dobosz
|
||||
* requirements: configured lm_sensors and sensor program, nvidia-settings, cut,
|
||||
* grep.
|
||||
* licence: gpl
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include "standards.h"
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/xpm.h>
|
||||
#include <X11/extensions/shape.h>
|
||||
#include <string.h>
|
||||
#include "../wmgeneral/wmgeneral.h"
|
||||
#include "../wmgeneral/misc.h"
|
||||
#include "wmtempmon_master2.xpm"
|
||||
#include "wmtempmon_mask.xbm"
|
||||
|
||||
#define MAXSTRLEN 8
|
||||
#define TEMP 40
|
||||
#define TEMP_OVER 47
|
||||
#define GPU_T 70
|
||||
#define GPU_T_OVER 85
|
||||
|
||||
void display_values(int, int, int);
|
||||
int get_temp(int core_number);
|
||||
int get_offset(int temp, int cpu);
|
||||
|
||||
int main(int argc, char **argv){
|
||||
int temp1=0, temp2=0, temp3=0;
|
||||
/* offset is one of 0 (normal), 7 (alert), 14 (warning) */
|
||||
int offset1=0, offset2=0, offset3=0;
|
||||
int counter = 0;
|
||||
|
||||
openXwindow(argc, argv, wmtempmon_master2_xpm, wmtempmon_mask_bits, wmtempmon_mask_width, wmtempmon_mask_height);
|
||||
|
||||
while(TRUE){
|
||||
if(counter==0){
|
||||
temp1 = get_temp(0);
|
||||
offset1 = get_offset(temp1, 1);
|
||||
temp2 = get_temp(1);
|
||||
offset2 = get_offset(temp2, 1);
|
||||
temp3 = get_temp(2);
|
||||
offset3 = get_offset(temp3, 0);
|
||||
counter = 200;
|
||||
}
|
||||
|
||||
// core 1
|
||||
copyXPMArea(0, 87 + offset1, 23, 7, 4, 7); // LCD: "CPU"
|
||||
copyXPMArea(69, 87 + offset1, 5, 7, 22, 7); // LCD: number of cpu
|
||||
copyXPMArea(66, 65 + offset1, 9, 7, 51, 7); // LCD: "°C"
|
||||
display_values(temp1, 0, offset1);
|
||||
|
||||
// core 2
|
||||
copyXPMArea(0, 87 + offset2, 23, 7, 4, 21);
|
||||
copyXPMArea(75, 87 + offset2, 5, 7, 22, 21);
|
||||
copyXPMArea(66, 65 + offset2, 9, 7, 51, 21);
|
||||
display_values(temp2, 14, offset2);
|
||||
|
||||
// gpu
|
||||
copyXPMArea(23, 87 + offset3, 23, 7, 4, 35);
|
||||
copyXPMArea(66, 65 + offset3, 9, 7, 51, 35);
|
||||
display_values(temp3, 28, offset3);
|
||||
RedrawWindow();
|
||||
counter--;
|
||||
usleep(5000);
|
||||
}
|
||||
}
|
||||
|
||||
int get_offset(int temp, int cpu){
|
||||
int alt, wrn;
|
||||
if(cpu == 1){
|
||||
wrn = TEMP;
|
||||
alt = TEMP_OVER;
|
||||
}else{
|
||||
wrn = GPU_T;
|
||||
alt = GPU_T_OVER;
|
||||
}
|
||||
if(temp >= alt){
|
||||
return 7; // Alert
|
||||
}else if(temp >= wrn){
|
||||
return 14; // Warning
|
||||
}else{
|
||||
return 0; // Normal
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void display_values(int temp, int offset, int offset2){
|
||||
char text[5], num1, num2, num3, num4;
|
||||
|
||||
sprintf(text, "%03d", temp);
|
||||
num1 = (text[0] - '0');
|
||||
num2 = (text[1] - '0');
|
||||
num3 = (text[2] - '0');
|
||||
num4 = (text[3] - '0');
|
||||
if(num1)
|
||||
copyXPMArea(5 * num1, 65 + offset2, 5, 7, 31, 7 + offset);
|
||||
else
|
||||
copyXPMArea(60, 65 + offset2, 5, 7, 31, 7 + offset);
|
||||
copyXPMArea(5 * num2, 65 + offset2, 5, 7, 38, 7 + offset);
|
||||
copyXPMArea(5 * num3, 65 + offset2, 5, 7, 45, 7 + offset);
|
||||
copyXPMArea(5 * num4, 65 + offset2, 5, 7, 51, 7 + offset);
|
||||
}
|
||||
|
||||
int get_temp(int core_number){
|
||||
// Core temperature. argument is core number. core no.2 is GPU
|
||||
FILE *file;
|
||||
int core=0;
|
||||
char cmd[] = " ";
|
||||
if(core_number==2){
|
||||
sprintf(cmd, "echo `nvidia-settings -q 'GPUCoreTemp'|grep Attribute|cut -d ':' -f 3|cut -d '.' -f 1`");
|
||||
}else{
|
||||
sprintf(cmd, "echo `sensors |grep 'Core %d'|cut -d ':' -f 2|cut -d '.' -f 1`", core_number);
|
||||
}
|
||||
file = popen(cmd, "r");
|
||||
while (! feof(file)) {
|
||||
char line[MAXSTRLEN + 1];
|
||||
bzero(line, MAXSTRLEN + 1);
|
||||
fgets(line, MAXSTRLEN, file);
|
||||
if(line[0] != 0){
|
||||
sscanf(line, "%d", &core);
|
||||
}
|
||||
}
|
||||
pclose(file);
|
||||
|
||||
return core;
|
||||
}
|
||||
46
wmtempmon/wmtempmon_mask.xbm
Normal file
46
wmtempmon/wmtempmon_mask.xbm
Normal file
@@ -0,0 +1,46 @@
|
||||
#define wmtempmon_mask_width 64
|
||||
#define wmtempmon_mask_height 64
|
||||
static unsigned char wmtempmon_mask_bits[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
206
wmtempmon/wmtempmon_master2.xpm
Normal file
206
wmtempmon/wmtempmon_master2.xpm
Normal file
@@ -0,0 +1,206 @@
|
||||
/* XPM */
|
||||
static char * wmtempmon_master2_xpm[] = {
|
||||
"93 122 81 1",
|
||||
" c None",
|
||||
". c #0000FF",
|
||||
"+ c #000000",
|
||||
"@ c #202020",
|
||||
"# c #C7C7C7",
|
||||
"$ c #007D71",
|
||||
"% c #20B6AE",
|
||||
"& c #004941",
|
||||
"* c #188A86",
|
||||
"= c #20B2AE",
|
||||
"- c #107D79",
|
||||
"; c #0A3F00",
|
||||
"> c #660000",
|
||||
", c #177700",
|
||||
"' c #27B500",
|
||||
") c #A50000",
|
||||
"! c #C90000",
|
||||
"~ c #3FFF00",
|
||||
"{ c #FF0000",
|
||||
"] c #E00000",
|
||||
"^ c #440000",
|
||||
"/ c #A80000",
|
||||
"( c #FF8200",
|
||||
"_ c #542A00",
|
||||
": c #A85500",
|
||||
"< c #00FF0F",
|
||||
"[ c #04FA0F",
|
||||
"} c #09F50F",
|
||||
"| c #0DF10F",
|
||||
"1 c #12EC0E",
|
||||
"2 c #16E80E",
|
||||
"3 c #1BE30E",
|
||||
"4 c #1FDF0D",
|
||||
"5 c #24DA0D",
|
||||
"6 c #28D60D",
|
||||
"7 c #2DD10D",
|
||||
"8 c #32CC0C",
|
||||
"9 c #36C80C",
|
||||
"0 c #3BC30C",
|
||||
"a c #3FBF0B",
|
||||
"b c #44BA0B",
|
||||
"c c #48B60B",
|
||||
"d c #4DB10B",
|
||||
"e c #51AD0A",
|
||||
"f c #56A80A",
|
||||
"g c #5BA30A",
|
||||
"h c #5F9F09",
|
||||
"i c #649A09",
|
||||
"j c #689609",
|
||||
"k c #6D9109",
|
||||
"l c #718D08",
|
||||
"m c #768808",
|
||||
"n c #7A8408",
|
||||
"o c #7F7F07",
|
||||
"p c #847A07",
|
||||
"q c #887607",
|
||||
"r c #8D7107",
|
||||
"s c #916D06",
|
||||
"t c #966806",
|
||||
"u c #9A6406",
|
||||
"v c #9F5F05",
|
||||
"w c #A35B05",
|
||||
"x c #A85605",
|
||||
"y c #AD5105",
|
||||
"z c #B14D04",
|
||||
"A c #B64804",
|
||||
"B c #BA4404",
|
||||
"C c #BF3F03",
|
||||
"D c #C33B03",
|
||||
"E c #C83603",
|
||||
"F c #CC3203",
|
||||
"G c #D12D02",
|
||||
"H c #D62802",
|
||||
"I c #DA2402",
|
||||
"J c #DF1F01",
|
||||
"K c #E31B01",
|
||||
"L c #E81601",
|
||||
"M c #EC1201",
|
||||
"N c #F10D00",
|
||||
"O c #F50900",
|
||||
"P c #FA0400",
|
||||
"................................................................+............................",
|
||||
"................................................................+............................",
|
||||
"..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@$%%%$@$%%%$@$&&&$@@&&&$@@@@@@&&&@@@@&&&@@@@&&&@@*=@$%$@@#..+............................",
|
||||
"..+@@%@@@&@%@@@%@%@@@%@&@@@%@@@@@&@@@&@@&@@@&@@&@@@&@-=@%@&@@#..+............................",
|
||||
"..+@@%@@@&@%@@@%@%@@@%@&@@@%@@@@@&@@@&@@&@@@&@@&@@@&@@@@%@&@@#..+............................",
|
||||
"..+@@$&&&@@$%%%$@$&&&$@@&&&$@@@@@@&&&@@@@&&&@@@@&&&@@@@@$&@@@#..+............................",
|
||||
"..+@@%@@@&@%@@@&@%@@@%@&@@@%@@@@@&@@@&@@&@@@&@@&@@@&@@@@%@&@@#..+............................",
|
||||
"..+@@%@@@&@%@@@&@%@@@%@&@@@%@@@@@&@@@&@@&@@@&@@&@@@&@@@@%@&@@#..+............................",
|
||||
"..+@@$%%%$@$&&&@@$%%%$@@&&&$@@@@@@&&&@@@@&&&@@@@&&&@@@@@$%$@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..############################################################..+............................",
|
||||
"................................................................+............................",
|
||||
"................................................................+............................",
|
||||
"..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@$%%%$@$%%%$@$&&&$@$%%%$@@@@@@&&&@@@@&&&@@@@&&&@@*=@$%$@@#..+............................",
|
||||
"..+@@%@@@&@%@@@%@%@@@%@&@@@%@@@@@&@@@&@@&@@@&@@&@@@&@-=@%@&@@#..+............................",
|
||||
"..+@@%@@@&@%@@@%@%@@@%@&@@@%@@@@@&@@@&@@&@@@&@@&@@@&@@@@%@&@@#..+............................",
|
||||
"..+@@$&&&@@$%%%$@$&&&$@$%%%$@@@@@@&&&@@@@&&&@@@@&&&@@@@@$&@@@#..+............................",
|
||||
"..+@@%@@@&@%@@@&@%@@@%@%@@@&@@@@@&@@@&@@&@@@&@@&@@@&@@@@%@&@@#..+............................",
|
||||
"..+@@%@@@&@%@@@&@%@@@%@%@@@&@@@@@&@@@&@@&@@@&@@&@@@&@@@@%@&@@#..+............................",
|
||||
"..+@@$%%%$@$&&&@@$%%%$@$%%%$@@@@@@&&&@@@@&&&@@@@&&&@@@@@$%$@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..############################################################..+............................",
|
||||
"................................................................+............................",
|
||||
"................................................................+............................",
|
||||
"..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@$%%%$@$%%%$@$&&&$@@&&&@@@@@@@&&&@@@@&&&@@@@&&&@@*=@$%$@@#..+............................",
|
||||
"..+@@%@@@&@%@@@%@%@@@%@&@@@&@@@@@&@@@&@@&@@@&@@&@@@&@-=@%@&@@#..+............................",
|
||||
"..+@@%@@@&@%@@@%@%@@@%@&@@@&@@@@@&@@@&@@&@@@&@@&@@@&@@@@%@&@@#..+............................",
|
||||
"..+@@$&&&$@$%%%$@$&&&$@@&&&@@@@@@@&&&@@@@&&&@@@@&&&@@@@@$&@@@#..+............................",
|
||||
"..+@@%@@@%@%@@@&@%@@@%@&@@@&@@@@@&@@@&@@&@@@&@@&@@@&@@@@%@&@@#..+............................",
|
||||
"..+@@%@@@%@%@@@&@%@@@%@&@@@&@@@@@&@@@&@@&@@@&@@&@@@&@@@@%@&@@#..+............................",
|
||||
"..+@@$%%%$@$&&&@@$%%%$@@&&&@@@@@@@&&&@@@@&&&@@@@&&&@@@@@$%$@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..############################################################..+............................",
|
||||
"................................................................+............................",
|
||||
"................................................................+............................",
|
||||
"..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@@&&&@@@&&&@@@&&&@@@&&&@@@@@@@&&&@@@@&&&@@@@&&&@@@@&&&@@@#..+............................",
|
||||
"..+@@&@@@&@&@@@&@&@@@&@&@@@&@@@@@&@@@&@@&@@@&@@&@@@&@@&@@@&@@#..+............................",
|
||||
"..+@@&@@@&@&@@@&@&@@@&@&@@@&@@@@@&@@@&@@&@@@&@@&@@@&@@&@@@&@@#..+............................",
|
||||
"..+@@@&&&@@@&&&@@@&&&@@@&&&@@@@@@@&&&@@@@&&&@@@@&&&@@@@&&&@@@#..+............................",
|
||||
"..+@@&@@@&@&@@@&@&@@@&@&@@@&@@@@@&@@@&@@&@@@&@@&@@@&@@&@@@&@@#..+............................",
|
||||
"..+@@&@@@&@&@@@&@&@@@&@&@@@&@@@@@&@@@&@@&@@@&@@&@@@&@@&@@@&@@#..+............................",
|
||||
"..+@@@&&&@@@&&&@@@&&&@@@&&&@@@@@@@&&&@@@@&&&@@@@&&&@@@@&&&@@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..############################################################..+............................",
|
||||
"................................................................+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#..+............................",
|
||||
"..############################################################..+............................",
|
||||
"................................................................+............................",
|
||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;;;@@>>>@@@@@@.@@@@@@@@@@@@@@@@@@@@@@@@@..",
|
||||
"@===@@&&&**===**===*=&&&=*===**===**===**===**===*;,',;>)!)>@&&&@.*=@$%$@*=@$%$@$&&&$@@===@..",
|
||||
"=@@@=&@@@=&@@@=&@@@==@@@==@@@&=@@@&&@@@==@@@==@@@=;'~';>!{!>&@@@&.-=@%@&@-=@%@&@%@@@%@=@@@=..",
|
||||
"=@@@=&@@@=&@@@=&@@@==@@@==@@@&=@@@&&@@@==@@@==@@@=;,',;>)!)>&@@@&.@@@%@&@@@@%@&@%@@@%@=@@@=..",
|
||||
"*&&&*@&&&**===*@===**===*====**===*@&&&**===**===*@;;;@@>>>@@&&&@.@@@$&@@@@@$%$@$&&&$@*&&&*..",
|
||||
"=@@@=&@@@==@@@&&@@@=&@@@=&@@@==@@@=&@@@==@@@=&@@@=..........&@@@&.@@@%@&@@@@%@&@%@@@%@=@@@=..",
|
||||
"=@@@=&@@@==@@@&&@@@=&@@@=&@@@==@@@=&@@@==@@@=&@@@=.@=.@@....&@@@&.@@@%@&@@@@%@&@$%@%$@=@@@=..",
|
||||
"@===@@&&&**===**===*@&&&**===**===*@&&&=*===**===*.*=.@@....@&&&@.@@@$%$@@@@@&@@@$%$@@@===@..",
|
||||
"@]]]@@^^^//]]]//]]]/]^^^]/]]]//]]]//]]]//]]]//]]]/..........@^^^@./]@/]/@/]@/]/@.............",
|
||||
"]@@@]^@@@]^@@@]^@@@]]@@@]]@@@^]@@@^^@@@]]@@@]]@@@]..........^@@@^./]@]@^@/]@]@^@.............",
|
||||
"]@@@]^@@@]^@@@]^@@@]]@@@]]@@@^]@@@^^@@@]]@@@]]@@@]..........^@@@^.@@@]@^@@@@]@^@.............",
|
||||
"/^^^/@^^^//]]]/@]]]//]]]/]]]]//]]]/@^^^//]]]//]]]/..........@^^^@.@@@/^@@@@@/]/@.............",
|
||||
"]@@@]^@@@]]@@@^^@@@]^@@@]^@@@]]@@@]^@@@]]@@@]^@@@]..........^@@@^.@@@]@^@@@@]@^@.............",
|
||||
"]@@@]^@@@]]@@@^^@@@]^@@@]^@@@]]@@@]^@@@]]@@@]^@@@].@].@@....^@@@^.@@@]@^@@@@]@^@.............",
|
||||
"@]]]@@^^^//]]]//]]]/@^^^//]]]//]]]/@^^^]/]]]//]]]/./].@@....@^^^@.@@@/]/@@@@@^@@.............",
|
||||
"@(((@@___::(((::(((:(___(:(((::(((::(((::(((::(((:..........@___@.:(@:(:@:(@:(:@.............",
|
||||
"(@@@(_@@@(_@@@(_@@@((@@@((@@@_(@@@__@@@((@@@((@@@(.........._@@@_.:(@(@_@:(@(@_@.............",
|
||||
"(@@@(_@@@(_@@@(_@@@((@@@((@@@_(@@@__@@@((@@@((@@@(.........._@@@_.@@@(@_@@@@(@_@.............",
|
||||
":___:@___::(((:@(((::(((:((((::(((:@___::(((::(((:..........@___@.@@@:_@@@@@:(:@.............",
|
||||
"(@@@(_@@@((@@@__@@@(_@@@(_@@@((@@@(_@@@((@@@(_@@@(.........._@@@_.@@@(@_@@@@(@_@.............",
|
||||
"(@@@(_@@@((@@@__@@@(_@@@(_@@@((@@@(_@@@((@@@(_@@@(.@(.@@...._@@@_.@@@(@_@@@@(@_@.............",
|
||||
"@(((@@___::(((::(((:@___::(((::(((:@___(:(((::(((:.:(.@@....@___@.@@@:(:@@@@@_@@.............",
|
||||
".............................................................................................",
|
||||
"$%%%$@$%%%$@$&&&$@@&&&@$%%%$@$%%%$@$&&&$@@&&&@$%%%$@@%%%@@$&&&$@@&&&@@&&&*@*===*.............",
|
||||
"%@@@&@%@@@%@%@@@%@&@@@&%@@@&@%@@@%@%@@@%@&@@@&%@@@&@%@@@%@%@@@%@&@@@&&@@@=@&@@@=.............",
|
||||
"%@@@&@%@@@%@%@@@%@&@@@&%@@@&@%@@@%@%@@@%@&@@@&%@@@&@%@@@%@%%@@%@&@@@&&@@@=@&@@@=.............",
|
||||
"$&&&@@$%%%$@$&&&$@@&&&@$&&&$@$%%%$@$&&&$@@&&&@$%%%@@$%%%$@$&%&$@@&&&@@&&&*@*===*.............",
|
||||
"%@@@&@%@@@&@%@@@%@&@@@&%@@@%@%@@@&@%@@@%@&@@@&%@@@&@%@@@%@%@@%%@&@@@&&@@@=@=@@@&.............",
|
||||
"%@@@&@%@@@&@%@@@%@&@@@&%@@@%@%@@@&@%@@@%@&@@@&%@@@&@%@@@%@%@@@%@&@@@&&@@@=@=@@@&.............",
|
||||
"$%%%$@$&&&@@$%%%$@@&&&@$%%%$@$&&&@@$%%%$@@&&&@$&&&@@$&&&$@$&&&$@@&&&@@&&&*@*===*.............",
|
||||
"/]]]/@/]]]/@/^^^/@@^^^@/]]]/@/]]]/@/^^^/@@^^^@/]]]/@@]]]@@/^^^/@@^^^@@^^^/@/]]]/.............",
|
||||
"]@@@^@]@@@]@]@@@]@^@@@^]@@@^@]@@@]@]@@@]@^@@@^]@@@^@]@@@]@]@@@]@^@@@^^@@@]@^@@@].............",
|
||||
"]@@@^@]@@@]@]@@@]@^@@@^]@@@^@]@@@]@]@@@]@^@@@^]@@@^@]@@@]@]]@@]@^@@@^^@@@]@^@@@].............",
|
||||
"/^^^@@/]]]/@/^^^/@@^^^@/^^^/@/]]]/@/^^^/@@^^^@/]]]@@/]]]/@/^]^/@@^^^@@^^^/@/]]]/.............",
|
||||
"]@@@^@]@@@^@]@@@]@^@@@^]@@@]@]@@@^@]@@@]@^@@@^]@@@^@]@@@]@]@@]]@^@@@^^@@@]@]@@@^.............",
|
||||
"]@@@^@]@@@^@]@@@]@^@@@^]@@@]@]@@@^@]@@@]@^@@@^]@@@^@]@@@]@]@@@]@^@@@^^@@@]@]@@@^.............",
|
||||
"/]]]/@/^^^@@/]]]/@@^^^@/]]]/@/^^^@@/]]]/@@^^^@/^^^@@/^^^/@/^^^/@@^^^@@^^^/@/]]]/.............",
|
||||
":(((:@:(((:@:___:@@___@:(((:@:(((:@:___:@@___@:(((:@@(((@@:___:@@___@@___:@:(((:.............",
|
||||
"(@@@_@(@@@(@(@@@(@_@@@_(@@@_@(@@@(@(@@@(@_@@@_(@@@_@(@@@(@(@@@(@_@@@__@@@(@_@@@(.............",
|
||||
"(@@@_@(@@@(@(@@@(@_@@@_(@@@_@(@@@(@(@@@(@_@@@_(@@@_@(@@@(@((@@(@_@@@__@@@(@_@@@(.............",
|
||||
":___@@:(((:@:___:@@___@:___:@:(((:@:___:@@___@:(((@@:(((:@:_(_:@@___@@___:@:(((:.............",
|
||||
"(@@@_@(@@@_@(@@@(@_@@@_(@@@(@(@@@_@(@@@(@_@@@_(@@@_@(@@@(@(@@((@_@@@__@@@(@(@@@_.............",
|
||||
"(@@@_@(@@@_@(@@@(@_@@@_(@@@(@(@@@_@(@@@(@_@@@_(@@@_@(@@@(@(@@@(@_@@@__@@@(@(@@@_.............",
|
||||
":(((:@:___@@:(((:@@___@:(((:@:___@@:(((:@@___@:___@@:___:@:___:@@___@@___:@:(((:.............",
|
||||
".............................................................................................",
|
||||
"<<[}|1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP{...................................",
|
||||
"<<[}|1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP{...................................",
|
||||
"<<[}|1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP{...................................",
|
||||
"<<[}|1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP{...................................",
|
||||
"<<[}|1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP{...................................",
|
||||
"<<[}|1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP{...................................",
|
||||
".............................................................................................",
|
||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..................................",
|
||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..................................",
|
||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..................................",
|
||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..................................",
|
||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..................................",
|
||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.................................."};
|
||||
Reference in New Issue
Block a user