fix .gitignore, Makefile and README.md for 2012/omoikane
Replace `spoiler.html.gz` with `spoiler.html`.
This commit is contained in:
1 parent
7d30702cbc
commit
e771db2e5b
5 files changed
+280
-118
No files matched your search
@@ -1 +1,5 @@
|
||||
omoikane
|
||||
data.c
|
||||
key.c
|
||||
nyaruko
|
||||
output.c
|
||||
regenerated.bin
|
||||
+207
-82
@@ -1,121 +1,194 @@
|
||||
#!/usr/bin/env make
|
||||
#
|
||||
# 2012 makefile
|
||||
# IOCCC 2012 winning entry - omoikane
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis
|
||||
# is licensed under:
|
||||
# Regarding individual entries:
|
||||
#
|
||||
# IOCCC winning entry code may not work on your system. Even with standards,
|
||||
# conditions and build environments change, especially when it comes to more
|
||||
# extreme code such you might find in an IOCCC winner. Moreover, what was
|
||||
# allowed and liked in one IOCCC contest may no longer be liked/allowed in
|
||||
# later IOCCC years.
|
||||
#
|
||||
# Corrections on winning author and fixing typos in remarks are VERY WELCOME.
|
||||
#
|
||||
# GitHub pull requests are welcome:
|
||||
#
|
||||
# If you have a patch that might make running an entry work in modern Unix-like
|
||||
# environments, please create a GitHub pull request for the IOCCC judges to
|
||||
# consider.
|
||||
#
|
||||
# Suggestions and corrections regarding Makefiles, winning author information,
|
||||
# fixing typos in remarks, and code patches are welcome via opening a GitHub
|
||||
# issue or better yet, by creating a GitHub pull request for the IOCCC judges
|
||||
# to consider. To form a GitHub issue or GitHub pull, please visit:
|
||||
#
|
||||
# https://github.com/ioccc-src/winner
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under:
|
||||
#
|
||||
# Creative Commons Attribution-ShareAlike 3.0 Unported License.
|
||||
#
|
||||
# See: http://creativecommons.org/licenses/by-sa/3.0/
|
||||
|
||||
|
||||
################
|
||||
# tool locations
|
||||
################
|
||||
#############################
|
||||
# shell used by this Makefile
|
||||
#############################
|
||||
#
|
||||
SHELL= bash
|
||||
CP= cp
|
||||
CPP= cpp
|
||||
GUNZIP= gunzip
|
||||
LD= ld
|
||||
MAKE= make
|
||||
RM= rm
|
||||
SED= sed
|
||||
TAR= tar
|
||||
TRUE= true
|
||||
|
||||
#######################
|
||||
# common tool locations
|
||||
#######################
|
||||
#
|
||||
include ../../var.mk
|
||||
|
||||
# Set X11_LIBDIR to the directory where the X11 library resides
|
||||
#
|
||||
X11_LIBDIR= /usr/X11R6/lib
|
||||
#X11_LIBDIR= /usr/X11R6/lib
|
||||
#X11_LIBDIR= /usr/X11/lib
|
||||
X11_LIBDIR= /opt/X11/lib
|
||||
|
||||
# Set X11_INCLUDEDIR to the directory where the X11 include files reside
|
||||
#
|
||||
X11_INCDIR= /usr/X11R6/include
|
||||
#X11_INCDIR= /usr/X11R6/include
|
||||
#X11_INCDIR= /usr/X11/include
|
||||
X11_INCDIR= /opt/X11/include
|
||||
|
||||
# Compiler warnings
|
||||
# Common C compiler warnings to silence
|
||||
#
|
||||
#CWARN=
|
||||
CWARN= -Wall -W
|
||||
#CWARN= -Wall -W -pedantic
|
||||
#CSILENCE=
|
||||
CSILENCE= -Wno-empty-body
|
||||
|
||||
# compiler standard
|
||||
# Common C compiler warning flags
|
||||
#
|
||||
#CWARN= ${CSILENCE}
|
||||
#CWARN= -Wall ${CSILENCE}
|
||||
#CWARN= -Wall -Wextra ${CSILENCE}
|
||||
CWARN= -Wall -Wextra -pedantic ${CSILENCE}
|
||||
|
||||
# Compiler standard
|
||||
#
|
||||
#CSTD=
|
||||
#CSTD= -ansi
|
||||
CSTD= -std=c99
|
||||
CSTD= -std=gnu11
|
||||
|
||||
# compiler bit architecture
|
||||
# Compiler bit architecture
|
||||
#
|
||||
# Some entries require 32-bitness:
|
||||
# ARCH= -m32
|
||||
#
|
||||
# Some entries require 64-bitess:
|
||||
# Some entries require 64-bitness:
|
||||
# ARCH= -m64
|
||||
#
|
||||
# By default we assume nothing:
|
||||
#
|
||||
ARCH=
|
||||
|
||||
# optimization
|
||||
# Defines that are needed to compile
|
||||
#
|
||||
CDEFINE=
|
||||
#CDEFINE= -DIOCCC
|
||||
|
||||
# Include files that are needed to compile
|
||||
#
|
||||
CINCLUDE=
|
||||
#CINCLUDE= -include stdlib.h
|
||||
#CINCLUDE= -include stdio.h
|
||||
#CINCLUDE= -include stdlib.h -include stdio.h
|
||||
#CINCLUDE= -I ${X11_INCDIR} -I ${X11_INCDIR}/X11
|
||||
#CINCLUDE= `${SDL2_CONFIG} --cflags`
|
||||
|
||||
# Optimization
|
||||
#
|
||||
# Most compiles will safely use -O2. Some can use only -O1 or -O.
|
||||
# A few compilers have broken optimizers or this entry make break
|
||||
# under those buggy optimizers and thus you may not want anything.
|
||||
# Reasonable compilers will allow for -O3.
|
||||
#
|
||||
#OPT=
|
||||
#OPT= -O
|
||||
#OPT= -O1
|
||||
OPT= -O2
|
||||
#OPT= -O3
|
||||
#OPT= -O2
|
||||
OPT= -O3
|
||||
|
||||
# Default flags for ANSI C compilation
|
||||
#
|
||||
CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT}
|
||||
|
||||
# Libraries needed to build
|
||||
#
|
||||
LIBS=
|
||||
#LIBS= -lm
|
||||
#LIBS= -L ${X11_LIBDIR} -lX11
|
||||
#LIBS= `${SDL2_CONFIG} --libs`
|
||||
|
||||
# default flags for ANSI C compilation
|
||||
#
|
||||
CFLAGS= ${CWARN} ${CSTD} ${ARCH} ${OPT} ${LIBS}
|
||||
|
||||
# ANSI compiler
|
||||
#
|
||||
# Set CC to the name of your ANSI compiler.
|
||||
#
|
||||
# Some entries seem to need gcc. If you have gcc, set
|
||||
# both CC and MAY_NEED_GCC to gcc.
|
||||
#
|
||||
# If you do not have gcc, set CC to the name of your ANSI compiler, and
|
||||
# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just :
|
||||
# to disable such programs.
|
||||
# C compiler to use
|
||||
#
|
||||
CC= cc
|
||||
#CC=clang
|
||||
MAY_NEED_GCC= gcc
|
||||
#CC=gcc
|
||||
|
||||
# Compiler add-ons or replacements for clang only
|
||||
#
|
||||
ifeq ($(CC),clang)
|
||||
#
|
||||
CSILENCE+= -Wno-implicit-int-conversion -Wno-missing-prototypes \
|
||||
-Wno-missing-variable-declarations -Wno-poison-system-directories \
|
||||
-Wno-shorten-64-to-32 -Wno-sign-conversion -Wno-strict-prototypes
|
||||
#
|
||||
CWARN+= -Weverything
|
||||
#
|
||||
endif
|
||||
|
||||
# Specific add-ons or replacements for gcc only
|
||||
#
|
||||
ifeq ($(CC),gcc)
|
||||
#
|
||||
#CSILENCE+=
|
||||
#
|
||||
#CWARN+=
|
||||
#
|
||||
endif
|
||||
|
||||
|
||||
##############################
|
||||
# Special flags for this entry
|
||||
##############################
|
||||
#
|
||||
ENTRY= nyaruko
|
||||
DATA= spoiler.html.gz
|
||||
ENTRY= omoikane
|
||||
PROG= nyaruko
|
||||
#
|
||||
OBJ= ${PROG}.o
|
||||
DATA=
|
||||
TARGET= ${PROG}
|
||||
#
|
||||
ALT_OBJ=
|
||||
ALT_ENTRY=
|
||||
ALT_TARGET=
|
||||
|
||||
|
||||
#################
|
||||
# build the entry
|
||||
#################
|
||||
#
|
||||
all: ${ENTRY} ${DATA}
|
||||
all: data ${TARGET}
|
||||
@${TRUE}
|
||||
|
||||
${ENTRY}: ${ENTRY}.c
|
||||
${CC} ${CFLAGS} $< -o $@
|
||||
.PHONY: all alt data everything clean clobber install \
|
||||
love haste waste maker easter_egg sandwich \
|
||||
supernova deep_magic magic charon pluto
|
||||
|
||||
${PROG}: ${PROG}.c
|
||||
${CC} ${CFLAGS} $< -o $@ ${LIBS}
|
||||
|
||||
# alternative executable
|
||||
#
|
||||
alt: ${ALT_ENTRY}
|
||||
alt: data ${ALT_TARGET}
|
||||
@${TRUE}
|
||||
|
||||
# data files
|
||||
@@ -123,33 +196,52 @@ alt: ${ALT_ENTRY}
|
||||
data: ${DATA}
|
||||
@${TRUE}
|
||||
|
||||
# both all and alt
|
||||
#
|
||||
everything: all alt
|
||||
|
||||
|
||||
###############
|
||||
# utility rules
|
||||
###############
|
||||
#
|
||||
everything: all alt
|
||||
|
||||
clean:
|
||||
${RM} -f ${ENTRY}.o ${ALT_OBJ}
|
||||
${RM} -f ${OBJ} ${ALT_OBJ}
|
||||
@-if [ -f indent.c ]; then \
|
||||
echo ${RM} -f indent.c; \
|
||||
${RM} -f indent.c; \
|
||||
fi
|
||||
|
||||
clobber: clean
|
||||
${RM} -f ${ENTRY} ${ALT_ENTRY}
|
||||
|
||||
nuke: clobber
|
||||
@${TRUE}
|
||||
|
||||
dist_clean: nuke
|
||||
@${TRUE}
|
||||
${RM} -f ${TARGET} ${ALT_TARGET}
|
||||
${RM} -f output.c key.c data.c regenerated.bin
|
||||
@-if [ -e sandwich ]; then \
|
||||
${RM} -f sandwich; \
|
||||
echo 'ate sandwich'; \
|
||||
fi
|
||||
|
||||
install:
|
||||
@echo "Surely you're joking Mr. Feynman!"
|
||||
@echo "Dr. Spock says that is not logical!"
|
||||
@${TRUE}
|
||||
|
||||
# backwards compatibility
|
||||
# you may be able to misunderstand the source by reading indent.c
|
||||
#
|
||||
build: all
|
||||
@${TRUE}
|
||||
indent.c: ${PROG}.c
|
||||
@if which "${GINDENT}" >/dev/null 2>&1; then \
|
||||
echo ${RM} -f $@; \
|
||||
${RM} -f $@; \
|
||||
echo "${GINDENT} < $< > $@"; \
|
||||
${GINDENT} < $< > $@; \
|
||||
elif which "${INDENT}" >/dev/null 2>&1; then \
|
||||
echo ${RM} -f $@; \
|
||||
${RM} -f $@; \
|
||||
echo "${INDENT} < $< > $@"; \
|
||||
${INDENT} < $< > $@; \
|
||||
else \
|
||||
echo "no intent tool found, ident $< yourself, sorry"; \
|
||||
echo "exit 1"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
|
||||
##################
|
||||
@@ -165,39 +257,72 @@ haste:
|
||||
@${TRUE}
|
||||
|
||||
waste:
|
||||
@echo 'waste'
|
||||
@echo 'haste'
|
||||
@${TRUE}
|
||||
|
||||
maker:
|
||||
@echo 'Participate in a maker faire'
|
||||
@${TRUE}
|
||||
|
||||
easter_egg:
|
||||
@echo you expected to mis-understand this $${RANDOM} magic
|
||||
@echo chongo '<was here>' "/\\oo/\\"
|
||||
@echo Readers shall be disallowed from not being unable to partly misunderstand this partocular final echo.
|
||||
@echo "you expected to often misunderstand this $${RANDOM} magic"
|
||||
@echo "chongo '<was here>' /\\oo/\\"
|
||||
@echo "Eggy"
|
||||
|
||||
# Understand the history of "I Am the Walrus" and
|
||||
# and in particular John Lennon's remarks on that
|
||||
# song and you might be confused about these next
|
||||
# rules in a different way. :-)
|
||||
#
|
||||
supernova: nuke
|
||||
@-if [ -r .code_anal ]; then \
|
||||
${RM} -f .code_anal_v3; \
|
||||
sandwich: easter_egg
|
||||
@if [ `id -u` -eq 0 ]; then \
|
||||
echo 'Okay.'; \
|
||||
echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \
|
||||
else \
|
||||
echo "You are not expected to understand this"; \
|
||||
echo 'What? Make it yourself.'; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
# Understand the history of the Homebrew Computer Club
|
||||
# as well as the West Coast Computer Faire and
|
||||
# you might be confused different. :-)
|
||||
#
|
||||
supernova: sandwich
|
||||
@-if [ -r .code_anal ]; then \
|
||||
${RM} -f .code_anal_v6; \
|
||||
else \
|
||||
echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \
|
||||
fi
|
||||
@echo "A $@ helps ${MAKE} the elements that help form planets"
|
||||
@${TRUE}
|
||||
|
||||
deep_magic:
|
||||
deep_magic: supernova
|
||||
@-if [ -r .code_anal ]; then \
|
||||
ccode_analysis --deep_magic 1c2c85c7a02c55d1add91967eca491d53c101dc1 --FNV1a_hash 256-bit "${ENTRY}"; \
|
||||
ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \
|
||||
--FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \
|
||||
else \
|
||||
echo "Understand different"; \
|
||||
echo "Wrong! Do it again!"; \
|
||||
sleep 2; \
|
||||
echo "Wrong! Do it again!"; \
|
||||
sleep 2; \
|
||||
echo "Wrong! Do it again!"; \
|
||||
fi
|
||||
@${TRUE}
|
||||
|
||||
magic: deep_magic
|
||||
@-if [ -r .code_anal ]; then \
|
||||
ccode_analysis --mode 21701 --level 23209 --FNV1a_hash 256-bit "${ENTRY}"; \
|
||||
ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \
|
||||
else \
|
||||
echo "These aren't the droids you're looking for Mr. Spock!"; \
|
||||
echo "If you don't eat yer meat, you can't have any pudding!"; \
|
||||
echo "How can you have any pudding if you don't eat yer meat?!"; \
|
||||
fi
|
||||
@${TRUE}
|
||||
|
||||
# The IOCCC resident astronomer states
|
||||
#
|
||||
charon: magic
|
||||
@echo "$@ is a dwarf planet"
|
||||
@echo "dwarf is a type of planet"
|
||||
@echo "therefore IAU, $@ is a planet"
|
||||
|
||||
pluto: charon
|
||||
${MAKE} charon
|
||||
@echo "$@ is a dwarf planet"
|
||||
@echo "dwarf is a type of planet"
|
||||
@echo "therefore, $@ is a planet"
|
||||
@echo "having lots of planets is good feature because supernovae can help ${MAKE} a lot of them"
|
||||
+34
-35
@@ -1,44 +1,48 @@
|
||||
# Most surreptitious
|
||||
|
||||
Don Yang
|
||||
<omoikane@uguu.org>
|
||||
<http://uguu.org/>
|
||||
Don Yang
|
||||
<omoikane@uguu.org>
|
||||
<http://uguu.org/>
|
||||
|
||||
# To build:
|
||||
|
||||
## Judges' comments:
|
||||
### To build:
|
||||
|
||||
make nyaruko
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
### To run:
|
||||
|
||||
./nyaruko [seed.txt] < original.bin > output.c
|
||||
bash output.c > key.c
|
||||
perl output.c > data.c
|
||||
```sh
|
||||
./nyaruko [seed.txt] < original.bin > output.c
|
||||
bash output.c > key.c
|
||||
perl output.c > data.c
|
||||
|
||||
cat key.c data.c > output.c
|
||||
cat key.c data.c > output.c
|
||||
|
||||
gcc output.c -o output
|
||||
./output > regenerated.bin
|
||||
gcc output.c -o output
|
||||
./output > regenerated.bin
|
||||
```
|
||||
|
||||
### Try:
|
||||
|
||||
echo "A quick brown fox jumps over the lazy dog" | ./nyaruko > output.c
|
||||
perl output.c > data.c
|
||||
gcc -o data data.c
|
||||
./data
|
||||
gcc -o output output.c
|
||||
./output
|
||||
```sh
|
||||
echo "A quick brown fox jumps over the lazy dog" | ./nyaruko > output.c
|
||||
perl output.c > data.c
|
||||
cc -o data data.c
|
||||
./data
|
||||
cc -o output output.c
|
||||
./output
|
||||
```
|
||||
|
||||
|
||||
### Selected Judges Remarks:
|
||||
## Judges' comments:
|
||||
|
||||
The judges have nothing to add that has not already been written
|
||||
about in the spoiler.html.gz file! :-)
|
||||
about in the `spoiler.html`` file! :-)
|
||||
|
||||
## Author's comments:
|
||||
Usage
|
||||
=====
|
||||
|
||||
### Usage
|
||||
|
||||
Nyaruko is a binary to text filter. Given some input on stdin,
|
||||
Nyaruko will produce C code that reproduces this input on stdout:
|
||||
|
||||
@@ -73,9 +77,8 @@ shared across different files. On operating systems that do not have
|
||||
/dev/urandom, users should always specify this extra seed argument to
|
||||
avoid deterministic keys.
|
||||
|
||||
### Features
|
||||
|
||||
Features
|
||||
========
|
||||
Implementation details that makes Nyaruko more obfuscated than usual
|
||||
programs:
|
||||
|
||||
@@ -101,9 +104,8 @@ the Crawling Chaos. The most obvious thing to do with chaos is to
|
||||
make a random number generator, and the most obvious thing to do with
|
||||
a random number generator is to make one-time-pads for encryption.
|
||||
|
||||
### Compatibility
|
||||
|
||||
Compatibility
|
||||
=============
|
||||
Nyaruko has these environment dependencies:
|
||||
|
||||
* Requires ASCII character set.
|
||||
@@ -129,18 +131,15 @@ combinations:
|
||||
Note that on MingW, stdin and stdout are not opened in binary mode by
|
||||
default, this means Nyaruko may not faithfully encode files on MingW.
|
||||
|
||||
### Extra files
|
||||
|
||||
Extra files
|
||||
===========
|
||||
|
||||
spoiler.html.gz - Contains full recording of how the code went from
|
||||
spoiler.html - Contains full recording of how the code went from
|
||||
blank state to an obfuscated program, gzipped to fit under 1MB.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
<!--
|
||||
## Copyright:
|
||||
|
||||
(c) Copyright 1984-2015, [Leo Broukhis, Simon Cooper, Landon Curt Noll][judges] - All rights reserved
|
||||
This work is licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License][cc].
|
||||
|
||||
[judges]: http://www.ioccc.org/judges.html
|
||||
[cc]: http://creativecommons.org/licenses/by-sa/3.0/
|
||||
-->
|
||||
@@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title>Replay text</title>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<style type="text/css">
|
||||
.tmp{color:#00f}.final{color:#000}</style>
|
||||
</head><body>
|
||||
<noscript><span style="color:red">JavaScript required</span></noscript>
|
||||
<script type="text/javascript">
|
||||
var realtime_step=80;var fps=1000/realtime_step;var current_event=0;var current_time;var step=0;var slots=new Array(1187);var update_slots=new Array(slots.length);var max_time=12761000;var max_file_size=444;var timer=null;var follow=1;var fast_scroll=1;var opacity=100;var opacity_timer=null;var string_table=
|
||||
[" ","ead_size","tate++;","r - 1","schar data[] = \"E3yua`:z+-Xg`Mv$\";","= *x();","ad_size > 0 )","i (*C++=0;d=1; C=S ,r<3 || r>","ode_block",";","uffer","c, \\","for(C = Q = S; r - 8;)","*C = 0","n","),","d = 0","(","lock","p |= 2",",","++ = \'\\\"\';","/","_ **/X()","\'true","EADER","0","}, L, l[256],","{","buffer","yHeader","DED_DATA","m","h_buffer |= 2;","KeyHeader[] =","word Isaac()","\\n\"","ODED_DATA","[","]","ADDING","&","1","\";for(open$O,$0;<$O>;print\\40if$f){$f|=/^$/;}q{*/q\",/* */z;","5 ||C<S+ 79,; )i(;,d, puts (","||C ",":"," \\","<S+ ","ILOGUE","-","256];","H","z - 32 || r - 3","g \\","k","NCODED_DATA","C != S + 6","?","!",">5 ||C ","86,","x","#Includ","TA_PADDING","F"," {","6"," }","S","Y"," {"," }","34,"," }","R"," {"," }, L, O, l[256], I[256], n, y, a, r, u, k, o;","79,; )i(;,d, puts (","4","void /**/X()"," read_size == 0 ? \'#\' :","%","PADDING"," /* Exhausted all"," {",".","q("," /* Convert byte"," }, \\","$"," else if( state == DATA_PADDING )"," { \\","^","eader"," break;"," *write_to == \'\\\\\' ||","G","ite_to == \'\\\\\' ||"," flush_buffer |= 2;"," for trigraphs. No tragraph"," for(cursor = 0; DecoderHeader[c"," else if( state == DATA_PADDING )"," for(i = 0; i < sizeof(seed) / sizeof(","L"," copy_from = (state == KEY_FOOTER ? DecoderHEade"," else if( state == DATA_PADDING )"," flush_buffer |= 2;"," ;,"," c = S[cursor++];"," w = buffer"," /* Skip spaces for DecoderFooter"," fwrite(data, i, 1, output"," }, L, O, l[256], I[256], n, y, a, r, u, k, o;","9"," /* Insert \\0 at end of encode"," output"," {"," }"," /* ENd of"," *p++ = \'\\\"\';"," i(p = 1; C = S; i(p=2, ;,"," r - 1 )"," /* Copy from buffer to output, removing trigraphs."," flush_buffer = 1;"," if( c == \'?\" && "," );i(;,Z,O=fread(K, 1024, 1, Z); fclose(Z))"," (C=Q=S;r-8;){i(*C++=34, (r-4&&r -5)||C- S ,;)z = Q[p++];"," r<3 || r>5 || C < S + 79)"," c, \\"," i( p > 1 )"," ENCODED_dAT"," {"," \'$\';"," /* Initialize DATA_PADDING state */"," /* No more bytes from base85 stream */"," /* Nor mo"," cursor = 0;"," i( b < 4 )"," if( (cursor % "," if( *write_to == \'\\\"\' ||*write_to == \'\\\\\' ||"," if( write_to == KeyHeader + 6 )"," *p++ = c;"," /* Append size byte for final block */"," /* Exhausted buffered base85 characters, fetch"," flush_buffer = 1;"," output_Stat"," ;,r - 1 )"," r - 1)"," /* Exhausted copy_From"," i( r - 1 )"," if( c != \'\\0\' )"," if( outpu"," if( p == output_stat"," p = 0;"," puts(S);"," );d =0 )}"," ;)i(;,d,"," \"#undef q\", \\"," \"mS@B|(pa>oRURonB}h@o?)d.X)NSTIUCz7@%\";"," \"};for(open$O,$0;<$O>;print if$f){$f|=/^$/;}q{*/q\", w;"," fclose(uraondo"," if( (state == DECODER_HEADER || "," KeyFooter ="," fwrite(Data"," otuput"," ;),","U","code_block % 85;","typedef unsigned int _;_ K[] ="," \"\" \"Ww|\"\\\"Z};fRo?JtJaV<x4@*?R?&JV1.s{Fyj2_;khB1xQ5oxm~\" \\"," *write_to == \'?\' )"," *write_to == \'\\\\\' ||"," ++*write_to;"," read_Siz"," read_size != 0 ? read_size != 1 ? read_Siz"," : aa << ((i & 2()"," *write_to == \'?\' )"," \"#include<stdio.h>\\n\" \\ \"typedef unsigned int _;_ K[]={\\n\" \\"," *write_to = (*x() % (127 - 33)) + 33;"," /* Initialize PADDING_REMAINDER state */"," cursor--;"," for(O = 0; O < 4; O++)"," if( *write_to == \'\\\"\' ||"," write_to = KeyHeader;"," write_to++;"," *p++ = \'\\\\\';"," Line truncated
|
||||
var events=
|
||||
[0,333,0,0,0,0,0,666,1,118,0,0,333,333,0,0,0,0,333,334,0,0,0,0,0,993334,1,118,2,1,334,166,0,0,0,1,0,993000,2,118,30,1,166,167,0,0,0,2,0,992834,2,118,19,1,167,167,0,0,0,3,0,992667,2,118,1,1,167,166,0,0,0,4,0,992500,2,118,16,1,166,167,0,0,0,5,0,992334,2,118,1,1,167,167,0,0,0,6,0,992167,2,118,12,1,167,100,0,0,0,7,0,992000,2,118,0,1,100,100,0,0,0,8,0,991900,2,118,10,1,100,100,0,0,0,9,0,991800,2,118,14,1,100,100,0,0,0,10,0,991700,2,118,4,1,100,100,0,0,0,11,0,991600,2,118,7,1,100,100,0,0,0,12,0,991500,2,118,54,1,100,100,0,0,0,13,0,991400,2,118,14,1,100,100,0,0,0,14,0,991300,2,118,1,1,100,100,0,0,0,15,0,991200,2,118,16,1,100,100,0,0,0,16,0,991100,2,118,0,1,100,200,0,0,0,17,0,991000,2,118,7,1,200,200,0,0,0,18,0,990800,2,118,14,1,200,200,0,0,0,19,0,990600,2,118,2,1,200,200,0,0,0,20,0,990400,2,118,0,1,200,200,0,0,0,21,0,990200,2,118,35,1,200,200,0,0,0,22,0,990000,2,118,8,1,200,200,0,0,0,23,0,989800,2,118,3,1,200,200,0,0,0,24,0,989600,2,118,16,1,200,200,0,0,0,25,0,989400,2,118,9,1,200,200,0,0,0,26,0,1383200,1,119,0,0,200,125,0,0,1,0,0,125,1,129,0,0,125,125,0,0,2,0,0,453875,1,129,4,1,125,125,0,0,2,1,0,453750,2,129,2,1,125,125,0,0,2,2,0,453625,2,129,6,1,125,125,0,0,2,3,0,453500,2,129,2,1,125,125,0,0,2,4,0,453375,2,129,7,1,125,125,0,0,2,5,0,453250,2,129,11,1,125,125,0,0,2,6,0,453125,2,129,0,1,125,166,0,0,2,7,0,453000,2,129,35,1,166,167,0,0,2,8,0,452834,2,129,8,1,167,167,0,0,2,9,0,452667,2,129,3,1,167,166,0,0,2,10,0,452500,2,129,16,1,166,167,0,0,2,11,0,452334,2,129,0,1,167,167,0,0,2,12,0,452167,2,129,3,1,167,142,0,0,2,13,0,452000,2,129,1,1,142,143,0,0,2,14,0,451858,2,129,4,1,143,143,0,0,2,15,0,451715,2,129,10,1,143,143,0,0,2,16,0,451572,2,129,18,1,143,143,0,0,2,17,0,451429,2,129,2,1,143,143,0,0,2,18,0,451286,2,129,38,1,143,143,0,0,2,19,0,451143,2,129,51,1,143,250,0,0,2,20,0,451000,2,129,44,1,250,250,0,0,2,21,0,450750,2,129,67,1,250,250,0,0,2,22,0,450500,2,129,39,1,250,250,0,0,2,23,0,450250,2,129,20,1,250,125,0,0,2,24,0,450000,2,129,0,1,125,125,0,0,2,25,0,449875,2,129,3,1,125,125,0,0,2,26,0,449750,2,129,1,1,125,125,0,0,2,27,0,449625,2,129,4,1,125,125,0,0,2,28,0,449500,2,129,10,1,125,125,0,0,2,29,0,449375,2,129,18,1,125,125,0,0,2,30,0,449250,2,129,2,1,125,125,0,0,2,31,0,449125,2,129,23,1,125,166,0,0,2,32,0,449000,2,129,11,1,166,167,0,0,2,33,0,448834,2,129,8,1,167,167,0,0,2,34,0,448667,2,129,10,1,167,166,0,0,2,35,0,448500,2,129,14,1,166,167,0,0,2,36,0,448334,2,129,2,1,167,167,0,0,2,37,0,448167,2,129,0,1,167,200,0,0,2,38,0,448000,2,129,5,1,200,200,0,0,2,39,0,447800,2,129,0,1,200,200,0,0,2,40,0,447600,2,129,26,1,200,200,0,0,2,41,0,447400,2,129,9,1,200,200,0,0,2,42,0,200,1,130,0,0,200,200,0,0,3,0,0,449333,1,130,4,1,200,200,0,0,3,1,0,449133,2,130,2,1,200,200,0,0,3,2,0,448933,2,130,6,1,200,200,0,0,3,3,0,448733,2,130,2,1,200,200,0,0,3,4,0,448533,2,130,7,1,200,142,0,0,3,5,0,448333,2,130,11,1,142,143,0,0,3,6,0,448191,2,130,0,1,143,143,0,0,3,7,0,448048,2,130,35,1,143,143,0,0,3,8,0,447905,2,130,8,1,143,143,0,0,3,9,0,447762,2,130,3,1,143,143,0,0,3,10,0,447619,2,130,16,1,143,143,0,0,3,11,0,447476,2,130,0,1,143,200,0,0,3,12,0,447333,2,130,32,1,200,200,0,0,3,13,0,447133,2,130,32,1,200,200,0,0,3,14,0,446933,2,130,38,1,200,200,0,0,3,15,0,446733,2,130,51,1,200,200,0,0,3,16,0,446533,2,130,44,1,200,142,0,0,3,17,0,446333,2,130,67,1,142,143,0,0,3,18,0,446191,2,130,39,1,143,143,0,0,3,19,0,446048,2,130,20,1,143,143,0,0,3,20,0,445905,2,130,0,1,143,143,0,0,3,21,0,445762,2,130,6,1,143,143,0,0,3,22,0,445619,2,130,6,1,143,143,0,0,3,23,0,445476,2,130,0,1,143,250,0,0,3,24,0,445333,2,130,5,1,250,250,0,0,3,25,0,445083,2,130,0,1,250,250,0,0,3,26,0,444833,2,130,26,1,250,250,0,0,3,27,0,444583,2,130,20,1,250,142,0,0,3,28,0,444333,2,130,0,1,142,143,0,0,3,29,0,444191,2,130,29,1,143,143,0,0,3,30,0,444048,2,130,29,1,143,143,0,0,3,31,0,443905,2,130,0,1,143,143,0,0,3,32,0,443762,2,130,5,1,143,143,0,0,3,33,0,443619,2,130,0,1,143,143,0,0,3,34,0,443476,2,130,26,1,143,200,0,0,3,35,0,443333,2,130,20,1,200,200,0,0,3,36,0,443133,2,130,0,1,200,200,0,0,3,37,0,442933,2,130,11,1,200,200,0,0,3,38,0,442733,2,130,11,1,200,200,0,0,3,39,0,442533,2,130,0,1,200,166,0,0,3,40,0,442333,2,130,5,1,166,167,0,0,3,41,0,442167,2,130,0,1,167,167,0,0,3,42,0,442000,2,130,26,1,167,166,0,0,3,43,0,441833,2,130,9,1,166,167,0,0,3,44,0,1382834,1,132,0,0,167,167,0,0,4,0,0,167,1,137,0,0,167,125,0,0,5,0,0,3250,1,137,4,1,125,125,0,0,5,1,0,3125,2,137,2,1,125,125,0,0,5,2,0,3000,2,137,6,1,125,125,0,0,5,3,0,2875,2,137,2,1,125,125,0,0,5,4,0,2750,2,137,7,1,125,125,0,0,5,5,0,2625,2,137,11,1,125,125,0,0,5,6,0,2500,2,137,0,1,125,125,0,0,5,7,0,2375,2,137,35,1,125,166,0,0,5,8,0,2250,2,137,8,1,166,167,0,0,5,9,0,2084,2,137,3,1,167,167,0,0,5,10,0,1917,2,137,16,1,167,166,0,0,5,11,0,1750,2,137,0,1,166,167,0,0,5,12,0,1584,2,137,49,1,167,167,0,0,5,13,0,1417,2,137,4,1,167,250,0,0,5,14,0,1250,2,137,6,1,250,250,0,0,5,15,0,1000,2,137,6,1,250,250,0,0,5,16,0,750,2,137,11,1,250,250,0,0,5,17,0,500,2,137,17,1,250,250,0,0,5,18,0,250,2,137,35,1,250,250,0,0,5,19,0,644750,1,137,4867,18,250,250,0,0,5,18,0,644500,2,137,80,1,250,250,0,0,Line truncated
|
||||
events.push(1);events.push(0);function e(id){return document.getElementById(id);}function Init(){var t0=0;for(var i=0;i<events.length;i+=6){events[i]+=t0;t0=events[i];if(events[i+1]==0) events[i+1]=max_time+1;else events[i+1]+=events[i];}var background='<pre style="margin:0px">\n';for(var i=0;i<max_file_size;i++)
|
||||
background+="\n";background+="<\57pre>";var layer_style="position:absolute;top:0px;left:0px;margin:0px;";document.write(
|
||||
'<div style="position:fixed;top:0px;right:0px;padding:2px;background-color:#fff;border:1px solid #00f;z-index:3" onmouseover="ForegroundControl()" onmouseout="BackgroundControl()" id=control><input type=button value="play 1x" onclick="Play(1)"> <input type=button value="play 3x" onclick="Play(3)"> <input type=button value="play 10x" onclick="Play(10)"> <input type=button value="play 30x" onclick="Play(30)"> <input type=button value="play 60x" onclick="Play(60)"> <input type=button value="pause" onclick="Pause()"> <input type=button value="rewind" onclick="Rewind()"><br><input type=checkbox id=follow name=follow onclick="Follow(this.checked)" checked> <label for=follow>Follow cursor (<span id=cursor_text><\57span>)<\57label> <input type=checkbox id=fast name=fast onclick="FastScroll(this.checked)" checked> <label for=fast>Fast scroll<\57label> <input type=checkbox id=tmp name=tmp onclick="Highlight(this.checked)" checked> <label for=tmp>Highlight transient lines<\57label><br><input type=range name=position id=position min=0 max='+max_time+' step=1 value=0 style="width:400px" onchange="InputSeek(this.value)"> <span id=time><\57span><\57div><div style="position:relative;border:1px solid">'+background+
|
||||
'<pre style="'+layer_style+'background-color:#fff;color:#fff;z-index:1" id=cursor><\57pre><pre style="'+layer_style+'color:#000;z-index:2" id=text><\57pre><\57div>');var output=e("text");for(var i=0;i<slots.length;i++){var span=document.createElement("span");span.id="slot"+i;output.appendChild(span);}Rewind();}function Animate(){Seek(current_time+step);UpdateProgress();}function Play(speed){step=realtime_step*speed;if(timer)
|
||||
clearTimeout(timer);timer=setTimeout("Animate()",realtime_step);}function Pause(){if(step!=0){step=0;Seek(current_time);UpdateProgress();}else{Play(1);}}function Reset(){for(var i=0;i<slots.length;i++){slots[i]=null;update_slots[i]="";var x=e("slot"+i);x.innerHTML="";x.className="tmp";x.style.display="none";}current_event=0;}function Scroll(){var c=e("cursor_block");if(c){var y=c.offsetTop;y-=64;if(y<0) y=0;var delta=y-window.scrollY;if(!fast_scroll||(delta>-80 && delta<window.innerHeight-64))
|
||||
delta/=fps;if(Math.abs(delta)>0){window.scrollTo(window.scrollX,window.scrollY+delta);return true;}}return false;}function ResetScroll(){if(Scroll())
|
||||
timer=setTimeout("ResetScroll()",realtime_step);}function Rewind(){Reset();step=0;Seek(0);UpdateProgress();if(follow)
|
||||
ResetScroll();}function NextFrame(){if(step>0){if(timer)
|
||||
clearTimeout(timer);timer=setTimeout("Animate()",realtime_step);}if(follow)
|
||||
Scroll();}function Seek(position){current_time=position;if(current_time<0)
|
||||
current_time=0;if(current_time>=max_time){current_time=max_time;step=0;}var t=Math.floor(current_time/1000);var s=t%60;var m=Math.floor(t/60);t=m+(s>9?":":":0")+s;e("time").innerHTML=t;if(events[current_event]>current_time){if(current_event>0 && events[current_event-6]<current_time){NextFrame();return;}Reset();}var min_slot=slots.length;var max_slot=0;var cursor_event=-1;for(;events[current_event]<=current_time;current_event+=6){var end_time=events[current_event+1];if(end_time<=current_time)
|
||||
continue;var type=events[current_event+2];if(type==0||type>3){cursor_event=current_event;}else{var i=events[current_event+3];if(type==3){slots[i]=null;}else{var text=string_table[events[current_event+4]].substr(
|
||||
0,events[current_event+5]);if(type==1||slots[i]==null) slots[i]=text;else slots[i]+=text;}if(min_slot>i) min_slot=i;if(max_slot<i) max_slot=i;update_slots[i]=(end_time>=max_time?2:1);}}for(var i=min_slot;i<=max_slot;i++){if(update_slots[i]){var span=e("slot"+i);if(slots[i]!=null){span.innerHTML=slots[i]+"\n";span.style.display="inline";span.className=(update_slots[i]==1?"tmp":"final");}else{span.innerHTML="";span.style.display="none";}update_slots[i]=0;}}if(cursor_event>=0){var text="";var y;var x=events[cursor_event+5];if(events[cursor_event+2]==0){y=events[cursor_event+4];for(var i=0;i<y;i++)
|
||||
text+="\n";for(var i=0;i<x;i++)
|
||||
text+=" ";text+='<span style="background-color:#0f0" id=cursor_block> <\57span>';}else{var s=events[cursor_event+3];for(var i=y=0;i<s;i++){if(slots[i]!=null){y++;text+="\n";}}var line=slots[s]||"";var offset=events[cursor_event+4];while(line.length<=offset)
|
||||
line+=" ";text+=line.substr(0,offset)+
|
||||
'<span style="background-color:#0f0;color:#0f0" id=cursor_block>'+
|
||||
line.substr(offset,events[cursor_event+2]-3)+
|
||||
'<\57span>';}e("cursor").innerHTML=text;e("cursor_text").innerHTML=(y+1)+','+(x+1);}NextFrame();}function InputSeek(position){var t=parseInt(position);if(t>=0)
|
||||
Seek(t);}function UpdateProgress(){e("position").value=current_time;}function Follow(state){follow=state;}function FastScroll(state){fast_scroll=state;}function Highlight(state){var x=document.styleSheets;for(var i=0;i<x.length;i++){var y=x[i].cssRules;for(var j=0;j<y.length;y++){if(y[j].selectorText==".tmp"){y[j].style.color=state?"#00f":"#000";return;}}}}function ForegroundControl(){e("control").style.opacity="1.0";opacity=100;if(opacity_timer){clearTimeout(opacity_timer);opacity_timer=null;}}function BackgroundControl(){e("control").style.opacity=opacity/100;if(opacity>35){opacity-=5;opacity_timer=setTimeout("BackgroundControl()",100);}}Init();</script>
|
||||
</body></html>
|
||||
Binary file not shown.
Reference in new issue
Block a user