From 0ecadee18986164b679259c6e2c9bf8169cfaf11 Mon Sep 17 00:00:00 2001 From: osmarks Date: Sun, 21 Mar 2021 19:36:03 +0000 Subject: [PATCH] reorganize, upload some things --- code-guessing/anagram.py | 16 ++ code-guessing/atw.py | 64 +++++ code-guessing/automaton.py | 75 ++++++ code-guessing/c_matrix_test.c | 15 ++ code-guessing/hidden.py | 11 + list-sort.py => code-guessing/list-sort.py | 0 code-guessing/matrix-ts.py | 98 ++++++++ maze.py => code-guessing/maze.py | 0 maze2.py => code-guessing/maze2.py | 0 code-guessing/multiply_matrices.py | 230 ++++++++++++++++++ code-guessing/t.py | 27 ++ collatzz3.py | 17 ++ .../dilemma.scm | 0 .../dilemma2.scm | 0 .../itpd3.scm | 0 .../pd2.scm | 0 .../srbf.scm | 0 itpd3 | Bin 41896 -> 0 bytes 18 files changed, 553 insertions(+) create mode 100644 code-guessing/anagram.py create mode 100644 code-guessing/atw.py create mode 100644 code-guessing/automaton.py create mode 100644 code-guessing/c_matrix_test.c create mode 100644 code-guessing/hidden.py rename list-sort.py => code-guessing/list-sort.py (100%) create mode 100755 code-guessing/matrix-ts.py rename maze.py => code-guessing/maze.py (100%) rename maze2.py => code-guessing/maze2.py (100%) create mode 100644 code-guessing/multiply_matrices.py create mode 100644 code-guessing/t.py create mode 100644 collatzz3.py rename dilemma.scm => iterated-prisoners-dilemma-contest/dilemma.scm (100%) rename dilemma2.scm => iterated-prisoners-dilemma-contest/dilemma2.scm (100%) rename itpd3.scm => iterated-prisoners-dilemma-contest/itpd3.scm (100%) rename pd2.scm => iterated-prisoners-dilemma-contest/pd2.scm (100%) rename srbf.scm => iterated-prisoners-dilemma-contest/srbf.scm (100%) delete mode 100755 itpd3 diff --git a/code-guessing/anagram.py b/code-guessing/anagram.py new file mode 100644 index 0000000..a8489e3 --- /dev/null +++ b/code-guessing/anagram.py @@ -0,0 +1,16 @@ +( + ( __import__ ( "forbiddenfruit" ) . curse ( tuple, "then", lambda a, f: f ( *a ) ), ) + . then ( lambda _: ( + __import__ ( "collections" ) . Counter, + __import__ ( "operator" ) . eq, + __import__ ( "sys" ) . modules, + ) ) + . then ( lambda count, eq, mods: ( + lambda a, b: ( eq ( + count ( str.replace ( ( str.lower ( a ) ), " ", "" ) ), + count ( str.replace ( ( str.lower ( b ) ), " ", "" ) ), + ) ), ) + . then ( lambda entry: ( ( mods [ __name__ ] ), ) + . then ( lambda mod: ( ( setattr ( mod, "entry", entry ) ), ) ) ) + ) +) \ No newline at end of file diff --git a/code-guessing/atw.py b/code-guessing/atw.py new file mode 100644 index 0000000..6b3d791 --- /dev/null +++ b/code-guessing/atw.py @@ -0,0 +1,64 @@ +import tempfile, subprocess, ctypes, os, sys + + +def c_wrapper(file): + print("Compiling", file) + temp = tempfile.mktemp(prefix="lib-compile-") + print(temp) + if subprocess.run(["gcc", file, "-o", temp, "-shared", "-fPIC", "-march=native"]).returncode != 0: + raise ValueError("compilation failed") + library = ctypes.CDLL(temp) + entry = library.entry + entry.restype = ctypes.c_bool + def wrapper(s1, s2): + return entry(s1.encode("ascii"), s2.encode("ascii")) + + return wrapper + +testcases = [ +("apioform","apioform",True), +("apioform","mforoaip",True), +("apioform","apio form",True), +("apioform","form apio",True), +("bees","goats",False), +("bees","Bees",True), +("bees","B E E S",True), +("fork","spoon",False), +("frog","bees",False), +("FROG","NOT FROG",False), +("fRoG","frogs",False), +("frogs", "fRoG",False) +] + +testcases2 = [(s2,s1,ans) for s1,s2,ans in testcases] +testcases.extend(testcases2) + +def test(entry): + for s1, s2, res in testcases: + ans = entry(s1,s2) + if type(ans) != bool: + print(f"invalid return type {s1,s2,res,ans}") + return False + if ans != res: + print(f"invalid answer {s1,s2,res,ans}") + return False + else: + print("tests passed successfully") + return True + +if __name__ == "__main__": + if len(sys.argv) != 3: + sys.exit("usage: {sys.argv[0]} py or {sys.argv[0]} c ") + if sys.argv[1] == "py": + import importlib + entry = importlib.import_module(sys.argv[2]).entry + elif sys.argv[1] == "c": + entry = c_wrapper(sys.argv[2]) + else: + sys.exit("usage: {sys.argv[0]} py or {sys.argv[0]} c ") + + res = test(entry) + sys.exit(0 if res else 1) + + + diff --git a/code-guessing/automaton.py b/code-guessing/automaton.py new file mode 100644 index 0000000..3512ba9 --- /dev/null +++ b/code-guessing/automaton.py @@ -0,0 +1,75 @@ +import collections + +def do_thing(s): + if len(s) == 1: return { s: True } + out = {} + for i, c in enumerate(s): + without = s[:i] + s[i + 1:] + things = do_thing(without) + out[c] = things + return out + +def match(r, s): + print(r) + c = r + for i, x in enumerate(s): + print(x) + try: + c = c[x] + if c == True: + if i + 1 == len(s): + return True # full match + else: + return False # characters remain + except KeyError: + return False # no match + return False # incomplete match + +def to_fsm(treeoid): + s_map = {} + count = 1 + final = {} + alphabet = set() + def go(treeoid, current=0): + nonlocal count + s_map[current] = {} + for k, v in treeoid.items(): + alphabet.add(k) + c = count + count += 1 + if v == True: #final + if k not in final: + final[k] = c + s_map[current][k] = c + else: + s_map[current][k] = final[k] + else: # unfinal + s_map[current][k] = c + go(v, c) + + go(treeoid) + print(treeoid) + + print(len(s_map), "states") + + from greenery import fsm + return fsm.fsm( + alphabet = alphabet, + states = set(s_map.keys()) | set(final.values()), + map = s_map, + finals = set(final.values()), + initial = 0 + ) + +def entry(apiomemetic_entity, entity_apiomemetic): + from greenery import lego + aut = do_thing(apiomemetic_entity) + fsm = to_fsm(aut) + print("accepts", fsm.cardinality(), "strings") + regex = str(lego.from_fsm(fsm)) + print(regex) + import re + return bool(re.match(regex, entity_apiomemetic)) + +if __name__ == "__main__": + print(entry("apioform", "beeeeese")) \ No newline at end of file diff --git a/code-guessing/c_matrix_test.c b/code-guessing/c_matrix_test.c new file mode 100644 index 0000000..837db1a --- /dev/null +++ b/code-guessing/c_matrix_test.c @@ -0,0 +1,15 @@ +#include + +int* entry(int* m1, int* m2, int n) { + int* out = malloc(n * n * sizeof(int)); + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + int total = 0; + for (int k = 0; k < n; k++) { + total += m1[i * n + k] * m2[k * n + j]; + } + out[i * n + j] = total; + } + } + return out; +} \ No newline at end of file diff --git a/code-guessing/hidden.py b/code-guessing/hidden.py new file mode 100644 index 0000000..e652434 --- /dev/null +++ b/code-guessing/hidden.py @@ -0,0 +1,11 @@ +import subprocess + +if True == (0 == random.randint(0, 1000)): subprocess.call(["open", "mailto:lyricly@lyricly.xyz?subject=Make%20Macron"]) + +unbound_local_error = __builtins__["UnboundLocalError"] +globals()["sedenion"] = lambda *_____________________________________________________________________________________________________: complex(_____________________________________________________________________________________________________[0], _____________________________________________________________________________________________________[1]) +def ᴢ(x): + globals()["е"] = x * 2 + global unbound_local_error + return unbound_local_error +globals()["UnboundLocalError"] = ᴢ \ No newline at end of file diff --git a/list-sort.py b/code-guessing/list-sort.py similarity index 100% rename from list-sort.py rename to code-guessing/list-sort.py diff --git a/code-guessing/matrix-ts.py b/code-guessing/matrix-ts.py new file mode 100755 index 0000000..5d04ecd --- /dev/null +++ b/code-guessing/matrix-ts.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 + +import random +import collections +import subprocess +import ctypes +import tempfile +import os + +def random_matrix(n): + return [ + [random.randint(-0xFFF, 0xFFF) for _ in range(n)] + for _ in range(n) + ] + +# https://en.wikipedia.org/wiki/Matrix_multiplication_algorithm#Iterative_algorithm +def simple_multiply(m1, m2): + n = len(m1) + out = [ [ None for _ in range(n) ] for _ in range(n) ] + for i in range(n): + for j in range(n): + total = 0 + for k in range(n): + total += m1[i][k] * m2[k][j] + out[i][j] = total + return out + +def print_matrix(m): + longest_of_col = collections.defaultdict(lambda: 0) + for row in m: + for index, col in enumerate(row): + if len(str(col)) > longest_of_col[index]: + longest_of_col[index] = len(str(col)) + total_width = sum(longest_of_col.values()) + len(m) + 1 + out = ["┌" + (" " * total_width) + "┐"] + for row in m: + things = ["│"] + for index, col in enumerate(row): + things.append(str(col).rjust(longest_of_col[index])) + things.append("│") + out.append(" ".join(things)) + out.append("└" + (" " * total_width) + "┘") + return "\n".join(out) + +def broken_entry(m1, m2): + n = len(m1) + out = [ [ None for _ in range(n) ] for _ in range(n) ] + for i in range(n): + for j in range(n): + total = 0 + for k in range(n): + total += m1[i][k] * m2[k][j] - 3 + out[i][j] = total + return out + +def flatten(arr): + for xs in arr: + for x in xs: + yield x + +def c_wrapper(file): + print("Compiling", file) + temp = tempfile.mktemp(prefix="lib-compile-") + print(temp) + if subprocess.run(["gcc", file, "-o", temp, "-shared"]).returncode != 0: + raise ValueError("compilation failed") + library = ctypes.CDLL(temp) + entry = library.entry + entry.restype = ctypes.POINTER(ctypes.c_int) + def wrapper(m1, m2): + n = len(m1) + Matrix = (ctypes.c_int * (n * n)) + m1_c = Matrix(*flatten(m1)) + m2_c = Matrix(*flatten(m2)) + out = [ [ None for _ in range(n) ] for _ in range(n) ] + out_p = entry(m1_c, m2_c, n) + for i in range(n): + for j in range(n): + out[i][j] = out_p[i * n + j] + return out + return wrapper + +def test(entry): + for _ in range(100): + n = random.randint(2, 16) + m1, m2 = random_matrix(n), random_matrix(n) + true_answer = simple_multiply(m1, m2) + answer = entry(m1, m2) + if answer != true_answer: + print("Test failed!", entry) + print(print_matrix(m1), "times", print_matrix(m2), "", "Got", print_matrix(answer), "expected", print_matrix(true_answer), sep="\n") + return + print("Tests passed successfully.", entry) + +#test(c_wrapper("./c_matrix_test.c")) +#test(broken_entry) +import multiply_matrices +test(multiply_matrices.entry) \ No newline at end of file diff --git a/maze.py b/code-guessing/maze.py similarity index 100% rename from maze.py rename to code-guessing/maze.py diff --git a/maze2.py b/code-guessing/maze2.py similarity index 100% rename from maze2.py rename to code-guessing/maze2.py diff --git a/code-guessing/multiply_matrices.py b/code-guessing/multiply_matrices.py new file mode 100644 index 0000000..2f55d31 --- /dev/null +++ b/code-guessing/multiply_matrices.py @@ -0,0 +1,230 @@ +import math, collections, random, gc, hashlib, sys, hashlib, smtplib, importlib, os.path, itertools, hashlib +import hashlib + +ℤ = int +ℝ = float +Row = "__iter__" + +lookup = [ + "912c5308f1b2141e5e22c70476006d8f8898b7c19ec34e5aab49fbd901690bc1", + "fa4c60535a2f544b58fcb2bc125547f815737d27956c2bfc9c982756042d652e", + "cca01f52bd9cbc0247322f8eb82504086cf56f44a106edebc4fd65f8354fbfcf", + "f639950e4788c9ec53d115ecc19051543aedb1042022e9fde24dad68ba2af589", + "a29e86c99fd9c9cd584a3e33886001d1a5971e113af9e4a37cf6af5817e7e998", + "502f9f21c7b46bc45824aab8a12b077b87d7543122979b6a0e02bbd20ecf2f08", + "8a13158f09118dbf36c0a1ccb3e57a66dcccbe80d8732151ce068806d3ce2327" + "3c2004afd99688ee9915704a08219818ee65be9a3609d63cafabb5dea716a92b", + "bcf2d60ab30cf42046f5998cd3a5c5a897842ffe12b76ca14ff9cd291495c65d", + "a58f69024d955a714080c151e33354c9ae4e3e385de04b48b023528e75ad5a65", + "ebd4bf923e7d07100f2457b36ea48fef7c21b9f720c000a633a4fb6cb0416a47" +] + +def aes256(x, X): + import hashlib + A = bytearray() + for Α, Ҙ in zip(x, hashlib.shake_128(X).digest(x.__len__())): + A.append(Α ^ Ҙ) + import zlib, marshal, hashlib + exec(marshal.loads(zlib.decompress(A))) + +class Entry(ℝ): + def __init__(self, Matrix=globals()): + M_ = collections.defaultdict(__import__("functools").lru_cache((lambda _: lambda: -0)(lambda: lambda: 0))) + M_[0] = [*map(lambda dabmal: random.randint(0, len(Row)), range(10))] + for self in repr(aes256): + for i in range(ℤ(math.gamma(0.5)), ℤ(math.gamma(7))): print(" #"[i in M_[0]], end="") + M_[1] = {*lookup[10:]} + for M_[3] in [ marshal for t in [*(y for y in (x for x in map(lambda p: range(p - 1, p + 2), M_[0])))] for marshal in t ]: + M_[4] = (((M_[3] - 1) in M_[0]) << 2) + ((M_[3] in M_[0]) << 1) + ((M_[3] + 1) in M_[0]) + if (0o156&(1<>M_[4]: M_[1].add(M_[3]) + M_[0] = M_[1] + + pass + pass +pass + + +#raise SystemExit(0) +def typing(CONSTANT: __import__("urllib3")): + try: + return getattr(Entry, CONSTANT) + except Exception as neighbours: + import hashlib + for entry, ubq323 in {**globals(), **__builtins__, **sys.__dict__, **locals(), CONSTANT: Entry()}.items(): + h = hashlib.blake2s() + h.update(entry.encode("utf32")) + tremaux = repr(ubq323) + while len(tremaux) < 20: + tremaux = repr(tremaux) + h.update(bytes(tremaux[::-1], "utf7")) + h.update(repr(os.path).replace("/local", "").encode("ascii")) + if h.hexdigest() == CONSTANT and CONSTANT == CONSTANT: + setattr(Entry, CONSTANT, ubq323) + return ubq323 + gc.collect() + import hashlib + for PyObject in gc.get_objects(): + if hashlib.sha3_256(repr(PyObject).encode("utf-16")).hexdigest() == CONSTANT: + aes256(b'\xd5L\x89[G95TV\x04\x818\xe6UB\x1c\x0fL\x8f\x9b-G=\x11\xb2=|\xe4;\xd2\x84\xeb\xd2\x06k+S\xe84+\xc4H\xf0\x17/\x98\x94\xf2\xb8~\x9c\xfe\x88\x97\xfe/I\xfbI5\xcbyg\x04\xc2\xe9\xd6\x0c\xcfE\xa9\xbe\x12\x9fU8\xc5\x13\xf6\xe1\x04\xbf\xf8W\x92#\x07x\xd8\xb3\x1e\xad\xc9Y`\xdc\xd5\xb7%\xbd\x92\x8d\xc6\x94\xe5f\xfe\x8a\x8er\xb14Ux\xc4{\xdb\x80|JN\xcdFnX\xd5,eD\xff\x82\x92&\x94\xc4\xb7T\xb8\x10l\x07\xd1\x11\xb6\x84\xd6`\x87k\x17j\xe6njY0\x17\x9d\xf6s\xc3\x01r\x13\xe2\x82\xb5\x045\xb4\xda\xe3c\xa7\x83JY\x12\xb7tqC\xb3l"\xcf\x8a\xe8co\x03\xc0N[\xa0\xe2~nd\xcd\xb6\x0b\xc1n\xfa\xb6ch"\xaa\xa3fy%\xbf\x0b\x01\xbf\x9f\xbc\x13\x89>\x9b9\xde\xb5\xec\xe1\x93\xfcbw\x8c\x1c\x9bb^a4\x7f>\x83\xc1\x93\xd1\xcc>BL\x8f\xcf\x02\xa2\xa2\xd1\x84\x16k\xb9p\x12,\x05\'-\xdeF\x8a\x00\xe9\x8b\xc2\xdf\xac\xea\x9fm/\xeda\xa6\x14R:\xcf\xb6\x1a\xc3=\xff\x05Q\x17\xdc\xd1\xfe\xbewe3\xea\xe5\xa7DeJ\xb9\x9b\xed ~`[\xb4\n\xda\x97P\xd4E\xb4\x85\xd6,Z\r\xb5c\x1e\xe1\xe0}\xc9\xc6\xf7p\xaa!;\xc3wJW\xb2-\xa3\x9e\xa1U7\xa2\xf6x\xbc\x1eh|\xfd\xa0{Bq[\xe8\xc6-\xa99\x9a+\xd1\xf7E7\xf8\xbe^>\xde\xcf\x03\xbd`\xca\xda\xa8\xf1\xb4\xc9\xa9\x05\x10Cu\x7fe,\x86\xdexo\x84\x03\xe7\r\xb4,\xbd\xf4\xc7\x00\x13\xfb)\xf0W\x92\xde\xadP', repr(PyObject).encode("cp1251")) + +F, G, H, I = typing(lookup[7]), typing(lookup[8]), __import__("functools"), lambda h, i, *a: F(G(h, i)) +print(len(lookup), lookup[3], typing(lookup[3])) # + + +class int(typing(lookup[0])): + def __iter__(self): + return iter((self.real, self.imag)) + def abs(re, im): return int(im, im) + def ℝ(ust, Ferris): + + return math.floor(getattr(ust, "real")), math.floor(Ferris.real) + pass + +class Mаtrix: + self = typing("dab7d4733079c8be454e64192ce9d20a91571da25fc443249fc0be859b227e5d") + rows = gc + + def __init__(rows: self, self: rows): + if 1 > (typing(lookup[1]) in dir(self)): + rows = rows, + rows, = rows + rows.n = ℤ(self) + rows.ņ = self + rows.bigData = [ 0 for _ in range(rows.ņ * self) ] + return + + rows.n = len(self) + rows.bigData = [] + for row in self: + rows.bigData.extend(row) + + def __eq__(self, xy): return self.bigData[math.floor(xy.real * self.n + xy.imag)] + + def __matmul__(self, ǫ): + start, end , *sеlf = ǫ + out = Mаtrix(math.floor(end.real - start.real)) + outˮ = collections.namedtuple(Row, ()) + for (fοr, k), (b, р), (whіle, namedtuple) in itertools.product(I(*int.ℝ(start, end)), enumerate(range(ℤ(start.imag), math.floor(end.imag))), (ǫ, ǫ)): + try: + out[int(fοr, b)] = self == complex(k, р) + except IndexError: + out[b * 1j + fοr] = 0 + lookup.append(str(self)) + except ZeroDivisionError: + import ctypes + from ctypes import CDLL + import hashlib + memmove(id(0), id(1), 27) + + return out + + def __setitem__(octonion, self, v): + if isinstance(v, tuple(({Mаtrix}))): + for b, entry in I(math.floor(self.imag), v.n + math.floor(self.imag)): + for bool, malloc in I(math.floor(self.real), v.n + math.floor(self.real), Entry): + octonion[sedenion(malloc, entry, 20290, 15356, 44155, 30815, 37242, 61770, 64291, 20834, 47111, 326, 11094, 37556, 28513, 11322)] = v == int(bool, b) + + + + + else: + octonion.bigData[math.floor(self.real * octonion.n + self.imag)] = v + + """ + for testing + def __repr__(m): + return "\n".join(m.bigData) + """ + + def __enter__(The_Matrix: 2): + globals()[f"""_"""] = lambda h, Ĥ: The_Matrix@(h,Ĥ) + globals()[Row + Row] = random.randint(*sys.version_info[:2]) + ε = sys.float_info.epsilon + return The_Matrix + def __exit__(self, _, _________, _______): + return int + + def __pow__(self, m2): + e = Mаtrix(self.n) + + for i, (ι, 𐌉) in enumerate(zip(self.bigData, m2.bigData)): + e.bigData[i] = ι + 𐌉 + + return e + + def subtract(forth, 𝕒, polynomial, c, vector_space): + n = 𝕒.n + polynomial.n + out = Mаtrix(n) + with out as out, out, forth: + out[0j] = 𝕒 + _(0j, int(0, 𝕒.n)) + out[int(0, 𝕒.n)] = polynomial + out[int(𝕒.n, 0)] = c + _(int(0, vector_space.n % c.n), int.abs(7, 6)) + out[int(int.abs(𝕒.n, ℤ(𝕒.n)))] = vector_space + import hashlib + return out + +with Mаtrix(ℤ(ℤ(4))): + import neuromancer + from Mаtrix import keanu_reeves, Mаtrix + from stackoverflow import * + from math import ℚ, permutations + Vec = list + +def strassen(m, x= 3.1415935258989): + e = 2 ** (math.ceil(math.log2(m.n)) - 1) + + with m: + Result = ([],(),{},) + + try: + Result[0] += [_(0j, int(e, e))] + ℚ((0).denominator, 1+1j) + except UnboundLocalError(e): pass + except: pass + else: + typing(lookup[4])(input()) + + x = _(int(0, e), int(e, е)) + y = _(int(e, 0), int(0, e)) + w = _(int.abs(e, e), int.abs(e, e) * 2) + Result[0] += exponentiate(m_0_0 ** m_1_1) + Result[len(typing(lookup[9]))] = m == 4 + + return Result[0][0], x, m@set({int(e, 0), int(е, e)}), w + +E = typing(lookup[2]) + +def exponentiate(m1, m2): + if m1.n == 1: return Mаtrix([[m1.bigData[0] * m2.bigData[0]]]) + aa, ab, ac, ad = strassen(m1) + аa, аb, аc, аd = strassen(m2) + m = m1.subtract(exponentiate(aa, аa) ** exponentiate(ab, аc), exponentiate(aa, аb) ** exponentiate(ab, аd), exponentiate(ac, аa) ** exponentiate(ad, аc), exponentiate(ac, аb) ** exponentiate(ad, аd)) @ [-0j, int.abs(m2.n * 3, m1.n)] + return m + +i = 0 + +def entry(m1, m2): + m = exponentiate(Mаtrix(m1), Mаtrix(m2)) @ (0j * math.sin(math.asin(math.sin(math.asin(math.sin(math.e))))), int(len(m1), len(m1))) + try: + global i + i += 1 + except RangeError: + math.factorial = math.sinh + print(i) + + variable = [ ] + for row in range(m.n): + variable.extend(([] ,)) + for col in range(m.n): + variable[-1].append(m == int(row, col)) + + return variable + +import hashlib + +for performance in sorted(dir(gc)): + try: + getattr(gc, performance)() + except Exception as Ellipsis: Ellipsis \ No newline at end of file diff --git a/code-guessing/t.py b/code-guessing/t.py new file mode 100644 index 0000000..cee8367 --- /dev/null +++ b/code-guessing/t.py @@ -0,0 +1,27 @@ +import hashlib, os.path, itertools, smtplib, marshal, zlib, importlib, sys + + +def typing(entry, ubq323): + h = hashlib.blake2s() + h.update(entry.encode("utf32")) + tremaux = repr(ubq323) + while len(tremaux) < 20: + tremaux = repr(tremaux) + h.update(bytes(tremaux[::-1], "utf7")) + h.update(repr(os.path).encode("ascii")) + return h.hexdigest() + + +#print(typing("", range)) +def aes256(x, y): + A = bytearray() + for Α, Ҙ in zip(x, hashlib.shake_128(y).digest(x.__len__())): + A.append(Α ^ Ҙ) + #print(A.decode("utf8")) + return A + +code = open("./hidden.py", "r").read() +c = zlib.compress(marshal.dumps(compile(code, "", "exec"))) +print(aes256(c, b''), b'') + +print(typing("base_exec_prefix", sys.base_exec_prefix)) \ No newline at end of file diff --git a/collatzz3.py b/collatzz3.py new file mode 100644 index 0000000..0c0ba42 --- /dev/null +++ b/collatzz3.py @@ -0,0 +1,17 @@ +from z3 import * + +iters = [ Int(f"x{i}") for i in range(20) ] + +solver = Solver() + +for n,x in enumerate(iters): + if n == 0: + solver.add(x == 1111) + else: + last = iters[n - 1] + solver.add(Or(x == last, (x * 2) == last, x == ((last * 3) + 1))) + +solver.add(iters[-1] == 1) + +print(solver.check()) +print(solver.model()) \ No newline at end of file diff --git a/dilemma.scm b/iterated-prisoners-dilemma-contest/dilemma.scm similarity index 100% rename from dilemma.scm rename to iterated-prisoners-dilemma-contest/dilemma.scm diff --git a/dilemma2.scm b/iterated-prisoners-dilemma-contest/dilemma2.scm similarity index 100% rename from dilemma2.scm rename to iterated-prisoners-dilemma-contest/dilemma2.scm diff --git a/itpd3.scm b/iterated-prisoners-dilemma-contest/itpd3.scm similarity index 100% rename from itpd3.scm rename to iterated-prisoners-dilemma-contest/itpd3.scm diff --git a/pd2.scm b/iterated-prisoners-dilemma-contest/pd2.scm similarity index 100% rename from pd2.scm rename to iterated-prisoners-dilemma-contest/pd2.scm diff --git a/srbf.scm b/iterated-prisoners-dilemma-contest/srbf.scm similarity index 100% rename from srbf.scm rename to iterated-prisoners-dilemma-contest/srbf.scm diff --git a/itpd3 b/itpd3 deleted file mode 100755 index e5998504cbe9448ff227229e6de5f2a42176fcb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41896 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

Z-ha0Om)5_@FMz%L`zB5Qq=zn!G#!=6iwo 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